Files
argocd-apps/apps/base/arrstack/postgres/vaultstaticsecret.yaml
T
unkin-agent 274b3249a3
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
arrstack: rebuild adult tier on the shared-Postgres pattern
Replace the legacy adult sonarr/radarr/nzbget with the kids-tier pattern
(active-active -unkin fork on shared arrstack-postgres + Valkey, S3
MediaCover/Backup, exportarr metrics). The old adult apps held no data, so
the wipe is sanctioned.

- add sonarr-adult/radarr-adult/nzbget-adult (copies of the *-kids dirs):
  own DBs sonarr-adult-main/radarr-adult-main, Vault paths
  .../default/{sonarr,radarr}-adult(+-db), S3 prefixes sonarr-adult/
  radarr-adult, UrlBase + probe + exportarr paths /3aa168/{sonarr,radarr},
  media subPaths tvshows/adult + movies/adult, nzbget config PVC on
  cephrbd-fast-delete
- postgres: add managed roles sonarr-adult/radarr-adult, Database CRDs
  {sonarr,radarr}-adult-main, VaultStaticSecrets {sonarr,radarr}-adult-db
- remove legacy sonarr/radarr/nzbget dirs (incl. their gateway/httproute),
  managed roles sonarr/radarr, databases {sonarr,radarr}-main, VSS
  {sonarr,radarr}-db, and all kustomization entries
2026-08-24 22:50:11 +10:00

95 lines
2.4 KiB
YAML

---
# Per-app Postgres role credentials. Each is seeded out-of-band at
# kv/kubernetes/namespace/arrstack/default/<app>-db (keys: username, password);
# the default k8s role's templated policy already grants read on
# kv/data/kubernetes/namespace/{{sa_namespace}}/{{sa_name}}/* for the
# arrstack/default ServiceAccount, so no terraform-vault change is needed. VSO
# syncs each into the <app>-db Secret, which is both the CNPG managed role's
# passwordSecret (cnpg_cluster.yaml) and the source of the app Deployment's
# <App>__Postgres__User/__Password env. Wave 0: must exist before the Cluster
# (wave 1) reconciles the roles.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: prowlarr-db
namespace: arrstack
spec:
destination:
create: true
name: prowlarr-db
overwrite: true
hmacSecretData: true
mount: kv
path: kubernetes/namespace/arrstack/default/prowlarr-db
refreshAfter: 5m
type: kv-v2
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: sonarr-kids-db
namespace: arrstack
spec:
destination:
create: true
name: sonarr-kids-db
overwrite: true
hmacSecretData: true
mount: kv
path: kubernetes/namespace/arrstack/default/sonarr-kids-db
refreshAfter: 5m
type: kv-v2
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: radarr-kids-db
namespace: arrstack
spec:
destination:
create: true
name: radarr-kids-db
overwrite: true
hmacSecretData: true
mount: kv
path: kubernetes/namespace/arrstack/default/radarr-kids-db
refreshAfter: 5m
type: kv-v2
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: sonarr-adult-db
namespace: arrstack
spec:
destination:
create: true
name: sonarr-adult-db
overwrite: true
hmacSecretData: true
mount: kv
path: kubernetes/namespace/arrstack/default/sonarr-adult-db
refreshAfter: 5m
type: kv-v2
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: radarr-adult-db
namespace: arrstack
spec:
destination:
create: true
name: radarr-adult-db
overwrite: true
hmacSecretData: true
mount: kv
path: kubernetes/namespace/arrstack/default/radarr-adult-db
refreshAfter: 5m
type: kv-v2
vaultAuthRef: default