arrstack: manage sonarr/radarr/prowlarr API keys via Vault #369

Merged
benvin merged 1 commits from benvin/arrstack-vault-apikeys into main 2026-08-15 16:43:03 +10:00

1 Commits

Author SHA1 Message Date
unkin-agent 0ddb57f687 arrstack: manage sonarr/radarr/prowlarr API keys via Vault
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
Vault is the source of truth for the sonarr/radarr/prowlarr API keys
(override bootstrap): keys are minted in Vault and enforced into each
app's /config/config.xml on startup, replacing the images'
self-generated keys.

- add a VaultAuth 'default' in the arrstack namespace (k8s auth, mount
  k8s/au/syd1, role default, SA default) mirroring the jellyfin pattern
- add a per-app VaultStaticSecret syncing
  kv/kubernetes/namespace/arrstack/default/<app> (key apitoken) into the
  <app>-apikey Secret; the default k8s role's templated policy already
  grants read there, so no terraform-vault change is needed
- add an apikey-init initContainer to each deployment that fails closed
  on a missing/non-hex key and writes/updates only the <ApiKey> element
  in /config/config.xml (busybox via artifactapi, runs as root)
- wire the new manifests into the base and per-app kustomizations

nzbget is out of scope (no config.xml <ApiKey>; uses ControlPassword).
2026-08-15 16:38:57 +10:00