cloudnative-pg / cloudnative-pg/plugin-barman-cloud
retentionPolicy delete fails against S3-compatible storage with limited Multi-Object Delete support (NetApp ONTAP)
- 主要言語
- Go
- スター
- 191
- フォーク
- 72
- 平均マージ
- 1日 16時間
- マージ済み PR(30日)
- 18
説明
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.
コントリビューションガイド
調査の方向性
ObjectStore CRD の定義と、barman-cloud-backup-delete の引数を組み立てるエントリポイントを特定し、backup、restore、WAL 操作で additionalCommandArgs がどのように扱われているかを比較します。delete 固有の設定パスを追加し、--batch-size=1 が retention enforcement に到達することを確認して、関連する CRD と controller のテストを実行します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- go, kubernetes
- 領域
- cloud, infrastructure
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 68/100