test(kubernetes): add optional Envoy-backed e2e mode - #2259
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
0dbb332 to
8e8d0cc
Compare
| use-envoy-gateway: | ||
| description: "Run the e2e command through an Envoy Gateway GRPCRoute" | ||
| required: false | ||
| type: boolean | ||
| default: false |
There was a problem hiding this comment.
What's the motivation for this? Is it to make sure we can test HA deployments?
There was a problem hiding this comment.
The primary motivation for this PR (and some of the others) was to reduce the surface of #1868 (adding HA support) somewhat. This includes adding Envoy configuration / deployments to provide a stable endpoint for the HA case.
As reviewed, the PR added the option but didn't actually exercise any of the added functionality. Since using Envoy is a separate from an HA deployment, I have updated the PR to add an "envoy-enabled" path to the existing tests. This should mean that we can shake out any issues with the envoy-gateway interaction separately from the HA functionality.
Depending on the load on CI, we can consider removing it again or simplifying our test matrix for k8s once HA support lands.
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
8e8d0cc to
9b5c53e
Compare
|
/ok-to-test 9b5c53e |
Summary
Add an optional Envoy-backed execution mode for the standard single-replica Kubernetes E2E suite. The mode exercises the Gateway API/Envoy
GRPCRoutepath without enabling HA, changing replica counts, or requiring PostgreSQL.Direct Service port-forwarding remains the default. Envoy mode installs or reuses an Envoy Gateway controller, creates test-owned Gateway API resources, disables Envoy request and stream duration limits for OpenShell's long-lived gRPC streams, discovers the generated proxy Service, and routes the client port-forward through that Service.
Related Issue
Extracted from the generally applicable Envoy/Gateway API setup in #1868. This PR intentionally leaves HA gateway rebalancing, multi-replica behavior, and external PostgreSQL coverage out of scope while the HA tests are not yet functional.
Changes
mise run e2e:kubernetes:envoyfor local single-replica Envoy execution.OPENSHELL_E2E_KUBE_USE_ENVOY=1support to the Kubernetes e2e wrapper.use-envoy-gatewayinput to the reusable Kubernetes E2E workflow.topology: envoyanduse-envoy-gateway: true.helm installonly when no controller is present, using a unique test-owned namespace.GatewayClassandBackendTrafficPolicyresources, refusing to modify pre-existing resources with those names.Testing
bash -n e2e/with-kube-gateway.shgit diff --checkuv/PyYAMLci/values-gateway.yamlmise run pre-commitcompletes (lint, format, workspace/E2E Clippy, Helm, Python, and other reported checks passed; the first run hit a fresh-virtualenvgrpc_toolsbootstrap race, and the rerun reached the five-minute command timeout during full Rust tests)Checklist