Enable Reloader secret watching, scope existing auto to configmap-only (#326) #339
Reference in New Issue
Block a user
Delete Branch "benvin/issue-326-reloader-secrets"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The re-keyed internal
unkin.netintermediate broke CA consumers (CNPG->RGW backups, subPath/startup-cached CA mounts) and needed manual pod restarts, because Reloader was deployed withignoreSecrets: trueand could not restart on thevault-ca-certSecret. Enabling secret watching naively is unsafe: many workloads carry the genericreloader.stakater.com/auto, and the estate rotates numerous Secrets via Vault/VSO — those would restart on every rotation. This enables secret watching but scopes existingautoto ConfigMaps, making secret-reload opt-in per Secret.Changes
reloader.ignoreSecrets: false(au-syd1 reloader-system values) so Secrets are watched.reloader.stakater.com/auto: "true"to the ConfigMap-onlyconfigmap.reloader.stakater.com/auto: "true"— 22 annotations across 19 files. Existing ConfigMap-reload behaviour is preserved; Vault/VSO Secret rotations no longer restart these workloads.secret.reloader.stakater.com/reload: "vault-ca-cert"to the CA consumers that mount the CA and carry a Reloader annotation:artifactapi/api,cephrgw-operator,puppetserver-master,puppetserver-compiler,litellm,logarchiver.secret.reloader.stakater.com/reload: "kanidm-tls"so kanidm rolls when cert-manager renews its leaf.docs/ca-rotation.mdrunbook (indexed indocs/README.md).Safety review (secret-only / CA workloads)
vault-ca-certis a plain reflected Secret that bootstraps Vault trust (not VSO-rotated; changes only on intermediate re-key).kanidm-tlsis a cert-manager leaf. Everything else mounted (environment,*-credentials,eyaml-keys,puppetboard-secrets,s3-credentials,nats-auth,clickhouse-credentials,woodpecker-*) is VSO/CNPG Vault-rotated and deliberately excluded.cephrgw-operator— mounts only Secrets (cephrgw-credentialsVSO +vault-ca-cert), no ConfigMap. Its old comment said "restart when the credentials Secret rotates";cephrgw-credentialsis VSO so that is now excluded, and reload is scoped tovault-ca-certonly. Comment updated.nats(logging) — old comment "Roll the StatefulSet when nats-auth changes";nats-authis VSO, so this is now ConfigMap-only (deliberately no roll on rotation). Comment updated. Same for the vector agent/aggregator/vm-ingest (VSOnats-auth/clickhouse-credentials).artifactapi/ui— mounts neither a ConfigMap nor a Secret; itsautowas already a no-op. Left as ConfigMap-only.puppetdb/puppetboard— mount a ConfigMap plus VSO Secrets (postgres creds / puppetboard-secrets); ConfigMap-only is correct, no secret reload added.CA consumers that mount
vault-ca-certbut have no Reloader annotation (CRD-managed or startup-cached) are documented indocs/ca-rotation.mdfor manual restart rather than annotated here:grafana,observability/vmagent,paperclip,argocd-repo-server, plus CNPG clusters (kubectl cnpg restart).Notes / coordination
litellm,puppetdb; Reloader reads controller-level metadata — placement unchanged from before, no regression).apps/overlays/au-syd1/logging/values-vector-*.yaml, which overlap open PR #320 (Tier-2 Vector pipelines) — only the one-line reloader annotation is changed here.Validation
make kubeconform— touched overlays (reloader-system, logging, woodpecker, authentik) valid; only the known-unrelated cattle-system rancher chart kubeVersion failure remains.uvx pre-commit run --all-files— all hooks pass.Closes #326