Skip to content

test(8.10): add CI integration test scenarios for gateway namespace feature#6243

Draft
hisImminence wants to merge 9 commits into
mainfrom
gatewayapi-namespace-integration-tests
Draft

test(8.10): add CI integration test scenarios for gateway namespace feature#6243
hisImminence wants to merge 9 commits into
mainfrom
gatewayapi-namespace-integration-tests

Conversation

@hisImminence

@hisImminence hisImminence commented May 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Stacks on top of #6174. Introduces a ci-reference-scenarios.yaml pattern for Gateway API scenarios that are too specific to run in regular PR or merge-queue CI, but are valuable to keep as validated, runnable configurations for incident reproduction and feature-specific testing.

Reference scenarios (never run automatically):

  • gateway-keycloak — baseline Gateway API scenario with Keycloak auth; post-deploy fixture applies the NGINX `ProxySettingsPolicy`.
  • gateway-cross-namespace — exercises `global.gateway.namespace` by attaching Routes to a shared Gateway in a separate namespace, pre-created by `pre-install-gateway-cross-namespace.sh`.
  • gateway-existing — exercises `createGatewayResource=false` with a pre-created Gateway fixture (`gateway-prereq.yaml`), proving the chart attaches Routes to an externally-managed Gateway.

Infrastructure changes:

  • New `charts/camunda-platform-8.10/test/ci-reference-scenarios.yaml` — same schema as `ci-test-config.yaml`, invisible to CI by default.
  • `--ci-config` flag added to `deploy-camunda matrix list/run` to point at any config file in the chart's `test/` directory. Default behaviour (no flag) is unchanged.
  • `LoadCITestConfig` accepts an optional filename override; all existing callers unaffected.
  • Orphan-check test extended to also scan `ci-reference-scenarios.yaml` so reference scenario assets are not reported as orphans.

Run a reference scenario on demand:
```
deploy-camunda matrix run
--ci-config ci-reference-scenarios.yaml
--scenario-filter gateway-cross-namespace
--repo-root
```

Test plan

  • `go test ./matrix/...` passes (orphan check covers reference scenarios)
  • `deploy-camunda matrix list --ci-config ci-reference-scenarios.yaml` lists the three gateway scenarios
  • Confirm `gateway-cross-namespace` correctly creates the shared namespace + Gateway before install
  • Confirm `gateway-existing` Routes attach to the pre-existing Gateway
  • Once feat(8.10): add global.gateway.namespace to support cross-namespace Gateway parentRefs #6174 merges, rebase this branch onto `main` and re-target the PR base to `main`

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

hisImminence and others added 8 commits May 19, 2026 12:17
…ateway parentRefs

HTTPRoutes and GRPCRoutes created by the chart never included a namespace
field in their parentRefs. When omitted, Kubernetes assumes the Gateway is
in the same namespace as the Route, which breaks setups where a shared
Gateway lives in a different namespace (for example, a shared-infra namespace).

Adds global.gateway.namespace to values.yaml and values.schema.json, plumbs
it into parentRefs in all seven Route templates, and adds four test cases per
template covering: namespace set, namespace unset, namespace + TLS, and
external mode with namespace set.

Closes #6167

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tRefs

Without a configurable Gateway name, parentRefs in every Route was hardcoded
to the Helm release fullname. In cross-namespace setups the shared Gateway
almost certainly has a different name, making global.gateway.namespace
insufficient on its own.

Adds global.gateway.name (defaults to release fullname for backward compat),
plumbs it into parentRefs across all seven Route templates and the Gateway
resource itself, and adds a test case per template verifying a custom name
is rendered. Also drops the erroneous require.NoError from the external=true
not-rendered test cases, which was wrong: chart constraint validation fires
even when external=true, producing expected non-feature errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…parentRef name in tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Gate namespace+createGatewayResource constraint on gateway.enabled so
  inert value combinations don't fail helm template
- Add Keycloak+namespace identity HTTPRoute test to cover Keycloak parentRef path
- Add TestGatewayCustomName test (createGatewayResource=true + gateway.name)
- Fix TLS sectionName docs: https (HTTPRoutes) vs grpcs (GRPCRoute)
  in values.yaml, values.schema.json, and README.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…isting CI scenarios

Adds three new integration test scenarios to ci-test-config.yaml covering
the gateway feature modes introduced by the gateway.namespace PR:

- gateway-keycloak (gatkc): baseline gateway scenario with Keycloak auth;
  uses a post-deploy fixture to apply the NGINX ProxySettingsPolicy.
- gateway-cross-namespace (gatxn): exercises global.gateway.namespace by
  deploying Routes that reference a shared Gateway in camunda-gateway-shared,
  pre-created by pre-install-gateway-cross-namespace.sh.
- gateway-existing (gatex): exercises createGatewayResource=false with a
  pre-created Gateway fixture (gateway-prereq.yaml), proving that the chart
  can attach Routes to an externally-managed Gateway.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the version/8.10 Camunda applications/cycle version label May 26, 2026
… scenarios

Moves gateway-cross-namespace and gateway-existing out of the main
ci-test-config.yaml into a new ci-reference-scenarios.yaml alongside all
three Gateway API scenarios (including gateway-keycloak already in main).
Reference scenarios never run in PR or merge-queue CI — they exist for
incident reproduction and feature-specific validation.

Adds --ci-config flag to deploy-camunda matrix list/run to point at any
ci-test-config-compatible file in the chart's test/ directory:

  deploy-camunda matrix run \
    --ci-config ci-reference-scenarios.yaml \
    --shortname-filter gatxn \
    --repo-root <path>

LoadCITestConfig now accepts an optional filename override (variadic);
all existing callers are unaffected. The orphan-check test is extended to
also scan ci-reference-scenarios.yaml so reference scenario assets are not
reported as orphans.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Ian-wang-liyang Ian-wang-liyang force-pushed the gatewayapi-namespace branch 4 times, most recently from a5a307f to 2cd2df4 Compare June 2, 2026 20:13
Base automatically changed from gatewayapi-namespace to main June 2, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool/script version/8.10 Camunda applications/cycle version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant