apisnoop / gateway-api-test-framework

Framework to test different gateway-api implementations
0 stars 1 forks source link

Generate report for Contour using v1.1.0 #18

Open heyste opened 4 months ago

heyste commented 4 months ago

Steps listed for generating a conformance report work for v1.0.0

Updating the steps with

./test/scripts/make-kind-cluster.sh
./test/scripts/install-contour-release.sh main
export GATEWAY_API_VERSION=v1.1.0
export GENERATE_GATEWAY_CONFORMANCE_REPORT="true"
export CONTOUR_E2E_IMAGE="ghcr.io/projectcontour/contour:v1.29.0"
./test/scripts/run-gateway-conformance.sh

fails with

HEAD is now at 690f7546 Adding changelog for v1.1.0 (#3062)
--- FAIL: TestConformance (0.14s)
    conformance.go:120: Running conformance tests with:
    conformance.go:138:   GatewayClass: contour
    conformance.go:139:   Cleanup Resources: true
    conformance.go:140:   Debug: false
    conformance.go:141:   Enable All Features: true
    conformance.go:142:   Supported Features: []
    conformance.go:143:   ExemptFeatures: [Mesh]
    conformance.go:124:
            Error Trace:    /tmp/tmp.NpIEr0ZPHH/gateway-api/conformance/conformance.go:124
                                    /tmp/tmp.NpIEr0ZPHH/gateway-api/conformance/conformance.go:105
                                    /tmp/tmp.NpIEr0ZPHH/gateway-api/conformance/conformance_test.go:26
            Error:          Received unexpected error:
                        the installed CRDs version is different from the suite version
            Test:           TestConformance
            Messages:       error initializing conformance suite
FAIL
FAIL    sigs.k8s.io/gateway-api/conformance 0.148s
FAIL
heyste commented 4 months ago
$ kubectl get gc contour -ojsonpath='{.status}' | jq
{
  "conditions": [
    {
      "lastTransitionTime": "2024-05-27T04:54:48Z",
      "message": "Gateway API CRD bundle version v1.0.0 is supported.",
      "observedGeneration": 1,
      "reason": "SupportedVersion",
      "status": "True",
      "type": "SupportedVersion"
    },
    {
      "lastTransitionTime": "2024-05-27T04:54:48Z",
      "message": "GatewayClass has been accepted by the controller",
      "observedGeneration": 1,
      "reason": "Accepted",
      "status": "True",
      "type": "Accepted"
    }
  ]
}

Looking to build an image as Bump gateway-api to v1.1.0 has merged

provisioner now sets supported CRD version as v1.1.0

heyste commented 4 months ago

Using a cluster created via ./test/scripts/make-kind-cluster.sh to run conformance test suite run-gateway-conformance.sh with gateway-api v1.1.0 crds

go test -timeout=40m ./conformance    -run TestConformance    -gateway-class=contour   \
   -all-features    -exempt-features=Mesh  \
   -skip-tests=HTTPRouteRedirectPortAndScheme,GatewayStaticAddresses

it fails to load all pods, checking one of them

kubectl -n gateway-conformance-infra logs contour-all-namespaces-67f445cc74-56655 | tail -1
time="2024-05-29T03:48:52Z" level=fatal msg="failed to create informer" error="no matches for kind
   \"BackendTLSPolicy\" in version \"gateway.networking.k8s.io/v1alpha2\"" resource=backendtlspolicies

when checking the current crd version it's found to be different

$ kubectl api-resources | grep BackendTLSPolicy
backendtlspolicies     btlspolicy      gateway.networking.k8s.io/v1alpha3   true      BackendTLSPolicy

Looks to be a mismatch in the crd versions for BackendTLSPolicies.

checking gateway-api repo branch

$ git remote -v 
origin  https://github.com/kubernetes-sigs/gateway-api (fetch)
origin  https://github.com/kubernetes-sigs/gateway-api (push)
$ git branch
* (HEAD detached at v1.1.0)
  main

Next step is to fix issue #6 - requires adding the gateway-provisioner and gatewayclass so it's easy to retest and confirm the above results.