Skip to content

Lift the e2e suite onto the prod-fidelity two-cluster env (#226) #275

Description

@ecv

Goal

Run the existing e2e suite (test/e2e/) against the prod-fidelity two-cluster environment stood up in #226, instead of the single-stack bridge harness on main.

Today the suite runs via the Makefile bridge path (make kind-standard-cluster + make kind-infra-cluster + make prepare-infra-cluster + make test-e2e) — the stopgap landed in #268 to unblock CI. #226 introduces the canonical env (task test-infra:up: two clusters, EG v1.7.4, the ext-server, the real Coraza data plane, optional Karmada host). This issue tracks lifting the suite onto that env so the arc (#247) has a real place to prove edge behavior, en route to #248 wiring it into CI.

Why it's small

The suite binds to a data-plane contract that #226's env already satisfies with identical names:

Test binds to bridge (main) #226 env
downstream gateway namespace datum-downstream-gateway datum-downstream-gateway
GatewayClass / EnvoyProxy datum-downstream-gateway datum-downstream-gateway
controllerName gateway.envoyproxy.io/datum-downstream-gateway same
Coraza WAF EnvoyProxy datum-downstream-gateway datum-downstream-gateway
namespace watch label meta.datumapis.com/upstream-cluster-name same

Only real divergences:

Scope

  1. Add a test-infra:test-e2e task: after test-infra:up, run chainsaw test ./test/e2e --cluster nso-standard=<nso-upstream kubeconfig> --cluster nso-infra=<nso-downstream kubeconfig>.
  2. Bring the current main test/e2e/ suite onto the Stand up a test environment that mirrors how the edge really runs #226 branch (it's 70+ commits behind and carries the older tests; the suite was hardened recently in 1722a30 / 69d07c5).
  3. Confirm upstream-delivered fixtures (Gateway / HTTPRoute / TrafficProtectionPolicy) reconcile through Stand up a test environment that mirrors how the edge really runs #226's prepare-upstream + link-clusters replication path.

No test rewrites expected — the contract matches. Est. plumbing ~1–2h.

The real risk is runtime, not code

Wiring the suite up is not the same as getting it green. The bridge's own repro (#268) was waf-gw stuck at Programmed=Unknown — the data plane never installed. #226 claims to fix exactly that (EG v1.7.4 pin, maxMessageSize: 256Mi, failOpen: false, includeAll: true). Whether it actually programs under this suite is the open question, and only a live task test-infra:up + run answers it. That verification is the point of this work.

Acceptance

  • test-infra:test-e2e task runs the full test/e2e/ suite against the Stand up a test environment that mirrors how the edge really runs #226 two-cluster env.
  • waf-gw reaches Programmed=True (not Unknown) in the env.
  • Report per-test pass/fail; the WAF-serves-traffic + paranoia-validation TPP tests pass on the real Coraza data path.
  • Document any test that needs an env-specific adjustment (and why).

Related

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions