Skip to content

Commit 604e794

Browse files
androndoclaude
andcommitted
docs(backups): disclose CNPG-bump + LINSTOR scheduler change; fix stale e2e fixture
Review follow-up (#3300): - docs/operations/backup-classes.md: add an operator-facing upgrade note for the two platform-wide changes this migration carries — the CloudNativePG operator bump to 1.28.1 (with the CRD-skew fix and the Helm-CRD-upgrade caveat) and the LINSTOR scheduler admission-webhook removal, which makes data-locality scheduling advisory cluster-wide (spec.schedulerName no longer auto-assigned; opt in via explicit schedulerName). These affect more than Postgres backups and were previously only noted in a chart values.yaml comment. - hack/e2e-chainsaw/postgres/postgres.yaml: drop stale restic-era backup fields (s3Region, s3Bucket, cleanupStrategy, resticPassword) that no longer exist in the Postgres backup schema; use current fields (destinationPath, endpointURL, retentionPolicy, 6-field schedule). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Andrey Kolkov <[email protected]>
1 parent 5fbc900 commit 604e794

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

‎docs/operations/backup-classes.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,11 @@ If a deployment runs against an external S3 (no SeaweedFS), set `backupStorage.p
173173
> - **Move to the platform flow (recommended).** Set `backup.useSystemBucket: true`; the chart leaves `spec.plugins` unset and the CNPG backup driver SSA-applies the `ObjectStore` and patches `spec.plugins` onto the live `Cluster` at first BackupJob time. No tenant-side keys required.
174174
> - **Stay on the legacy chart-managed flow.** Supply real `backup.s3AccessKey` / `backup.s3SecretKey` (or a pre-existing `backup.s3CredentialsSecret.name`); the chart renders `spec.plugins` + the `ObjectStore` from those coordinates.
175175
>
176+
> **Two platform-level changes ride along with this migration (they are required for the plugin to run):**
177+
>
178+
> - **CloudNativePG operator bumped to 1.28.1** (`postgres-operator` chart). A minor operator upgrade for the whole fleet; the CNPG CRDs move with it. This also fixes a latent bug where the operator image was newer than its bundled CRDs (`status.instanceID.sessionID` pruned), which made the operator believe the instance manager restarted and fail **every** backup cluster-wide with `instance manager was restarted during backup`. Note that Helm does not upgrade CRD schemas on `helm upgrade`, so on existing clusters the regenerated CNPG CRDs must be applied out of band (`kubectl apply`); a fresh install picks them up.
179+
> - **LINSTOR scheduler admission webhook removed** (`linstor-scheduler` bumped to the upstream release that drops it). That webhook decoded every pod through a stale Kubernetes API and stripped `initContainers[].restartPolicy` cluster-wide, which broke the plugin's restartable barman sidecar (and other native sidecars). Consequence beyond Postgres: pods are **no longer auto-assigned `spec.schedulerName: linstor-scheduler`**, so LINSTOR data-locality scheduling becomes advisory for every stateful workload — the default scheduler places pods and DRBD serves I/O over the network. Workloads that require data locality must now set `schedulerName: linstor-scheduler` explicitly.
180+
>
176181
> The same `useSystemBucket` opt-in applies to ClickHouse — see [ClickHouse: opt-in to the system bucket](#clickhouse-opt-in-to-the-system-bucket). When `useSystemBucket: true` is set on ClickHouse, the legacy `<release>-backup` CronJob, credential Secret, and backup script are no longer rendered (they are mutually exclusive with the platform flow); migrate scheduled backups to a `backups.cozystack.io/Plan` against `cozy-default`.
177182

178183
## Tenant workflow

‎hack/e2e-chainsaw/postgres/postgres.yaml‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ spec:
2323
- testuser
2424
backup:
2525
enabled: false
26-
s3Region: us-east-1
27-
s3Bucket: s3.example.org/postgres-backups
28-
schedule: "0 2 * * *"
29-
cleanupStrategy: "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
26+
destinationPath: s3://postgres-backups/pg/
27+
endpointURL: https://s3.example.org
28+
retentionPolicy: "30d"
29+
schedule: "0 0 2 * * *"
3030
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
3131
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
32-
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
3332
resources: {}
3433
resourcesPreset: "nano"

0 commit comments

Comments
 (0)