ROB-397 - global imagePullSecret for Helm chart#2103
Conversation
Add global.imagePullSecrets that applies to the runner, kubewatch and the runtime pods created by the runner (KRR, Popeye via the runner ServiceAccount). A per-component imagePullSecrets overrides the global one; an empty global leaves the rendered output unchanged (backwards compatible). Also adds imagePullSecrets support to the forwarder ServiceAccount, which previously had none, and documents the option in proxies.rst. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (4)
WalkthroughAdds Changesglobal.imagePullSecrets fallback support
Estimated code review effort🎯 2 (Simple) | ⏱️ ~13 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
✅ Docker image ready for
Use this tag to pull the image for testing. 📋 Copy commandsgcloud auth configure-docker us-central1-docker.pkg.dev
docker pull us-central1-docker.pkg.dev/robusta-development/temporary-builds/robusta-runner:8384a46
docker tag us-central1-docker.pkg.dev/robusta-development/temporary-builds/robusta-runner:8384a46 me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:8384a46
docker push me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:8384a46Patch Helm values in one line: helm upgrade --install robusta robusta/robusta \
--reuse-values \
--set runner.image=me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:8384a46 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@helm/robusta/templates/runner.yaml`:
- Around line 37-40: The `default` function in Helm treats empty lists as falsy
values, causing explicit empty-list overrides (like `runner.imagePullSecrets:
[]`) to incorrectly fall back to the global default. Replace the chained
`default` approach with conditional logic that explicitly checks if the
runner-level value is nil or undefined before falling back to the global value.
Apply this fix to all 4 locations mentioned: runner.yaml at the imagePullSecrets
assignment, runner-service-account.yaml at the ServiceAccount imagePullSecrets,
forwarder.yaml at the Deployment imagePullSecrets, and
forwarder-service-account.yaml at the ServiceAccount imagePullSecrets. Use Go
template conditionals (such as checking `eq` against nil or using `if`
statements) to preserve intentional empty-list overrides while still providing
fallback to global defaults when the component-level value is not set.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c5a7f544-9c97-44c6-947d-6cfba5c2e9bd
📒 Files selected for processing (6)
docs/setup-robusta/proxies.rsthelm/robusta/templates/forwarder-service-account.yamlhelm/robusta/templates/forwarder.yamlhelm/robusta/templates/runner-service-account.yamlhelm/robusta/templates/runner.yamlhelm/robusta/values.yaml
9aa1b23 to
e287327
Compare
|
Good catch — fixed. Switched from The per-component defaults in
Applied to all three robusta locations (runner deployment, runner SA, forwarder deployment). Note Verified via |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@helm/robusta/values.yaml`:
- Around line 36-41: The comment describing the imagePullSecrets configuration
incorrectly states that the global value applies to Holmes, but the bundled
Holmes subchart does not currently support the global.imagePullSecrets
reference. Either remove Holmes from the list of components in the comment
(keeping only runner, kubewatch, and runtime pods), or add a clarification note
indicating that Holmes support requires a separate subchart update. Update lines
36-37 in the comment block above the imagePullSecrets field accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 99fb7895-196c-465d-83c8-10c392c70ee9
📒 Files selected for processing (5)
docs/setup-robusta/proxies.rsthelm/robusta/templates/forwarder.yamlhelm/robusta/templates/runner-service-account.yamlhelm/robusta/templates/runner.yamlhelm/robusta/values.yaml
✅ Files skipped from review due to trivial changes (1)
- docs/setup-robusta/proxies.rst
🚧 Files skipped from review as they are similar to previous changes (3)
- helm/robusta/templates/runner-service-account.yaml
- helm/robusta/templates/forwarder.yaml
- helm/robusta/templates/runner.yaml
e287327 to
0107096
Compare
|
Update: after discussion we went with the simpler, conventional behavior instead of the Semantics:
We intentionally dropped the "explicit Verified via |
Add global.imagePullSecrets that applies to the runner, kubewatch and the runtime pods created by the runner (KRR, Popeye via the runner ServiceAccount). A per-component imagePullSecrets overrides the global one; an empty global leaves the rendered output unchanged (backwards compatible). Documents the option in proxies.rst. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0107096 to
c7a37e8
Compare
What
Adds an optional
global.imagePullSecretsto the Robusta Helm chart so a single value applies the image pull secret to every component, instead of configuring several separate per-component keys.Covers:
RUNNER_SERVICE_ACCOUNT), so no code changes neededSemantics (backwards compatible)
global.imagePullSecrets, default[].runner.imagePullSecrets) wins over the global for that component; components without one fall back to global.Verification
helm templatedry-renders confirm:imagePullSecretsrendered anywhereFollow-up (not in this PR)
The Holmes subchart change lives in the holmesgpt repo (deployment + SA templates +
values.yaml) and requires repackaging the bundledholmes-*.tgz— separate PR.Linear: ROB-397
🤖 Generated with Claude Code