cloudnative-pg / cloudnative-pg/plugin-barman-cloud
retentionPolicy delete fails against S3-compatible storage with limited Multi-Object Delete support (NetApp ONTAP)
- Lenguaje dominante
- Go
- Estrellas
- 191
- Forks
- 72
- Merge medio
- 1 d 16 h
- PR fusionados (30 d)
- 18
Descripción
Our retention policy enforcement fails on every cycle against a NetApp ONTAP S3 backend:
"Could not delete backup 20260623T104935: An error occurred (AccessDenied) when calling the DeleteObjects operation: Access Denied"
We isolated the cause: barman-cloud-backup-delete uses the S3 Multi-Object Delete (bulk) API. A single `aws s3api delete-object` on the same key with the same credentials succeeds, but `aws s3api delete-objects` (bulk) on the identical key fails with AccessDenied, even with a correctly scoped bucket policy. This appears to be a known limitation of some non-AWS S3 implementations (similar reports: [cloudnative-pg/barman-cloud#149](https://github.com/cloudnative-pg/barman-cloud/issues/149) against MinIO).
barman-cloud-backup-delete already supports --batch-size, which set to 1 avoids the bulk delete path entirely and fixes it. However, the ObjectStore CRD has no way to pass extra args to the delete/retention command - additionalCommandArgs only exists for backup, restore, and WAL archive/restore.
Request: expose a field (e.g. deleteAdditionalCommandArgs) that gets passed to barman-cloud-backup-delete, so --batch-size (and similar flags) can be configured for retention enforcement, same as the other operations already support.
Guía de contribución
Línea de trabajo
Localiza la definición del CRD ObjectStore y el punto de entrada que ensambla los argumentos para barman-cloud-backup-delete; después, compara cómo se gestiona additionalCommandArgs para las operaciones de backup, restore y WAL. Añade la ruta de configuración específica de delete, verifica que --batch-size=1 llegue a la aplicación de la retención y ejecuta las pruebas relevantes del CRD y del controlador.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go, kubernetes
- Área
- cloud, infrastructure
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 68/100