cloudnative-pg / cloudnative-pg/plugin-barman-cloud

When using external clusters, but external ObjectStore is missing, logs complain about missing ObjectStore for backups

Ouverte
#504 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
bug
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.