feat: add liveness and readiness probes to starter and workers#72
feat: add liveness and readiness probes to starter and workers#72pranjalg13 wants to merge 2 commits into
Conversation
Add HTTP probes against the Spring Boot Actuator health endpoints
(/health/liveness and /health/readiness on port 9600) to gate the
Kubernetes pod-Ready signal on Spring Boot startup completion, instead
of marking pods Ready the instant the container process starts.
This fixes a CI race where port-forwards against the deployed pods land
before the load-tester app has finished initializing.
Configured chart-wide via a top-level probes.{starter,workers} block in
values.yaml with sensible defaults. Both default and realistic-benchmark
workflows pick up the probes without per-file overrides.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR adds configurable Kubernetes liveness and readiness probes to the Helm chart’s starter and worker Deployments, using HTTP checks against the load-tester’s health endpoints to prevent pods from becoming Ready before the application has finished initializing (addressing CI port-forward timing races).
Changes:
- Introduces a new top-level
probes.{starter,workers}configuration block invalues.yamlwith defaults for liveness/readiness timing. - Updates
templates/starter.yamlandtemplates/workers.yamlto conditionally renderlivenessProbeandreadinessProbeon porthttp(9600). - Updates golden test manifests to include the rendered probes.
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-load-tests/values.yaml | Adds chart-wide probes configuration with defaults for starter and workers. |
| charts/camunda-load-tests/templates/starter.yaml | Conditionally renders liveness/readiness probes for the starter Deployment. |
| charts/camunda-load-tests/templates/workers.yaml | Conditionally renders liveness/readiness probes for each worker Deployment. |
| charts/camunda-load-tests/test/golden/starter.golden.yaml | Updates expected rendered starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/starter-extended.golden.yaml | Updates expected rendered starter manifest variant to include probes. |
| charts/camunda-load-tests/test/golden/workers.golden.yaml | Updates expected rendered workers manifests to include probes. |
| charts/camunda-load-tests/test/golden/workers-with-message.golden.yaml | Updates expected rendered workers manifest variant to include probes. |
| charts/camunda-load-tests/test/golden/golden-saas-with-extra-config-starter.golden.yaml | Updates expected SaaS+extra-config starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-saas-with-extra-config-workers.golden.yaml | Updates expected SaaS+extra-config workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-node-scheduling-starter.golden.yaml | Updates expected node-scheduling starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-node-scheduling-workers.golden.yaml | Updates expected node-scheduling workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-envs-starter.golden.yaml | Updates expected extra-envs starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-envs-workers.golden.yaml | Updates expected extra-envs workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-envs-with-value-from-starter.golden.yaml | Updates expected extra-envs (valueFrom) starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-envs-with-value-from-workers.golden.yaml | Updates expected extra-envs (valueFrom) workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-configs-starter.golden.yaml | Updates expected extra-configs starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-extra-configs-workers.golden.yaml | Updates expected extra-configs workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-existing-credential-secret-starter.golden.yaml | Updates expected existing-credential-secret starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-existing-credential-secret-workers.golden.yaml | Updates expected existing-credential-secret workers manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-credentials-starter.golden.yaml | Updates expected credentials-based starter manifest to include probes. |
| charts/camunda-load-tests/test/golden/golden-credentials-workers.golden.yaml | Updates expected credentials-based workers manifest to include probes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ChrisKujawa
left a comment
There was a problem hiding this comment.
Thanks Pranjal, makes sense in general I still have some remarks
| liveness: | ||
| initialDelaySeconds: 30 | ||
| periodSeconds: 10 | ||
| timeoutSeconds: 3 | ||
| failureThreshold: 3 | ||
| # Probes.workers.readiness configures the HTTP readinessProbe against /health/readiness | ||
| readiness: | ||
| initialDelaySeconds: 10 | ||
| periodSeconds: 5 | ||
| timeoutSeconds: 3 | ||
| failureThreshold: 3 |
There was a problem hiding this comment.
❓ How did we came up with the numbers? Why is periodSeconda different between ready and liveness?
Addresses PR #72 review feedback: - Move probes.starter -> starter.probes (config lives with the workload). - Move probes.workers -> workers.<name>.probes; defaults applied in-template via Helm `default` so custom worker entries (e.g. in values-realistic- benchmark.yaml) can omit the block. - Align readiness periodSeconds with liveness (both 10s); document the chosen numbers (initialDelaySeconds, periodSeconds, timeoutSeconds, failureThreshold) inline in values.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add HTTP probes against the Spring Boot Actuator health endpoints (/health/liveness and /health/readiness on port 9600) to gate the Kubernetes pod-Ready signal on Spring Boot startup completion, instead of marking pods Ready the instant the container process starts.
This fixes a CI race where port-forwards against the deployed pods land before the load-tester app has finished initializing.
Configured chart-wide via a top-level probes.{starter,workers} block in values.yaml with sensible defaults. Both default and realistic-benchmark workflows pick up the probes without per-file overrides.