cloudnative-pg / cloudnative-pg/plugin-barman-cloud
When using external clusters, but external ObjectStore is missing, logs complain about missing ObjectStore for backups
- Lenguaje dominante
- Go
- Estrellas
- 191
- Forks
- 72
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 21
Descripción
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
Guía de contribución
Línea de trabajo
Start in internal/cnpgi/operator/reconciler.go, especially the reconciliation and logging paths around lines 61 and 75. Reproduce the recovery configuration with a missing external-cluster ObjectStore and verify that the logs identify the missing object; done means the error points to the incorrect external ObjectStore rather than the primary backup ObjectStore.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go, kubernetes, postgresql
- Área
- backend, databases, observability
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100