Barman Cloud CNPG-I backup plugin
Go to file
Armando Ruocco c5f149b86a
Some checks failed
Deploy Docusaurus to GitHub Pages / build (push) Failing after 5s
Deploy Docusaurus to GitHub Pages / deploy (push) Has been skipped
release-please / release-please (push) Failing after 3s
feat: pass additionalCommandArgs to barman-cloud-restore (#914)
An `ObjectStore` already lets users tack extra command-line flags onto
three of the four `barman-cloud-*` invocations: `barman-cloud-backup`
via
`data.additionalCommandArgs`, `barman-cloud-wal-archive` via
`wal.archiveAdditionalCommandArgs`, and `barman-cloud-wal-restore` via
`wal.restoreAdditionalCommandArgs`. The fourth — `barman-cloud-restore`,
the actual data-restore step in PITR and recovery-from-object-store —
has had no
equivalent, which is exactly the gap reported in #821 (the asker wanted
a longer `--read-timeout` for slow restores from S3).

This PR fills that gap by adding
`spec.configuration.data.restoreAdditionalCommandArgs` and wiring it
into the recovery job hook. In `restoreDataDir`,
the user-supplied flags are appended after the cloud-provider options
and `--endpoint-url` but before the positional `(destinationPath,
serverName,
backupID, pgdata)` arguments — same shape as the other three knobs. The
library's existing append/dedup logic still wins on conflicts, so users
can't
accidentally override flags the plugin already sets (`--cloud-provider`,
`--endpoint-url`, etc.).

Closes #821

Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
Signed-off-by: Leonardo Cecchi <leonardo.cecchi@gmail.com>
Co-authored-by: Leonardo Cecchi <leonardo.cecchi@gmail.com>
2026-06-03 14:17:12 +02:00
.github/workflows chore(deps): update dependency dagger/dagger to v0.21.0 (#926) 2026-05-27 09:02:39 +02:00
api/v1 fix(deps): update module sigs.k8s.io/controller-runtime to v0.24.0 (#880) 2026-05-06 10:15:29 +02:00
cmd/manager feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
config fix: classify WAL restore errors with precise gRPC statuses (#927) 2026-06-03 11:25:07 +02:00
containers chore(deps): refresh pip-compile outputs (#932) 2026-06-03 11:54:34 +10:00
dagger chore: update dagger dependencies (#859) 2026-04-17 14:53:22 +02:00
hack docs(apidoc): filter Optional markers from validation column (#723) 2026-02-04 13:46:51 +01:00
internal feat: pass additionalCommandArgs to barman-cloud-restore (#914) 2026-06-03 14:17:12 +02:00
kubernetes test(e2e): use correct image name in kustomize overlay (#841) 2026-04-11 13:31:31 +02:00
logo Initial commit 2024-09-24 14:52:25 +02:00
scripts feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
test/e2e fix(deps): update module sigs.k8s.io/controller-runtime to v0.24.0 (#880) 2026-05-06 10:15:29 +02:00
web feat: pass additionalCommandArgs to barman-cloud-restore (#914) 2026-06-03 14:17:12 +02:00
.dockerignore chore: scaffold (#2) 2024-09-26 11:52:56 +02:00
.gitignore ci: add e2e kustomization.yaml to .gitignore (#112) 2024-12-16 11:04:39 +01:00
.golangci.yml fix(deps): update module sigs.k8s.io/controller-runtime to v0.24.0 (#880) 2026-05-06 10:15:29 +02:00
.release-please-manifest.json chore(main): release 0.12.0 (#756) 2026-04-14 09:31:41 +02:00
.spellcheck.yaml chore: limit the spellchecking to a fixed list of directories (#294) 2025-05-05 10:21:18 +02:00
.wordlist.txt fix: add lz4 compression support for base backups (#868) 2026-04-21 19:23:45 +02:00
CHANGELOG.md chore(main): release 0.12.0 (#756) 2026-04-14 09:31:41 +02:00
CODE_OF_CONDUCT.md Initial commit 2024-09-24 14:52:25 +02:00
CODEOWNERS Initial commit 2024-09-24 14:52:25 +02:00
commitlint.config.js ci: warn on long commit body line (#12) 2024-09-27 10:07:47 +02:00
CONTRIBUTING.md docs: add CONTRIBUTING.md file 2026-03-02 17:03:09 +11:00
go.mod feat: pass additionalCommandArgs to barman-cloud-restore (#914) 2026-06-03 14:17:12 +02:00
go.sum feat: pass additionalCommandArgs to barman-cloud-restore (#914) 2026-06-03 14:17:12 +02:00
GOVERNANCE.md Initial commit 2024-09-24 14:52:25 +02:00
LICENSE Initial commit 2024-09-24 14:52:25 +02:00
Makefile fix: add cluster/finalizers update permission (#465) 2025-08-14 22:55:25 +02:00
manifest.yaml fix: classify WAL restore errors with precise gRPC statuses (#927) 2026-06-03 11:25:07 +02:00
PROJECT chore: scaffold (#2) 2024-09-26 11:52:56 +02:00
README.md docs: release procedure (#373) 2025-05-29 17:52:44 +02:00
release-please-config.json ci: update version in metadata (#229) 2025-03-25 17:21:56 +01:00
RELEASE-PROCEDURE.md docs: release procedure (#373) 2025-05-29 17:52:44 +02:00
renovate.json5 fix: resolve WAL archiving performance and memory issues (#746) 2026-01-29 16:43:55 +01:00
Taskfile.yml chore(deps): update all sagikazarmark daggerverse dependencies to ff27cd5 (#933) 2026-06-03 10:53:18 +02:00

CloudNativePG

Barman Cloud CNPG-I plugin for CloudNativePG

The documentation for the Barman Cloud Plugin for CloudNativePG is available at https://cloudnative-pg.io/plugin-barman-cloud.


The Barman Cloud CNPG-I plugin is a component of the CloudNativePG project and adheres to the same community-driven governance model under the CNCF.

CNCF logo


CloudNativePG was originally built and sponsored by EDB.

EDB logo


Postgres, PostgreSQL, and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.