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

retentionPolicy delete fails against S3-compatible storage with limited Multi-Object Delete support (NetApp ONTAP)

Ouverte
#1,049 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Go
Étoiles
192
Forks
75
Merge moyen
1 j 16 h
PR mergées (30 j)
18

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Localisez la définition du CRD ObjectStore et le point d’entrée qui assemble les arguments pour barman-cloud-backup-delete, puis comparez la manière dont additionalCommandArgs est géré pour les opérations de backup, restore et WAL. Ajoutez le chemin de configuration spécifique à delete, vérifiez que --batch-size=1 parvient à l’application de la rétention, et exécutez les tests pertinents du CRD et du contrôleur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
go, kubernetes
Domaine
cloud, infrastructure
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

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