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

"Transfering payloads in multiple chunks using aws-chunked is not supported" when uploading backups to Swift

未关闭
#613 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
Go
星标
191
派生
72
平均合并
2 天 21 小时
30 天内合并 PR
21

描述

Hi there,

We're trying to use the Barman Cloud plugin for Cloud Native PG, together with our cloud provider which uses OpenStack and the Swift service (https://docs.openstack.org/swift/latest/) which provides an S3 compatibility layer (https://docs.openstack.org/swift/latest/s3_compat.html).

However, we are stuck with this error after trying to create a backup using a command like `kubectl cnpg backup -n staging postgresql --method=plugin --plugin-name=barman-cloud.cloudnative-pg.io`:

```
❯ kubectl get backups.postgresql.cnpg.io -n staging
NAME AGE CLUSTER METHOD PHASE ERROR
postgresql-20251021135824 19h postgresql plugin failed rpc error: code = Unknown desc = exit status 1
```

Diving into the details gives us this:

```
❯ kubectl logs -n staging $TARGET_POD -c plugin-barman-cloud \
--tail=100 | grep -E "ERROR|FATAL|panic"
{"level":"info","ts":"2025-10-22T06:03:03.631095849Z","logger":"barman-cloud-backup","msg":"2025-10-22 06:03:03,630 [103] ERROR: Upload error: An error occurred (NotImplemented) when calling the UploadPart operation: Transfering payloads in multiple chunks using aws-chunked is not supported. (worker 1)","pipe":"stderr","logging_pod":"postgresql-1"}
{"level":"info","ts":"2025-10-22T06:03:03.839758708Z","logger":"barman-cloud-backup","msg":"2025-10-22 06:03:03,839 [86] ERROR: Error received from upload worker: An error occurred (NotImplemented) when calling the UploadPart operation: Transfering payloads in multiple chunks using aws-chunked is not supported.","pipe":"stderr","logging_pod":"postgresql-1"}
{"level":"info","ts":"2025-10-22T06:03:03.864518275Z","logger":"barman-cloud-backup","msg":"2025-10-22 06:03:03,864 [86] ERROR: Backup failed uploading data (An error occurred (NotImplemented) when calling the UploadPart operation: Transfering payloads in multiple chunks using aws-chunked is not supported.)","pipe":"stderr","logging_pod":"postgresql-1"}
{"level":"info","ts":"2025-10-22T06:03:03.882516877Z","logger":"barman-cloud-backup","msg":"2025-10-22 06:03:03,882 [86] ERROR: Backup failed uploading backup.info file (An error occurred (NotImplemented) when calling the PutObject operation: Transfering payloads in multiple chunks using aws-chunked is not supported.)","pipe":"stderr","logging_pod":"postgresql-1"}
```

Based on feedback I received from our cloud provider, this transfer mode (`aws-chunked`) is not supported by the OpenStack/Swift version currently used. We would need to find a way to disable chunking of data somehow. The support person at their end suggested to set `payload_signing_enabled = false` in the AWS config. Can this be done with Barman, and if so, how? We have this configured via an `ObjectStore` in our Kubernetes manifest.

Thanks in advance! 🙏

贡献指南

打开贡献指南

调研方向

从 ObjectStore 配置以及 `kubectl cnpg backup` 使用的 Barman Cloud 插件路径开始,然后跟踪 AWS 兼容上传的配置方式。针对 Swift 重现备份,并确定 `payload_signing_enabled` 或等效设置是否可以阻止 aws-chunked 传输。在报告的 Swift 兼容性限制下,备份和 backup.info 的上传均成功即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
aws, kubernetes, postgresql
领域
cloud, databases
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。