feat(chart): add imagePullSecrets support at per-agent and global level#911
Conversation
OpenAB PR ScreeningThis is auto-generated by the OpenAB project-screening flow for context collection and reviewer handoff.
Screening reportscreening pass complete for PR #911.GitHub comment: #911 (comment) IntentAdd Helm support for Kubernetes FeatFeature work. Adds global Who It ServesDeployers and agent runtime operators running Helm installs with private or mixed public/private agent images. Rewritten PromptAdd chart-global and per-agent image pull secret values. Render Merge PitchLow-risk chart ergonomics with backward-compatible defaults. Main review concern: whether explicit per-agent Best-Practice ComparisonOpenClaw and Hermes Agent scheduling patterns do not apply; this is Helm/Kubernetes pod configuration, not gateway scheduling or durable job execution. Relevant practice is stable chart defaults, narrow overrides, clear precedence, and rendered-YAML tests. Implementation Options
Comparison Table
RecommendationMove this to review and ask one focused question: should explicit per-agent |
Per-agent value (agents.<name>.imagePullSecrets) wins when set; otherwise falls back to chart-global $.Values.imagePullSecrets. Both empty preserves current behaviour (no imagePullSecrets rendered). This enables multi-agent deployments where only some agents pull from a private registry without forcing pull credentials onto every pod. Follows the same per-agent K8s-native secrets pattern as PR openabdev#901 (slack existingSecret). Closes openabdev#910
2434774 to
f412d04
Compare
Summary
imagePullSecretsat both chart-global ($.Values.imagePullSecrets) and per-agent (agents.<name>.imagePullSecrets) levelimagePullSecretsfield rendered) — zero impact on existing usersslack.existingSecret)Closes #910
Discord discussion: https://discord.com/channels/1491295327620169908/1491365157010542652/1507675217827201106
Changes
charts/openab/values.yamlimagePullSecrets: []+ per-agentimagePullSecrets: []on thekiroagentcharts/openab/templates/deployment.yamlimagePullSecretsbetweensecurityContextandinitContainersusingdefault $.Values.imagePullSecrets $cfg.imagePullSecretscharts/openab/README.mdcharts/openab/tests/imagepullsecrets_test.yamlTest plan
helm unittest charts/openab— all 113 tests pass (6 new + 107 existing)helm lint charts/openab— cleanhelm template testrelease charts/openab --set 'imagePullSecrets[0].name=regcred'rendersimagePullSecretsat pod spec levelhelm templatewith no values set renders noimagePullSecretsfield (backwards-compat verified)Why not ServiceAccount
imagePullSecrets?The chart doesn't create a
serviceAccountName-bound SA per agent, so operators can't reliably attach pull secrets to the right SA without touching cluster state outside the chart. Keeping the value in the chart makes it explicit, per-agent, and chart-managed.