Compare commits

...

5 Commits

Author SHA1 Message Date
Andreas Lindhé
00aa084946
Merge 313b5cc202 into 4a94cb9dae 2026-04-01 13:07:16 +02:00
Kenny Root
4a94cb9dae
fix(metrics): announce sidecar injection capability (#776)
Some checks failed
release-please / release-please (push) Failing after 5s
The operator was not announcing the TYPE_INSTANCE_SIDECAR_INJECTION
capability so the CNPG operator did not consider the plugin enabled
for instance pods. The instance manager never queried the plugin's
metrics endpoint, and the barman_cloud_cloudnative_pg_io_* metrics
were missing entirely.

This bug was masked when isWALArchiver was set to true in the plugin
configuration, because the backward compatibility code in CNPG would
mark the plugin as enabled as a side-effect. Users with isWALArchiver
set to false (or omitted) never saw the new metrics.

Closes #682 

Signed-off-by: Kenny Root <kenny@the-b.org>
2026-03-31 15:36:09 +02:00
Andreas Lindhé
313b5cc202 Add permissions for Multipart uploads
Signed-off-by: Andreas Lindhé <7773090+lindhe@users.noreply.github.com>
2026-01-30 15:44:11 +01:00
Andreas Lindhé
81efbc50ff Trim AbortMultipartUpload and CreateBucket from the list
Signed-off-by: Andreas Lindhé <7773090+lindhe@users.noreply.github.com>
2026-01-30 15:44:11 +01:00
Andreas Lindhé
9383cf828b Document required S3 bucket policy
Signed-off-by: Andreas Lindhé <7773090+lindhe@users.noreply.github.com>
2026-01-30 15:44:09 +01:00
2 changed files with 49 additions and 0 deletions

View File

@ -62,6 +62,13 @@ func (i IdentityImplementation) GetPluginCapabilities(
},
},
},
{
Type: &identity.PluginCapability_Service_{
Service: &identity.PluginCapability_Service{
Type: identity.PluginCapability_Service_TYPE_INSTANCE_SIDECAR_INJECTION,
},
},
},
},
}, nil
}

View File

@ -129,6 +129,48 @@ These strategies help you safeguard backups without requiring broad delete
permissions, ensuring both security and compliance with minimal operational
overhead.
### S3 Lifecycle Policy
Barman Cloud requires the following permissions in the S3 bucket:
- [`s3:AbortMultipartUpload`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
- [`s3:DeleteObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
- [`s3:GetObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
- [`s3:ListBucketMultipartUploads`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
- [`s3:ListBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
- [`s3:ListMultipartUploadParts`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
- [`s3:PutObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
Here's an example of what such a bucket policy may look like:
```json
{
"Statement": [
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/MaryMajor"
},
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket1",
"arn:aws:s3:::amzn-s3-demo-bucket1/*"
],
"Sid": "statement1",
}
],
"Version":"2012-10-17"
}
```
### S3-Compatible Storage Providers
You can use S3-compatible services like **MinIO**, **Linode (Akamai) Object Storage**,