cloudnative-pg / cloudnative-pg/plugin-barman-cloud
When using external clusters, but external ObjectStore is missing, logs complain about missing ObjectStore for backups
- Langage dominant
- Go
- Étoiles
- 191
- Forks
- 72
- Merge moyen
- 1 j 16 h
- PR mergées (30 j)
- 18
Description
I tried to restore from an external cluster.
For this I created 2 ObjectStore objects: `s3-postgres-backup` and `old-s3`.
I added `s3-postgres-backup` into `.spec.plugins.parameters.barmanObjectName` section, and `old-s3` into `.spec.externalClusters.plugin.parameters.barmanObjectName`.
Here is my Cluster object for reference:
```yaml
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: pg-test
namespace: test
spec:
instances: 2
storage:
size: 2Gi
storageClass: tulip-nvmeof
primaryUpdateStrategy: unsupervised
postgresql: {}
bootstrap:
recovery:
source: old
externalClusters:
- name: old
plugin:
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: s3-old
serverName: test-cnpg
managed:
services:
disabledDefaultServices: ["ro", "r"]
affinity:
enablePodAntiAffinity: true
podAntiAffinityType: required
topologyKey: kubernetes.io/hostname
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: s3-postgres-backup
```
Except, as you may notice, I made a mistake in `.spec.externalClusters.plugin.parameters.barmanObjectName`: I wrote "s3-old" instead of "old-s3".
Cluster failed to start becaue Barman couldn't find the ObjectStore.
Unfortunately, it was very hard to find the mistake because Barman repeatedly emitted logs about "s3-postgres-backup" missing.
I couldn't understand what was happening, until I accidentally discovered that the issue is in a completely different ObjectStore.
```
{"level":"info","ts":"2025-08-31T10:18:03.018676926Z","msg":"Pre hook reconciliation start"}
{"level":"debug","ts":"2025-08-31T10:18:03.018848066Z","msg":"parsing cluster definition","caller":"/workspace/internal/cnpgi/operator/reconciler.go:61"}
{"level":"debug","ts":"2025-08-31T10:18:03.019179367Z","msg":"parsing barman object configuration","name":"pg-test","namespace":"test","caller":"/workspace/internal/cnpgi/operator/reconciler.go:75"}
{"level":"info","ts":"2025-08-31T10:18:03.019225014Z","msg":"barman object configuration not found, requeuing","name":"pg-test","namespace":"test","name":"s3-postgres-backup","namespace":"test"}
```
Barman plugin version: v0.6.0
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans internal/cnpgi/operator/reconciler.go, en particulier dans les chemins de réconciliation et de journalisation autour des lignes 61 et 75. Reproduisez la configuration de récupération avec un ObjectStore de cluster externe manquant et vérifiez que les logs identifient l’objet manquant ; c’est terminé lorsque l’erreur pointe vers l’ObjectStore externe incorrect plutôt que vers l’ObjectStore de sauvegarde principal.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- go, kubernetes, postgresql
- Domaine
- backend, databases, observability
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100