From 7daeb4af65da95f5e825696cf97ebecebb6a6339 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Thu, 30 Jul 2026 23:35:55 +1000 Subject: [PATCH] cephrgw: remove cnpg backup buckets (ec migration step 2) (#315) Step 2 of the ec placement migration: with purge-on-delete now allowed (#313), removing the Bucket CRs makes the operator delete the underlying RGW buckets and their objects, freeing the names to be recreated on ec in step 3. - remove the nine cnpg backup Bucket resources - keep ObjectStoreUser and ScheduledBackup so the backup-s3 secrets and schedules survive Reviewed-on: https://git.unkin.net/unkin/argocd-apps/pulls/315 Co-authored-by: Ben Vincent Co-committed-by: Ben Vincent --- apps/base/artifactapi/cnpg_backup.yaml | 19 ------------------- apps/base/authentik/cnpg_backup.yaml | 19 ------------------- apps/base/encapi/cnpg_backup.yaml | 19 ------------------- apps/base/grafana/cnpg_backup.yaml | 19 ------------------- apps/base/litellm/cnpg_backup.yaml | 19 ------------------- apps/base/netbox/cnpg_backup.yaml | 16 ---------------- apps/base/paperclip/cnpg_backup.yaml | 19 ------------------- apps/base/puppet/cnpg_backup.yaml | 19 ------------------- apps/base/woodpecker/cnpg_backup.yaml | 19 ------------------- 9 files changed, 168 deletions(-) diff --git a/apps/base/artifactapi/cnpg_backup.yaml b/apps/base/artifactapi/cnpg_backup.yaml index 5232f5e..72c1efe 100644 --- a/apps/base/artifactapi/cnpg_backup.yaml +++ b/apps/base/artifactapi/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-artifactapi - namespace: artifactapi -spec: - placementTarget: ec - bucketName: cnpg-artifactapi - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-artifactapi-backup - versioning: false - tags: - app: artifactapi - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/authentik/cnpg_backup.yaml b/apps/base/authentik/cnpg_backup.yaml index 17c3fd4..7167dae 100644 --- a/apps/base/authentik/cnpg_backup.yaml +++ b/apps/base/authentik/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-authentik - namespace: authentik -spec: - placementTarget: ec - bucketName: cnpg-authentik - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-authentik-backup - versioning: false - tags: - app: authentik - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/encapi/cnpg_backup.yaml b/apps/base/encapi/cnpg_backup.yaml index 2d7c225..a7bcf5d 100644 --- a/apps/base/encapi/cnpg_backup.yaml +++ b/apps/base/encapi/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-encapi - namespace: encapi -spec: - placementTarget: ec - bucketName: cnpg-encapi - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-encapi-backup - versioning: false - tags: - app: encapi - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/grafana/cnpg_backup.yaml b/apps/base/grafana/cnpg_backup.yaml index 21d3309..9d6f9df 100644 --- a/apps/base/grafana/cnpg_backup.yaml +++ b/apps/base/grafana/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-grafana - namespace: grafana -spec: - placementTarget: ec - bucketName: cnpg-grafana - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-grafana-backup - versioning: false - tags: - app: grafana - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/litellm/cnpg_backup.yaml b/apps/base/litellm/cnpg_backup.yaml index 4beb5a9..c4bee5c 100644 --- a/apps/base/litellm/cnpg_backup.yaml +++ b/apps/base/litellm/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-litellm - namespace: litellm -spec: - placementTarget: ec - bucketName: cnpg-litellm - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-litellm-backup - versioning: false - tags: - app: litellm - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/netbox/cnpg_backup.yaml b/apps/base/netbox/cnpg_backup.yaml index b022bb2..d32ecfd 100644 --- a/apps/base/netbox/cnpg_backup.yaml +++ b/apps/base/netbox/cnpg_backup.yaml @@ -19,22 +19,6 @@ spec: # Keep the RGW user (and thus the keys) if this CR is ever deleted. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-netbox - namespace: netbox -spec: - placementTarget: ec - bucketName: cnpg-netbox - ownerRef: cnpg-netbox-backup - versioning: false - tags: - app: netbox - purpose: cnpg-backup - retainOnDelete: false - purgeOnDelete: true ---- apiVersion: postgresql.cnpg.io/v1 kind: ScheduledBackup metadata: diff --git a/apps/base/paperclip/cnpg_backup.yaml b/apps/base/paperclip/cnpg_backup.yaml index 6e9b3f9..c3f2e90 100644 --- a/apps/base/paperclip/cnpg_backup.yaml +++ b/apps/base/paperclip/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-paperclip - namespace: paperclip -spec: - placementTarget: ec - bucketName: cnpg-paperclip - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-paperclip-backup - versioning: false - tags: - app: paperclip - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/puppet/cnpg_backup.yaml b/apps/base/puppet/cnpg_backup.yaml index 2e1412b..65aec28 100644 --- a/apps/base/puppet/cnpg_backup.yaml +++ b/apps/base/puppet/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-puppet - namespace: puppet -spec: - placementTarget: ec - bucketName: cnpg-puppet - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-puppet-backup - versioning: false - tags: - app: puppet - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8 diff --git a/apps/base/woodpecker/cnpg_backup.yaml b/apps/base/woodpecker/cnpg_backup.yaml index b21c2ee..d9e6ce9 100644 --- a/apps/base/woodpecker/cnpg_backup.yaml +++ b/apps/base/woodpecker/cnpg_backup.yaml @@ -20,25 +20,6 @@ spec: # in-flight restore can still reach the archive. retainOnDelete: true --- -apiVersion: ceph.unkin.net/v1alpha1 -kind: Bucket -metadata: - name: cnpg-woodpecker - namespace: woodpecker -spec: - placementTarget: ec - bucketName: cnpg-woodpecker - # The owner user has full control of its own bucket (read + write), which is - # all the backup/restore identity needs — no extra BucketAccess grant. - ownerRef: cnpg-woodpecker-backup - versioning: false - tags: - app: woodpecker - purpose: cnpg-backup - # Never drop the backups if the CR is removed; retire buckets by hand. - retainOnDelete: false - purgeOnDelete: true ---- # Nightly base backup. Continuous WAL archiving is always-on via the Cluster's # spec.backup.barmanObjectStore; this schedules the periodic full backup that # WAL is layered on top of. Schedules are staggered across clusters so the 8