Barman Cloud CNPG-I backup plugin
Go to file
Marco Nenciarini 378c76a526
fix: resolve WAL archiving performance and memory issues (#746)
The barman-cloud plugin experienced significant performance degradation
and memory growth compared to the embedded solution. WAL archiving was
noticeably slower and memory consumption grew over time.

Root cause: The sidecar uses a read-only filesystem which prevents
Python from creating bytecode at runtime. When Python finds missing or
stale bytecode (.pyc files), it attempts to recompile on every
invocation, causing high CPU usage and memory consumption. The previous
approach pre-compiled bytecode in a separate base image, but the
bytecode was marked as stale when copied between Docker stages,
triggering runtime recompilation attempts.

This change eliminates bytecode staleness by ensuring all Python
bytecode is properly compiled in the final image before the sidecar
starts. The image is now fully distroless and based on trixie
(previously it was distroless-based but copied unnecessary files from
the build stage), reducing size from 463MB to 270MB and package count
from 188 to 35, while maintaining zero HIGH/CRITICAL vulnerabilities.

Closes #656 
Closes #711 
Closes #735

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-29 16:43:55 +01:00
.github/workflows fix: resolve WAL archiving performance and memory issues (#746) 2026-01-29 16:43:55 +01:00
api/v1 feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
cmd/manager feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
config feat: add support for DefaultAzureCredential authentication mechanism (#681) 2026-01-08 14:58:27 +01:00
containers fix: resolve WAL archiving performance and memory issues (#746) 2026-01-29 16:43:55 +01:00
dagger feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
hack feat(ip): assign copyright to the Linux Foundation (#571) 2025-10-07 18:06:06 +02:00
internal chore(deps): update golangci/golangci-lint docker tag to v2.8.0 (#721) 2026-01-14 12:20:09 +01:00
kubernetes fix: controller and sidecar containers run as non-root (#225) 2025-03-23 17:00:52 +01: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 ci(e2e): pin emulator versions and fix Azurite compatibility (#725) 2026-01-13 09:54:30 +01:00
web docs: Update documentation to use correct reference 2026-01-14 19:39:15 +01: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 chore(deps): update golangci/golangci-lint docker tag to v2.2.1 (#430) 2025-07-01 17:34:08 +02:00
.release-please-manifest.json chore(main): release 0.10.0 (#668) 2025-12-30 16:24:03 +01:00
.spellcheck.yaml chore: limit the spellchecking to a fixed list of directories (#294) 2025-05-05 10:21:18 +02:00
.wordlist.txt feat: add support for DefaultAzureCredential authentication mechanism (#681) 2026-01-08 14:58:27 +01:00
CHANGELOG.md chore(main): release 0.10.0 (#668) 2025-12-30 16:24:03 +01: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
go.mod chore(deps): update dependency go to v1.25.6 (#733) 2026-01-18 22:32:51 +01:00
go.sum fix(deps): update all non-major go dependencies (#719) 2026-01-13 16:14:41 +01: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 feat: add support for DefaultAzureCredential authentication mechanism (#681) 2026-01-08 14:58:27 +01: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 fix: resolve WAL archiving performance and memory issues (#746) 2026-01-29 16:43:55 +01: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.