fix: support Orchestration gRPC TLS endpoints#6280
Open
eamonnmoloney wants to merge 6 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a dedicated HTTPS-backed ingress for the Orchestration REST endpoint when SERVER_SSL_ENABLED is true on Orchestration, so the NGINX ingress-wide backend-protocol: HTTPS annotation doesn't break the other HTTP backends (Console, Identity, Web Modeler, Optimize, Connectors). The change is mirrored across charts 8.8, 8.9, and 8.10 and covered by new orchestration-tls (estls) GKE integration scenarios with explicit Web Modeler and Connectors TLS client wiring.
Changes:
- Add new template
templates/common/ingress-orchestration-http.yamlrendered only when Orchestration setsSERVER_SSL_ENABLED=true, annotated withnginx.ingress.kubernetes.io/backend-protocol: HTTPS; and a new helpercamundaPlatform.orchestrationEnvIsTrueto inspectorchestration.envfrom templates. - Exclude the
/orchestrationpath from the combinedingress-http.yamlwhen the new helper reportsSERVER_SSL_ENABLED=true. - Add
orchestration-tlsCI scenarios with apre-install-orchestration-tls.shcert/truststore bootstrap script, afeatures/orchestration-tls.yamlvalues overlay (Orchestration TLS env/volumes, explicit Web Modelerrestapi.clusters, explicit Connectorsconfiguration), plus unit tests for both ingress paths.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| charts/camunda-platform-8.{8,9,10}/templates/common/ingress-orchestration-http.yaml | New HTTPS-upstream ingress for /orchestration, guarded on SERVER_SSL_ENABLED |
| charts/camunda-platform-8.{8,9,10}/templates/common/ingress-http.yaml | Skip Orchestration path in the combined ingress when TLS is enabled on the server |
| charts/camunda-platform-8.{8,9,10}/templates/common/_helpers.tpl | Add camundaPlatform.orchestrationEnvIsTrue helper used by the ingress guards |
| charts/camunda-platform-8.{8,9,10}/test/unit/common/ingress_test.go | New tests for combined ingress omission and new orchestration-http ingress rendering |
| charts/camunda-platform-8.{8,9,10}/test/integration/scenarios/chart-full-setup/values/features/orchestration-tls.yaml | New feature values overlay enabling Orchestration TLS and explicit Web Modeler/Connectors TLS clients |
| charts/camunda-platform-8.{8,9,10}/test/integration/scenarios/pre-setup-scripts/pre-install-orchestration-tls.sh | New pre-install script generating cert/key and truststore Secrets (8.10 also seeds CloudNativePG) |
| charts/camunda-platform-8.{8,9,10}/test/ci-test-config.yaml | Register the new estls scenario with features: [orchestration-tls] and pre-install hook |
41 tasks
8cfc31a to
6a9545d
Compare
a26a387 to
c4afe69
Compare
c0ed65a to
6d7b70f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CAMUNDA_API_GRPC_SSL_ENABLED=true, while keeping REST on HTTP unlessSERVER_SSL_ENABLED=true.nginx.ingress.kubernetes.io/backend-protocol: GRPCSwhen the in-chart Orchestration gRPC server has TLS enabled./orchestrationcan use HTTPS upstream whenSERVER_SSL_ENABLED=truewithout changing the shared HTTP ingress backends.orchestration-tls(estls) scenario values to match the SUPPORT-33090 customer shape: REST over HTTP, gRPC over TLS.Why
CAMUNDA_API_GRPC_SSL_ENABLED=truewhile leaving REST plaintext withSERVER_SSL_ENABLED=false.GRPCupstream even when the in-chart Orchestration gRPC server expected TLS.grpcs://for secure gRPC, while Connectors/Camunda client expects the secure gRPC endpoint ashttps://.Notes
webModeler.restapi.clustersconnectors.configurationopensearch-self-signed-os-trust/osotmatrix entry is kept from the rebased branch using its dedicatedopensearch-self-signed-os-trustpersistence and pre-install wrapper.Local Validation
go test ./common/... ./connectors/... ./web-modeler/...in 8.8 unit test dir.go test ./common/... ./connectors/... ./web-modeler/...in 8.9 unit test dir.go test ./common/... ./connectors/... ./web-modeler/...in 8.10 unit test dir.make go.test chartPath=charts/camunda-platform-8.8make go.test chartPath=charts/camunda-platform-8.9make go.test chartPath=charts/camunda-platform-8.10make helm.lint chartPath=charts/camunda-platform-8.8make helm.lint chartPath=charts/camunda-platform-8.9make helm.lint chartPath=charts/camunda-platform-8.10go test ./matrix/...fromscripts/deploy-camunda.deploy-camunda matrix list --repo-root . --versions 8.10 --scenario-filter opensearch-self-signed-os-trust --shortname-filter osot --shortname-exact --flow-filter install --platform gkereturns oneosotentry.GKE Validation
estlsscenario to GKE namespacematrix-88-estls-inst-gke:deploy-camunda matrix run --repo-root . --versions 8.8 --shortname-filter estls --shortname-exact --platform gke --ingress-base-domain-gke ci.distro.ultrawombat.com --delete-namespace --timeout 30 --yes --ensure-docker-registrydeploy-camunda watch --namespace matrix-88-estls-inst-gke --release integration --interval 15confirmed the Helm release is deployed and all pods are Ready.integration-camunda-platform-grpchasnginx.ingress.kubernetes.io/backend-protocol: GRPCS./orchestration -> integration-zeebe-gateway:8080.rest-address: http://integration-zeebe-gateway:8080/orchestrationgrpc-address: https://integration-zeebe-gateway:26500grpc: grpcs://integration-zeebe-gateway:26500rest: http://integration-zeebe-gateway:8080/orchestrationweb-app: https://matrix-88-estls-inst-gke.ci.distro.ultrawombat.com/orchestrationhttps://matrix-88-estls-inst-gke.ci.distro.ultrawombat.com/orchestration/identityreturnsHTTP/2 401withwww-authenticate: Bearer, not a TLS protocol mismatch page.MINOR_VERSION=SM-8.8 npx playwright test --project=chromium tests/SM-8.8/smoke-tests.spec.ts --workers=1 --trace onpassed with 3 passed and 4 skipped.CI Validation
6a9545d66to refresh PR CI after rebasing on the updated branch.test-chart-version.yamlworkflow dispatch currently does not exposeorchestration-tlsas a selectable scenario, so no narrower manual GKE workflow run was triggered from the workflow UI inputs.