robusta icon indicating copy to clipboard operation
robusta copied to clipboard

chore(helm): define pod probes

Open adamantal opened this issue 2 months ago โ€ข 1 comments

Description

When robusta starts, the pod becomes healthy immediately. After a few seconds, it loads the config and the pydantic validations run on those configs. If there's an error, the container can immediately fail leaving no running robusta pod behind (not good).

If we want to make sure the rolling our a new version is graceful, we can define a readiness probe or even just a bit of a delay (to wait a few seconds until robusta loads the configs, making sure there's no validation error here).

Testing

Currently in progress

adamantal avatar Nov 20 '25 16:11 adamantal

Walkthrough

The pull request adds health probe configurations (liveness and readiness probes) to the Helm chart's runner container deployment, enabling HTTP health checks on port 5000 at the /healthz endpoint. A container port definition is also introduced.

Changes

Cohort / File(s) Summary
Health probes and port configuration
helm/robusta/templates/runner.yaml, helm/robusta/values.yaml
Introduces conditional livenessProbe and readinessProbe sections in the runner container template, along with a port block (port 5000, protocol TCP, named "http"). Corresponding probe configurations are added to values.yaml with HTTP checks at /healthz, enabled status, and timing parameters (initialDelaySeconds, periodSeconds, timeoutSeconds, failureThreshold).

Estimated code review effort

๐ŸŽฏ 1 (Trivial) | โฑ๏ธ ~5 minutes

  • Straightforward addition of standard Kubernetes health probe configurations
  • Configuration changes follow established patterns in the Helm chart
  • Limited scope with no complex logic or control flow modifications

Pre-merge checks and finishing touches

โœ… Passed checks (3 passed)
Check name Status Explanation
Title check โœ… Passed The title 'chore(helm): define pod probes' accurately summarizes the main change, which adds readiness and liveness probes to the Helm chart.
Description check โœ… Passed The description clearly explains the problem (pod becomes healthy before config validation) and the solution (adding probes), directly relating to the changeset.
Docstring Coverage โœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
โœจ Finishing touches
๐Ÿงช Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

๐Ÿ“œ Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between 282abd689cdd0179a227e505bf5e01c1491439ab and a5fa727f87b9d79256b4750b19930cfad91c52ac.

๐Ÿ“’ Files selected for processing (2)
  • helm/robusta/templates/runner.yaml (2 hunks)
  • helm/robusta/values.yaml (1 hunks)
โฐ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: run_tests
๐Ÿ”‡ Additional comments (3)
helm/robusta/values.yaml (1)

742-762: Verify that the Robusta application exposes the /healthz endpoint on port 5000.

The probe configurations assume a /healthz HTTP endpoint exists on port 5000. Since the PR description mentions testing is still in progress, please confirm:

  1. The /healthz endpoint is implemented in the Robusta runner application
  2. It responds correctly during the startup configuration-loading phase (returns 503/non-2xx until ready)
  3. It responds with 200 once configuration is loaded and validated
  4. The endpoint is performant enough to complete within the 5-second timeout

The probe values themselves look well-configured for the stated use case (preventing premature health before configuration loads).

helm/robusta/templates/runner.yaml (2)

71-74: Port definition is well-structured.

Explicitly defining the container port with a name (http) is a Kubernetes best practice. This allows future port references by name for improved maintainability.

Note: The Service definition (line 295) currently references targetPort: 5000 by number rather than by the port name. This works correctly but for consistency consider using targetPort: http (though not required).


175-182: Probe conditionals use the correct Helm templating pattern.

The conditional rendering correctly:

  • Checks both that the probe configuration exists AND the enabled flag is true
  • Uses the omit function to exclude the enabled field from rendered YAML (not part of the Kubernetes Probe API)
  • Falls back safely if the configuration is missing or disabled

The implementation aligns properly with the probe configurations in values.yaml.

[!TIP]

๐Ÿ“ Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests โ€” including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. ๐Ÿ“ Description โ€” Summarize the main change in 50โ€“60 words, explaining what was done.
  2. ๐Ÿ““ References โ€” List relevant issues, discussions, documentation, or related PRs.
  3. ๐Ÿ“ฆ Dependencies & Requirements โ€” Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. ๐Ÿ“Š Contributor Summary โ€” Include a Markdown table showing contributions: | Contributor | Lines Added | Lines Removed | Files Changed |
  5. โœ”๏ธ Additional Notes โ€” Add any extra reviewer context. Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

โค๏ธ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Nov 20 '25 16:11 coderabbitai[bot]