{
  "checked": "2026-10-09",
  "context": "kind-kubedex-envoy-fixture-20261009",
  "clusterName": "kubedex-envoy-fixture-20261009",
  "nodeImage": "kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed",
  "kindVersion": "0.33.0",
  "helmVersion": "4.3.0",
  "envoyGatewayVersion": "1.9.2",
  "envoyProxyVersion": "1.39.2",
  "chartSha256": "1079cad009e0885f6e10e5f712257d8e5fdaf911d2ceb3fa1b78632c8f29bbf9",
  "chartOciDigest": "sha256:be034275b55deeddd6b7bc1f4da6eeb02b8efc418a4a29e2b1977851b24b1e63",
  "steps": [
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 create namespace kubedex-gateway-fixture",
      "exitCode": 0,
      "stdout": "namespace/kubedex-gateway-fixture created",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 create namespace kubedex-envoy-system",
      "exitCode": 0,
      "stdout": "namespace/kubedex-envoy-system created",
      "stderr": ""
    },
    {
      "command": "$REPO/.build/bin/helm-v4.3.0 install eg $REPO/.build/envoy/gateway-helm-v1.9.2.tgz --kubeconfig $REPO/.build/envoy-kubeconfig --kube-context kind-kubedex-envoy-fixture-20261009 --namespace kubedex-envoy-system --values $REPO/public/examples/envoy-gateway/values.yaml --wait --timeout 300s",
      "exitCode": 0,
      "stdout": "NAME: eg\nLAST DEPLOYED: Fri Oct  9 03:08:55 2026\nNAMESPACE: kubedex-envoy-system\nSTATUS: deployed\nREVISION: 1\nDESCRIPTION: Install complete\nTEST SUITE: None\nNOTES:\n**************************************************************************\n*** PLEASE BE PATIENT: Envoy Gateway may take a few minutes to install ***\n**************************************************************************\n\nEnvoy Gateway is an open source project for managing Envoy Proxy as a standalone or Kubernetes-based application gateway.\n\nThank you for installing Envoy Gateway! \ud83c\udf89\n\nYour release is named: eg. \ud83c\udf89\n\nYour release is in namespace: kubedex-envoy-system. \ud83c\udf89\n\nTo learn more about the release, try:\n\n  $ helm status eg -n kubedex-envoy-system\n  $ helm get all eg -n kubedex-envoy-system\n\nTo have a quickstart of Envoy Gateway, please refer to https://gateway.envoyproxy.io/latest/tasks/quickstart.\n\nTo get more details, please visit https://gateway.envoyproxy.io and https://github.com/envoyproxy/gateway.",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 apply -f $REPO/public/examples/envoy-gateway/backends.yaml",
      "exitCode": 0,
      "stdout": "configmap/blue-content created\ndeployment.apps/blue created\nservice/blue created\nconfigmap/green-content created\ndeployment.apps/green created\nservice/green created",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 rollout status deployment/blue -n kubedex-gateway-fixture --timeout=120s",
      "exitCode": 0,
      "stdout": "Waiting for deployment \"blue\" rollout to finish: 0 of 1 updated replicas are available...\ndeployment \"blue\" successfully rolled out",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 rollout status deployment/green -n kubedex-gateway-fixture --timeout=120s",
      "exitCode": 0,
      "stdout": "Waiting for deployment \"green\" rollout to finish: 0 of 1 updated replicas are available...\ndeployment \"green\" successfully rolled out",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 apply -f $REPO/public/examples/envoy-gateway/gateway.yaml",
      "exitCode": 0,
      "stdout": "envoyproxy.gateway.envoyproxy.io/local-proxy created\ngatewayclass.gateway.networking.k8s.io/kubedex-fixture created\ngateway.gateway.networking.k8s.io/local-gateway created",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 apply -f $REPO/public/examples/envoy-gateway/route-blue.yaml",
      "exitCode": 0,
      "stdout": "httproute.gateway.networking.k8s.io/fixture-route created",
      "stderr": ""
    },
    {
      "command": "Assert HTTPRoute status after initial blue route",
      "exitCode": 0,
      "generation": 1,
      "conditions": [
        {
          "lastTransitionTime": "2026-10-08T20:09:24Z",
          "message": "Route is accepted",
          "observedGeneration": 1,
          "reason": "Accepted",
          "status": "True",
          "type": "Accepted"
        },
        {
          "lastTransitionTime": "2026-10-08T20:09:24Z",
          "message": "Resolved all the Object references for the Route",
          "observedGeneration": 1,
          "reason": "ResolvedRefs",
          "status": "True",
          "type": "ResolvedRefs"
        }
      ]
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 wait gateway/local-gateway -n kubedex-gateway-fixture --for=condition=Programmed --timeout=180s",
      "exitCode": 0,
      "stdout": "gateway.gateway.networking.k8s.io/local-gateway condition met",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 rollout status deployment/envoy-kubedex-gateway-fixture-local-gateway-bfce48b4 -n kubedex-envoy-system --timeout=180s",
      "exitCode": 0,
      "stdout": "deployment \"envoy-kubedex-gateway-fixture-local-gateway-bfce48b4\" successfully rolled out",
      "stderr": ""
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 apply -f $REPO/public/examples/envoy-gateway/route-green.yaml",
      "exitCode": 0,
      "stdout": "httproute.gateway.networking.k8s.io/fixture-route configured",
      "stderr": ""
    },
    {
      "command": "Assert HTTPRoute status after switch to green",
      "exitCode": 0,
      "generation": 2,
      "conditions": [
        {
          "lastTransitionTime": "2026-10-08T20:09:36Z",
          "message": "Route is accepted",
          "observedGeneration": 2,
          "reason": "Accepted",
          "status": "True",
          "type": "Accepted"
        },
        {
          "lastTransitionTime": "2026-10-08T20:09:36Z",
          "message": "Resolved all the Object references for the Route",
          "observedGeneration": 2,
          "reason": "ResolvedRefs",
          "status": "True",
          "type": "ResolvedRefs"
        }
      ]
    },
    {
      "command": "kubectl --kubeconfig $REPO/.build/envoy-kubeconfig --context kind-kubedex-envoy-fixture-20261009 apply -f $REPO/public/examples/envoy-gateway/route-blue.yaml",
      "exitCode": 0,
      "stdout": "httproute.gateway.networking.k8s.io/fixture-route configured",
      "stderr": ""
    },
    {
      "command": "Assert HTTPRoute status after rollback to blue",
      "exitCode": 0,
      "generation": 3,
      "conditions": [
        {
          "lastTransitionTime": "2026-10-08T20:09:36Z",
          "message": "Route is accepted",
          "observedGeneration": 3,
          "reason": "Accepted",
          "status": "True",
          "type": "Accepted"
        },
        {
          "lastTransitionTime": "2026-10-08T20:09:36Z",
          "message": "Resolved all the Object references for the Route",
          "observedGeneration": 3,
          "reason": "ResolvedRefs",
          "status": "True",
          "type": "ResolvedRefs"
        }
      ]
    },
    {
      "command": "$REPO/.build/bin/kind delete cluster --name kubedex-envoy-fixture-20261009 --kubeconfig $REPO/.build/envoy-kubeconfig",
      "exitCode": 0,
      "stdout": "",
      "stderr": "Deleting cluster \"kubedex-envoy-fixture-20261009\" ...\nDeleted nodes: [\"kubedex-envoy-fixture-20261009-control-plane\"]"
    }
  ],
  "requests": [
    {
      "stage": "blue",
      "host": "fixture.example.test",
      "path": "/",
      "status": 200,
      "body": "blue",
      "convergenceSeconds": 0.23,
      "firstObservation": {
        "status": 200,
        "body": "blue"
      }
    },
    {
      "stage": "blue",
      "host": "fixture.example.test",
      "path": "/app",
      "status": 200,
      "body": "blue",
      "convergenceSeconds": 0.01,
      "firstObservation": {
        "status": 200,
        "body": "blue"
      }
    },
    {
      "stage": "blue",
      "host": "fixture.example.test",
      "path": "/app/",
      "status": 200,
      "body": "blue",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "blue"
      }
    },
    {
      "stage": "blue",
      "host": "fixture.example.test",
      "path": "/app/status",
      "status": 200,
      "body": "green",
      "convergenceSeconds": 0.01,
      "firstObservation": {
        "status": 200,
        "body": "green"
      }
    },
    {
      "stage": "blue",
      "host": "fixture.example.test",
      "path": "/application",
      "status": 404,
      "body": "",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 404,
        "body": ""
      }
    },
    {
      "stage": "blue",
      "host": "other.example.test",
      "path": "/",
      "status": 404,
      "body": "",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 404,
        "body": ""
      }
    },
    {
      "stage": "green",
      "host": "fixture.example.test",
      "path": "/",
      "status": 200,
      "body": "green",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "green"
      }
    },
    {
      "stage": "green",
      "host": "fixture.example.test",
      "path": "/app",
      "status": 200,
      "body": "green",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "green"
      }
    },
    {
      "stage": "green",
      "host": "fixture.example.test",
      "path": "/app/status",
      "status": 200,
      "body": "green",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "green"
      }
    },
    {
      "stage": "rollback",
      "host": "fixture.example.test",
      "path": "/",
      "status": 200,
      "body": "blue",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "blue"
      }
    },
    {
      "stage": "rollback",
      "host": "fixture.example.test",
      "path": "/app",
      "status": 200,
      "body": "blue",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "blue"
      }
    },
    {
      "stage": "rollback",
      "host": "fixture.example.test",
      "path": "/app/status",
      "status": 200,
      "body": "green",
      "convergenceSeconds": 0.0,
      "firstObservation": {
        "status": 200,
        "body": "green"
      }
    }
  ],
  "passed": true,
  "serverVersion": "v1.36.4",
  "gatewayApiBundle": {
    "api-approved.kubernetes.io": "https://github.com/kubernetes-sigs/gateway-api/pull/4530",
    "gateway.networking.k8s.io/bundle-version": "v1.6.1",
    "gateway.networking.k8s.io/channel": "experimental"
  },
  "proxyService": {
    "name": "envoy-kubedex-gateway-fixture-local-gateway-bfce48b4",
    "type": "ClusterIP",
    "ports": [
      {
        "name": "http-8080",
        "port": 8080,
        "protocol": "TCP",
        "targetPort": 8080
      }
    ]
  },
  "observedImages": [
    {
      "namespace": "kubedex-gateway-fixture",
      "pod": "blue-65646c7c5b-fqx9t",
      "container": "http",
      "declaredImage": "busybox:1.37.0@sha256:bdf57e528e45e4433820e045b29b4597825a1c9e38353532d90a01445013f82e",
      "runtimeImage": "sha256:ad4f11f7c85f87c0a6d6c0fe492ad53f9cdcff6e8c88b881360c70eff701c67b",
      "imageID": "docker.io/library/busybox@sha256:bdf57e528e45e4433820e045b29b4597825a1c9e38353532d90a01445013f82e"
    },
    {
      "namespace": "kubedex-gateway-fixture",
      "pod": "green-c56544b48-rmg7k",
      "container": "http",
      "declaredImage": "busybox:1.37.0@sha256:bdf57e528e45e4433820e045b29b4597825a1c9e38353532d90a01445013f82e",
      "runtimeImage": "sha256:ad4f11f7c85f87c0a6d6c0fe492ad53f9cdcff6e8c88b881360c70eff701c67b",
      "imageID": "docker.io/library/busybox@sha256:bdf57e528e45e4433820e045b29b4597825a1c9e38353532d90a01445013f82e"
    },
    {
      "namespace": "kubedex-envoy-system",
      "pod": "eg-gateway-helm-certgen-wws2h",
      "container": "envoy-gateway-certgen",
      "declaredImage": "docker.io/envoyproxy/gateway:v1.9.2@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926",
      "runtimeImage": "sha256:a25150a910b0385a4d6f029e18562766ab946b6a22f443b12defa5c937f43309",
      "imageID": "docker.io/envoyproxy/gateway@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926"
    },
    {
      "namespace": "kubedex-envoy-system",
      "pod": "envoy-gateway-5d68f9654c-rx4cg",
      "container": "envoy-gateway",
      "declaredImage": "docker.io/envoyproxy/gateway:v1.9.2@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926",
      "runtimeImage": "sha256:a25150a910b0385a4d6f029e18562766ab946b6a22f443b12defa5c937f43309",
      "imageID": "docker.io/envoyproxy/gateway@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926"
    },
    {
      "namespace": "kubedex-envoy-system",
      "pod": "envoy-kubedex-gateway-fixture-local-gateway-bfce48b4-5679bzjsb5",
      "container": "envoy",
      "declaredImage": "docker.io/envoyproxy/envoy:distroless-v1.39.2@sha256:dced08cf7c472e1a1d067f906878266078eeeb63c110b4961882c039a622853a",
      "runtimeImage": "sha256:2ea7627a4e4c018546e6cf8617da8f8a5a4446aa93f0c768acba45412df3090f",
      "imageID": "docker.io/envoyproxy/envoy@sha256:dced08cf7c472e1a1d067f906878266078eeeb63c110b4961882c039a622853a"
    },
    {
      "namespace": "kubedex-envoy-system",
      "pod": "envoy-kubedex-gateway-fixture-local-gateway-bfce48b4-5679bzjsb5",
      "container": "shutdown-manager",
      "declaredImage": "docker.io/envoyproxy/gateway:v1.9.2@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926",
      "runtimeImage": "sha256:a25150a910b0385a4d6f029e18562766ab946b6a22f443b12defa5c937f43309",
      "imageID": "docker.io/envoyproxy/gateway@sha256:9d67017c442a70e6ae9f1a358e6c80eb653c67c2e40823d9a991e0daf37ba926"
    }
  ],
  "gatewayStatus": {
    "addresses": [
      {
        "type": "IPAddress",
        "value": "10.96.250.38"
      }
    ],
    "conditions": [
      {
        "lastTransitionTime": "2026-10-08T20:09:35Z",
        "message": "The Gateway has been scheduled by Envoy Gateway",
        "observedGeneration": 1,
        "reason": "Accepted",
        "status": "True",
        "type": "Accepted"
      },
      {
        "lastTransitionTime": "2026-10-08T20:09:35Z",
        "message": "Address assigned to the Gateway, 1/1 envoy replicas available",
        "observedGeneration": 1,
        "reason": "Programmed",
        "status": "True",
        "type": "Programmed"
      }
    ],
    "listeners": [
      {
        "attachedRoutes": 1,
        "conditions": [
          {
            "lastTransitionTime": "2026-10-08T20:09:35Z",
            "message": "Sending translated listener configuration to the data plane",
            "observedGeneration": 1,
            "reason": "Programmed",
            "status": "True",
            "type": "Programmed"
          },
          {
            "lastTransitionTime": "2026-10-08T20:09:35Z",
            "message": "Listener has been successfully translated",
            "observedGeneration": 1,
            "reason": "Accepted",
            "status": "True",
            "type": "Accepted"
          },
          {
            "lastTransitionTime": "2026-10-08T20:09:35Z",
            "message": "Listener references have been resolved",
            "observedGeneration": 1,
            "reason": "ResolvedRefs",
            "status": "True",
            "type": "ResolvedRefs"
          }
        ],
        "name": "http",
        "supportedKinds": [
          {
            "group": "gateway.networking.k8s.io",
            "kind": "HTTPRoute"
          },
          {
            "group": "gateway.networking.k8s.io",
            "kind": "GRPCRoute"
          }
        ]
      }
    ]
  },
  "checksPassed": true
}
