e03aeca101
Why: The media stack (jellyfin plus the sonarr/radarr/prowlarr/bazarr/nzbget/ jellyseerr apps) runs in the media-apps namespace but is deployed out-of-band by terraform-k8s rather than GitOps. Bringing it under ArgoCD makes the stack declarative, self-healing, and consistent with every other cluster workload, and prepares terraform-k8s to drop the media-apps config. How: - Add a media AppProject scoped to the media-apps namespace and a media-apps ApplicationSet that renders one Application per app plus a shared foundation. - Add a shared media-apps foundation (namespace, media-apps-vault-reader ServiceAccount, default VaultAuth on k8s/au/syd1, and the RWX movies/tvseries library PVCs) that the whole stack mounts. - Add per-app kustomize base and au-syd1 overlay for jellyfin and the six *arr apps, using plain resource names (jellyfin, sonarr, ...) with fresh PVCs. - Deploy jellyfin from the jellyfin-ha fork (Redis transcode store, RWX transcode scratch) wired to the shared movies/tvseries library PVCs, keeping the intel iGPU nodeSelector and gpu.intel.com/i915 request. - Source API keys and nzbget credentials through VSO VaultStaticSecrets from kv/service/media-apps/<app>; expose each app via a traefik-internal Gateway and HTTPRoute at <app>.k8s.syd1.au.unkin.net. - Register the media project and applicationset in the argocd bootstrap kustomizations.
19 lines
353 B
YAML
19 lines
353 B
YAML
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultStaticSecret
|
|
metadata:
|
|
name: sonarr
|
|
namespace: media-apps
|
|
spec:
|
|
destination:
|
|
create: true
|
|
name: sonarr-secrets
|
|
mount: kv
|
|
path: service/media-apps/sonarr
|
|
refreshAfter: 30s
|
|
type: kv-v2
|
|
vaultAuthRef: default
|
|
rolloutRestartTargets:
|
|
- kind: Deployment
|
|
name: sonarr
|