From 9bd6f9569ecd8dd654782f60bef8d6e00e5c56e6 Mon Sep 17 00:00:00 2001 From: nfuden Date: Wed, 2 Apr 2025 12:28:01 -0400 Subject: [PATCH 1/6] conformance: add kgateway v2.0.0 release's conformance results for gateway api 1.2.1 Signed-off-by: nfuden --- conformance/reports/v1.2.1/kgateway/README.md | 50 ++++++++++++++++++ .../v1.2.1/kgateway/v2.0.0-report.yaml | 51 +++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 conformance/reports/v1.2.1/kgateway/README.md create mode 100644 conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml diff --git a/conformance/reports/v1.2.1/kgateway/README.md b/conformance/reports/v1.2.1/kgateway/README.md new file mode 100644 index 0000000000..9ff2107f87 --- /dev/null +++ b/conformance/reports/v1.2.1/kgateway/README.md @@ -0,0 +1,50 @@ +# Gloo Gateway + +## Table of contents + +| API channel | Implementation version | Mode | Report | +|--------------|-------------------------------------------------------------------------------|---------|-----------------------------------------------------------| +| experimental | [v2.0.0](https://github.com/kgateway-dev/kgateway/releases/tag/v2.0.0) | default | [Link](./v2.0.0-report.yaml) | + +## Reproduce + +> Note: [this is a mirror of the steps outlined in the conformance GHA workflow](https://github.com/kgateway-dev/kgateway/blob/v2.0.0/.github/actions/kube-gateway-api-conformance-tests/action.yaml). + +### Prerequisites + +In order to properly run the conformance tests, you need to have [KinD](https://github.com/kubernetes-sigs/kind) +and [Helm](https://github.com/helm/helm) available in your environment. +To run the conformance tests suite we will first create a KinD cluster, use Helm to deploy kgateway and finally +run the conformance tests. + +### Steps + +1. Clone the Gloo Gateway repository and checkout the release: + + ```sh + git clone https://github.com/kgateway-dev/kgateway.git + cd gloo + export VERSION="v2.0.0" + git checkout tags/$VERSION -b $VERSION + ``` + +2. Create the KinD cluster with [MetalLB](https://metallb.io/): + + ```sh + SKIP_DOCKER=true CONFORMANCE=true ci/kind/setup-kind.sh + ``` + +3. Deploy kgateway Helm charts: + ```sh + helm upgrade -i --create-namespace --namespace kgateway-system --version $VERSION kgateway-crds oci://cr.kgateway.dev/kgateway-dev/charts/kgateway-crds + + helm upgrade -i --namespace kgateway-system --version $VERSION kgateway oci://cr.kgateway.dev/kgateway-dev/charts/kgateway + ``` + +4. Run the conformance tests + + ```sh + make conformance + ``` + +5. View and verify the conformance report: `cat _test/conformance/$VERSION-report.yaml` \ No newline at end of file diff --git a/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml b/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml new file mode 100644 index 0000000000..5300514674 --- /dev/null +++ b/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml @@ -0,0 +1,51 @@ +apiVersion: gateway.networking.k8s.io/v1 +date: "2025-04-02T15:58:12Z" +gatewayAPIChannel: experimental +gatewayAPIVersion: v1.2.1 +implementation: + contact: + - github.com/kgateway-dev/kgateway/issues/new/choose + organization: kgateway-dev + project: kgateway + url: github.com/kgateway-dev/kgateway + version: v2.0.0 +kind: ConformanceReport +mode: default +profiles: +- core: + result: success + statistics: + Failed: 0 + Passed: 33 + Skipped: 0 + extended: + result: success + statistics: + Failed: 0 + Passed: 10 + Skipped: 0 + supportedFeatures: + - HTTPRouteBackendProtocolH2C + - HTTPRouteHostRewrite + - HTTPRouteMethodMatching + - HTTPRoutePathRedirect + - HTTPRoutePathRewrite + - HTTPRoutePortRedirect + - HTTPRouteQueryParamMatching + - HTTPRouteRequestMirror + - HTTPRouteResponseHeaderModification + - HTTPRouteSchemeRedirect + unsupportedFeatures: + - GatewayHTTPListenerIsolation + - GatewayInfrastructurePropagation + - GatewayPort8080 + - GatewayStaticAddresses + - HTTPRouteBackendProtocolWebSocket + - HTTPRouteBackendRequestHeaderModification + - HTTPRouteBackendTimeout + - HTTPRouteDestinationPortMatching + - HTTPRouteParentRefPort + - HTTPRouteRequestMultipleMirrors + - HTTPRouteRequestTimeout + name: GATEWAY-HTTP + summary: Core tests succeeded. Extended tests succeeded. \ No newline at end of file From a821b0f53deab44754721cd9af8e369168e372a6 Mon Sep 17 00:00:00 2001 From: nfuden Date: Wed, 2 Apr 2025 14:36:41 -0400 Subject: [PATCH 2/6] kgateway: missed renames --- conformance/reports/v1.2.1/kgateway/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conformance/reports/v1.2.1/kgateway/README.md b/conformance/reports/v1.2.1/kgateway/README.md index 9ff2107f87..5539ca517b 100644 --- a/conformance/reports/v1.2.1/kgateway/README.md +++ b/conformance/reports/v1.2.1/kgateway/README.md @@ -1,4 +1,4 @@ -# Gloo Gateway +# kgateway ## Table of contents @@ -19,7 +19,7 @@ run the conformance tests. ### Steps -1. Clone the Gloo Gateway repository and checkout the release: +1. Clone the kgateway repository and checkout the release: ```sh git clone https://github.com/kgateway-dev/kgateway.git From 355ca32b78c47022f1f9b497d77620a9b2d182ac Mon Sep 17 00:00:00 2001 From: nfuden Date: Wed, 2 Apr 2025 14:37:43 -0400 Subject: [PATCH 3/6] kgateway: missed renames --- conformance/reports/v1.2.1/kgateway/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conformance/reports/v1.2.1/kgateway/README.md b/conformance/reports/v1.2.1/kgateway/README.md index 5539ca517b..083e3086dd 100644 --- a/conformance/reports/v1.2.1/kgateway/README.md +++ b/conformance/reports/v1.2.1/kgateway/README.md @@ -23,7 +23,7 @@ run the conformance tests. ```sh git clone https://github.com/kgateway-dev/kgateway.git - cd gloo + cd kgateway export VERSION="v2.0.0" git checkout tags/$VERSION -b $VERSION ``` From 175eaf6e03b0261e12f549bb86ab49bf3a0fd6f5 Mon Sep 17 00:00:00 2001 From: nfuden Date: Wed, 2 Apr 2025 14:59:13 -0400 Subject: [PATCH 4/6] implementiations: Add kgateway to the implementations.md --- site-src/implementations.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/site-src/implementations.md b/site-src/implementations.md index 927fdc96b4..0adb300b40 100644 --- a/site-src/implementations.md +++ b/site-src/implementations.md @@ -32,6 +32,7 @@ cover, and documentation to help users get started. - [HAProxy Kubernetes Ingress Controller][32] (GA) - [HashiCorp Consul][8] - [Istio][9] (GA) +- [kgateway][37] - [Kong Ingress Controller][10] (GA) - [Kong Gateway Operator][35] (GA) - [Kuma][11] (GA) @@ -93,6 +94,7 @@ cover, and documentation to help users get started. [34]:#airlock-microgateway [35]:#kong-gateway-operator [36]:#loxilb +[37]:#kgateway [gamma]:/concepts/gamma/ @@ -359,6 +361,17 @@ Check out the [Gateway API task][istio-2] for more information about the Gateway [istio-1]:https://istio.io/latest/docs/tasks/traffic-management/ingress/ [istio-2]:https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/ +### kgateway +[![Conformance](https://img.shields.io/badge/Gateway%20API%20Partial%20Conformance%20v1.2.1-kgateway-orange)](https://github.com/kubernetes-sigs/gateway-api/blob/main/conformance/reports/v1.2.1/kgateway) + +[kgateway] +[kgateway][kgatewaydocs] is a feature-rich, Kubernetes-native ingress controller and next-generation API gateway. +It is focused on maintaining an great HTTP experience, a wealth of features and great interoperability with service mesh such as Istio. +This focus means that you can easily configure a set of Envoy instances that are reasonably distributed in a performant way. + +[kgatewaydocs]:https://kgateway.dev/docs/ + + ### Kong Kubernetes Ingress Controller [![Conformance](https://img.shields.io/badge/Gateway%20API%20Conformance%20v1.2.1-Kong%20Ingress%20Controller-green)](https://github.com/kubernetes-sigs/gateway-api/blob/main/conformance/reports/v1.2.1/kong-kubernetes-ingress-controller) From e33e438c542ea8c8223fe8b8e317e5b2c7d54aad Mon Sep 17 00:00:00 2001 From: Nathan Fudenberg Date: Wed, 2 Apr 2025 15:16:56 -0400 Subject: [PATCH 5/6] update linking in implementations --- site-src/implementations.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/site-src/implementations.md b/site-src/implementations.md index 0adb300b40..fbdef46836 100644 --- a/site-src/implementations.md +++ b/site-src/implementations.md @@ -364,12 +364,11 @@ Check out the [Gateway API task][istio-2] for more information about the Gateway ### kgateway [![Conformance](https://img.shields.io/badge/Gateway%20API%20Partial%20Conformance%20v1.2.1-kgateway-orange)](https://github.com/kubernetes-sigs/gateway-api/blob/main/conformance/reports/v1.2.1/kgateway) -[kgateway] -[kgateway][kgatewaydocs] is a feature-rich, Kubernetes-native ingress controller and next-generation API gateway. +[kgateway] is a feature-rich, Kubernetes-native ingress controller and next-generation API gateway. It is focused on maintaining an great HTTP experience, a wealth of features and great interoperability with service mesh such as Istio. This focus means that you can easily configure a set of Envoy instances that are reasonably distributed in a performant way. -[kgatewaydocs]:https://kgateway.dev/docs/ +[kgateway]:https://kgateway.dev/docs ### Kong Kubernetes Ingress Controller From 542e66f54eccaf39aadb0039a6a2a651d8fea7c1 Mon Sep 17 00:00:00 2001 From: nfuden Date: Thu, 3 Apr 2025 09:25:56 -0400 Subject: [PATCH 6/6] conformance: add new line per validation yaml scripts --- conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml b/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml index 5300514674..0f9c3087fe 100644 --- a/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml +++ b/conformance/reports/v1.2.1/kgateway/v2.0.0-report.yaml @@ -48,4 +48,4 @@ profiles: - HTTPRouteRequestMultipleMirrors - HTTPRouteRequestTimeout name: GATEWAY-HTTP - summary: Core tests succeeded. Extended tests succeeded. \ No newline at end of file + summary: Core tests succeeded. Extended tests succeeded.