Skip to content

feat: add liveness and readiness probes to starter and workers#72

Draft
pranjalg13 wants to merge 2 commits into
mainfrom
feat/add-health-probes
Draft

feat: add liveness and readiness probes to starter and workers#72
pranjalg13 wants to merge 2 commits into
mainfrom
feat/add-health-probes

Conversation

@pranjalg13

Copy link
Copy Markdown
Contributor

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.

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>
@pranjalg13 pranjalg13 marked this pull request as ready for review May 26, 2026 05:32
@pranjalg13 pranjalg13 requested a review from a team as a code owner May 26, 2026 05:32
@pranjalg13 pranjalg13 requested review from ChrisKujawa and Copilot and removed request for a team May 26, 2026 05:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 in values.yaml with defaults for liveness/readiness timing.
  • Updates templates/starter.yaml and templates/workers.yaml to conditionally render livenessProbe and readinessProbe on port http (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.

Comment thread charts/camunda-load-tests/values.yaml Outdated
Comment thread charts/camunda-load-tests/values.yaml Outdated

@ChrisKujawa ChrisKujawa left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Pranjal, makes sense in general I still have some remarks

Comment thread charts/camunda-load-tests/values.yaml Outdated
Comment on lines +227 to +237
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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ 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>
@pranjalg13 pranjalg13 marked this pull request as draft June 1, 2026 07:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants