df687e310b
The active-active arrstack deploy (#383) was stuck: the app Deployments (wave 0) can't become Healthy without their database, so ArgoCD never advanced to wave 1 to create the shared Postgres cluster. And /config was an RWO cephrbd PVC, so 3 replicas hit Multi-Attach. - move DB infra ahead of the apps: VSS + backup ObjectStoreUser/Bucket wave -3, CNPG Cluster -2, Databases -1 (apps stay at default 0) - switch each app's /config to emptyDir (per-pod, stateless; library is in Postgres, config is env-driven; MediaCover regenerates). Old RWO config PVCs orphan.
51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
---
|
|
# Ceph RGW (S3) backup target for the shared arrstack CNPG cluster, provisioned
|
|
# by the in-estate cephrgw-operator: one dedicated bucket + owner user. CNPG
|
|
# reads the S3 credential Secret (cnpg-arrstack-backup-s3) from this namespace.
|
|
apiVersion: ceph.unkin.net/v1alpha1
|
|
kind: ObjectStoreUser
|
|
metadata:
|
|
name: cnpg-arrstack-backup
|
|
namespace: arrstack
|
|
annotations:
|
|
# S3 creds Secret must exist before the Cluster (wave -2) reconciles its backup.
|
|
argocd.argoproj.io/sync-wave: "-3"
|
|
spec:
|
|
displayName: "CNPG backup owner (arrstack)"
|
|
uid: cnpg-arrstack-backup
|
|
maxBuckets: 5
|
|
secretName: cnpg-arrstack-backup-s3
|
|
retainOnDelete: true
|
|
---
|
|
apiVersion: ceph.unkin.net/v1alpha1
|
|
kind: Bucket
|
|
metadata:
|
|
name: cnpg-arrstack
|
|
namespace: arrstack
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "-3"
|
|
spec:
|
|
placementTarget: ec
|
|
bucketName: cnpg-arrstack
|
|
ownerRef: cnpg-arrstack-backup
|
|
versioning: false
|
|
tags:
|
|
app: arrstack
|
|
purpose: cnpg-backup
|
|
retainOnDelete: true
|
|
---
|
|
# Nightly base backup on top of always-on WAL archiving. Staggered from the
|
|
# other CNPG clusters (6-field cron, seconds first).
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: ScheduledBackup
|
|
metadata:
|
|
name: cnpg-arrstack-nightly
|
|
namespace: arrstack
|
|
spec:
|
|
schedule: "0 45 3 * * *"
|
|
immediate: false
|
|
backupOwnerReference: self
|
|
method: barmanObjectStore
|
|
cluster:
|
|
name: arrstack-postgres
|