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

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions