Barman Cloud CNPG-I backup plugin
Go to file
Marco Nenciarini 883ba6aa24
fix: use wheel-based build to fix bytecode staleness
The sidecar uses a read-only filesystem which prevents Python from
creating bytecode at runtime. The previous approach pre-compiled
bytecode in a separate base image, but timestamps were corrupted
when files were copied between Docker stages, causing Python to
mark the bytecode as stale and recompile on every invocation.

This change builds Python dependencies as wheels in a pythonbuilder
stage using BuildKit cache mounts, then installs them in the final
python:3.13-slim-trixie stage using a bind mount. Wheels include
pre-compiled bytecode with correct timestamps. The bind mount keeps
wheels out of final layers, and the distroless complexity is
eliminated.

After wheel installation, we run compileall to ensure all Python
bytecode is freshly compiled with correct timestamps, preventing
any stale bytecode from remaining in the final image.

The separate barmanbase image, its workflow, and related Renovate
configuration are no longer needed and have been removed.

Closes #711
Closes #735

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-28 19:45:38 +01:00
.github/workflows fix: use wheel-based build to fix bytecode staleness 2026-01-28 19:45:38 +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: use wheel-based build to fix bytecode staleness 2026-01-28 19:45:38 +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: use wheel-based build to fix bytecode staleness 2026-01-28 19:45:38 +01:00
Taskfile.yml fix: use wheel-based build to fix bytecode staleness 2026-01-28 19:45:38 +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.