57ac95bdec
Protect the jellyfin-config PVC (library metadata, plugins, config XML) with daily restic backups to the new Ceph RGW config-backup bucket. - Add a k8up.io Schedule: daily backup (02:00), weekly prune (Sun 03:00, keep 14 daily/8 weekly/12 monthly) and weekly check (Sun 04:00) - Source S3 creds from the cephrgw BucketAccess Secret and the restic repo password from Vault via a VaultStaticSecret (kv path kubernetes/namespace/jellyfin/default/k8up-restic) - Add the namespace VaultAuth (default role/SA) VSO needs to sync it - Mount the reflected vault-ca-cert into the restic pods so restic trusts the internal unkin.net CA on s3.ceph.unkin.net - Wire the new files into the jellyfin kustomization
25 lines
798 B
YAML
25 lines
798 B
YAML
---
|
|
# restic repository password for the k8up jellyfin-config backups. Seeded at
|
|
# kv/kubernetes/namespace/jellyfin/default/k8up-restic (key: password); the
|
|
# default k8s role's templated policy already grants read here, so no
|
|
# terraform-vault change is needed. VSO syncs it into the jellyfin-k8up-restic
|
|
# Secret that the Schedule references via backend.repoPasswordSecretRef.
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultStaticSecret
|
|
metadata:
|
|
name: jellyfin-k8up-restic
|
|
namespace: jellyfin
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "0"
|
|
spec:
|
|
destination:
|
|
create: true
|
|
name: jellyfin-k8up-restic
|
|
overwrite: true
|
|
hmacSecretData: true
|
|
mount: kv
|
|
path: kubernetes/namespace/jellyfin/default/k8up-restic
|
|
refreshAfter: 5m
|
|
type: kv-v2
|
|
vaultAuthRef: default
|