[Feature]: Add imagePullSecrets to the tau-core-controller and gpu-monitoring charts
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- helm, kubernetes, yaml
- Domain
- infrastructure
Research direction
Read charts/tau-core-controller/templates/deployment.yaml and charts/gpu-monitoring/templates/daemonset.yaml, then compare their values and templates with charts/taugrid-core/templates/portal.yaml. Add the chart values and render them in the pod specs; update charts/tau-core-controller/tests/deployment_test.yaml and charts/gpu-monitoring/tests/daemonset_test.yaml. Done means defaults omit the key and configured secrets appear on the controller and every enabled GPU SKU DaemonSet.
Written by the indexing model from the issue text.
Description
User problem
Operators who mirror TauGrid images into an authenticated private registry (Harbor, Zot, Artifactory, or a private ACR/ECR that is not wired to node credentials) can override every image repository, but in two charts they can't attach pull credentials:
charts/tau-core-controller:templates/deployment.yamlhas noimagePullSecrets, andvalues.yamlhas no key for it.charts/gpu-monitoring:templates/daemonset.yaml(one DaemonSet per GPU SKU profile) has noimagePullSecrets, andvalues.yamlhas no key for it.
Every other workload the taugrid umbrella installs already supports pull secrets:
taugrid-core:portal,portal.entraAuth,stellar,prewarmandlifecycleRecordereach haveimagePullSecrets.kueue:controllerManager.imagePullSecrets.kuberay-operator:imagePullSecrets.
So a mirrored install comes up with the controller and the GPU monitoring DaemonSets stuck in ImagePullBackOff, while everything else pulls fine.
Today's workarounds sit outside the chart: node-level registry credentials (kubelet credential provider, containerd/k3s registries.yaml), or patching the chart-managed tau-core-controller / gpu-monitoring ServiceAccounts by hand, which GitOps tools report as drift.
Desired outcome
tau-core-controller:
imagePullSecrets:
- name: registry-creds
gpu-monitoring:
imagePullSecrets:
- name: registry-creds
With these values, the controller Deployment and every gpu-monitoring DaemonSet render spec.template.spec.imagePullSecrets, as the taugrid-core components already do.
Proposed approach
Additive, and the default renders exactly as today:
- Add
imagePullSecrets: []to both charts'values.yaml. - Render it in the pod spec with the same
{{- with ... }} imagePullSecrets: {{ toYaml . | nindent 8 }}block taugrid-core uses (e.g.templates/portal.yaml). - helm-unittest cases in
charts/tau-core-controller/tests/deployment_test.yamlandcharts/gpu-monitoring/tests/daemonset_test.yaml:- The default renders no
imagePullSecretskey. - When set, the value renders on the controller and on every enabled SKU DaemonSet.
- The default renders no
I'd leave charts/tau-core-controller/kustomize/deployment.yaml alone, since a kustomize overlay can add pull secrets with a patch. Tell me if you'd rather keep it in sync.
Alternatives considered
- A global
imagePullSecretsin the umbrella, passed down to every subchart. That would be nicer for mirrored installs, but it touches all subcharts, and kueue and kuberay are vendored. Per-chart keys come first, and a global key can be built on top of them later. - Node-level credentials only. These work, but they require node or containerd access that the team installing TauGrid often doesn't have.
Additional context
I found this while mapping what a mirrored or air-gapped install needs. Per-image repository overrides already exist everywhere, so pull secrets are the remaining gap in these two charts. I'm happy to send the PR.
Confirmation
- I searched existing issues and roadmap items for this request.
- This request does not include confidential or security-sensitive information.
- Dominant language
- Go
- Stars
- 59
- Forks
- 8
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 84
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Azure/taugrid
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
Similar issues
-
meta
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
last9/last9-mcp-server#554 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
NodeOpUpgrade copies Pod resolv.conf into host OS, causing CoreDNS loops and image-pull failuresOpenarea/operator bug chore
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 86/100
DNSCrypt/dnscrypt-resolvers#1107 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
aws/aws-network-policy-agent#796 ·
Maintainers usually reply within 1 day