Commit Graph

72 Commits

Author SHA1 Message Date
Marco Nenciarini
a29726e0ee
fix: use distroless base image to reduce size and attack surface
Switch from python:3.13-slim-trixie to distroless/python3-debian13
for the sidecar container. The virtualenv approach now extracts
runtime libraries from Debian packages using dpkg, eliminating the
need for apt and package management tools in the final image.

The image is 44% smaller (260MB vs 463MB on main, or 31% vs 377MB
from the previous commit) with 70% fewer packages (35 vs 115) while
maintaining zero HIGH/CRITICAL vulnerabilities. There is no shell
or package manager in the final image, reducing the attack surface
significantly.

Based on Google's distroless best practices.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-29 13:39:48 +01:00
Marco Nenciarini
a9d8dbba6e
fix: add compression library dependencies for barman
Barman-cloud requires lz4 and snappy compression libraries for
backup and WAL compression. The pythonbuilder stage needs the
development headers (liblz4-dev, libsnappy-dev) to compile the
Python C-extensions into wheels, and the final runtime image
needs the shared libraries (liblz4-1, libsnappy1v5) for the
extensions to function.

Without these dependencies, backups fail when attempting to
compress data, causing the backup to enter a failed state.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-29 09:27:10 +01:00
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
renovate[bot]
064eac2199
chore(deps): update golang docker tag to v1.25.6 (#734)
Some checks failed
release-please / release-please (push) Failing after 39s
Barman Base Image / build (push) Failing after 4s
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 22:33:55 +01:00
renovate[bot]
fa546eae05
feat(deps): update barman-cloud to v3.17.0 (#702)
Some checks failed
release-please / release-please (push) Failing after 3s
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-01-14 13:39:57 +01:00
renovate[bot]
e943923f8f
chore(deps): refresh pip-compile outputs (#704)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 18:03:43 +01:00
renovate[bot]
31acf7ce0f
chore(deps): update dependency barman to v3.17.0 (#720)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-10 16:01:49 +01:00
renovate[bot]
1ce6a787af
chore(deps): update barman-cloud-base docker tag to v3.16.2-202512221525 (#650)
Some checks failed
release-please / release-please (push) Failing after 4s
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-22 20:42:42 +01:00
renovate[bot]
da433c396e
chore(deps): refresh pip-compile outputs (#691)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-22 16:24:48 +01:00
renovate[bot]
1e504cbade
chore(deps): update golang docker tag to v1.25.5 (#674)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-22 14:07:33 +01:00
renovate[bot]
116cd910ba
chore(deps): update golang docker tag to v1.25.4 (#643)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 23:40:28 +01:00
renovate[bot]
1ef53d0341
feat(deps): update barman-cloud to v3.16.2 (#609)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 20:05:46 +01:00
Jonathan Gonzalez V.
666bc6a580
[Snyk] Security upgrade zipp from 3.15.0 to 3.19.1 (#640)
Signed-off-by: snyk-bot <snyk-bot@snyk.io>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-11-05 19:06:41 +01:00
renovate[bot]
c46ea63302
chore(deps): refresh pip-compile outputs (#597)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-11-05 16:33:23 +01:00
renovate[bot]
f23e56e532
chore(deps): update dependency barman to v3.16.2 (#633)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-11-05 16:17:42 +01:00
renovate[bot]
67ecc6228e
chore(deps): update plugin-barman-cloud-base docker tag to v3.16.1-202510150740 (#579)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 14:20:58 +02:00
renovate[bot]
d0b18bb5b9
chore(deps): update golang docker tag to v1.25.3 (#591)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang |  | patch | `1.25.2` -> `1.25.3` |
| golang | stage | patch | `1.25.2` -> `1.25.3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/cloudnative-pg/plugin-barman-cloud).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWF0ZWQiLCJuby1pc3N1ZSJdfQ==-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 09:54:25 +02:00
renovate[bot]
1e13446d56
chore(deps): update dependency barman to v3.16.1 (#595)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 09:40:27 +02:00
renovate[bot]
a7e1b706b9
chore(deps): update golang docker tag to v1.25.2 (#573)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 12:37:42 +02:00
renovate[bot]
b6934cfef0
chore(deps): update dependency barman to v3.16.0 (#570)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-10-07 21:57:40 +02:00
Marco Nenciarini
e4879b6577
ci(renovate): remove unhandled options to fix pip-compile errors (#565)
The Renovate pip-compile provider is not running due to some options in
the requirements.txt that are set to `None`, which is the actual default.

```
DEBUG: pip-compile: extracted command from header (repository=local)
       "fileName": "containers/sidecar-requirements.txt",
       "argv": [
         "pip-compile",
         "--allow-unsafe",
         "--cert=None",
         "--client-cert=None",
         "--generate-hashes",
         "--index-url=None",
         "--output-file=sidecar-requirements.txt",
         "--pip-args=None",
         "--strip-extras",
         "sidecar-requirements.in"
       ],
       "commandType": "pip-compile"
DEBUG: pip-compile: option not handled (repository=local)
       "option": "--allow-unsafe"
 WARN: pip-compile error (repository=local)
       "matchedFile": "containers/sidecar-requirements.txt",
       "errorMessage": "Option --cert=None not supported (yet)"
```

Removing the options fixes the run.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-10-07 14:01:38 +02:00
renovate[bot]
f8964428fd
chore(deps): refresh pip-compile outputs (#544)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 10:29:48 +02:00
renovate[bot]
ca5fd3ae4c
chore(deps): refresh pip-compile outputs (#533)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 12:22:47 +02:00
renovate[bot]
8714d9f14f
chore(deps): update golang docker tag to v1.25.1 (#518)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.25.0 | 1.25.1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 10:45:17 +02:00
renovate[bot]
62e5441932
chore(deps): update dependency barman to v3.15.0 (#488)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| pypi       | barman  | 3.14.1 | 3.15.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 11:43:39 +02:00
Niccolò Fei
70e12dea9a
chore: use plugin-barman-cloud-base image to build the sidecar (#479)
Signed-off-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Co-authored-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
2025-08-21 11:38:30 +02:00
Jonathan Gonzalez V.
a3ca353f73
chore: add Barman base image (#59)
We build a new image every week with the necessary base packages
for the sidecar.
This aims to reduce the time required for each CI process to run.

Signed-off-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Co-authored-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
2025-08-21 09:55:50 +02:00
renovate[bot]
0ef6423466
chore(deps): update golang docker tag to v1.25.0 (#482)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.24.6 | 1.25.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 08:45:31 +02:00
Leonardo Cecchi
b2645827b8
fix(images): use bookworm for sidecar image (#476)
We were using debian trixie as a building environment for barman-cloud,
but we were still using bookworm as a base image. This caused
inconsistencies in the sidecar image.

Now we always use bookworm.

Signed-off-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com>
2025-08-14 22:21:52 +02:00
renovate[bot]
9a6afdfb23
chore(deps): update golang docker tag to v1.24.6 (#442)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.24.4 | 1.24.6 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 20:03:51 +02:00
Jonathan Gonzalez V.
286cb24eb7
chore: update sidecar-requirements.txt (#438)
The sidecar-requirements.txt was out-dated, after the update we close
a few security issues.

Closes #437

Signed-off-by: Jonathan Gonzalez V. <jonathan.gonzalez@enterprisedb.com>
2025-07-03 15:53:53 +02:00
renovate[bot]
d2006fd098
chore(deps): update dependency barman to v3.14.1 (#416)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| pypi       | barman  | 3.14.0 | 3.14.1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 17:21:24 +02:00
renovate[bot]
c8f6ccfa57
chore(deps): update golang docker tag to v1.24.4 (#397)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.24.3 | 1.24.4 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 10:27:31 +02:00
Marco Nenciarini
35500130bf
feat(deps): update dependency barman to v3.14.0 (#368)
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-05-29 18:40:01 +02:00
renovate[bot]
016d7ff178
chore(deps): update dependency boto3 to v1.38.24 (#157)
| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| pypi       | boto3   | 1.35.99 | 1.38.24 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 16:08:08 +02:00
Marco Nenciarini
aa52bfe1c8
chore(deps): really update dependency setuptools to v80.4.0 (#369)
Due to an issue with pip-tools invocation, renovate has failed to update setuptools to v80.4.0 in #341. This patch fixes the issue.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2025-05-28 19:20:42 +02:00
renovate[bot]
6989742af7
chore(deps): update dependency setuptools to v80.9.0 (#365)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 80.3.1 | 80.9.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 17:02:09 +02:00
renovate[bot]
e7bd9aafee
chore(deps): update dependency barman to v3.14.0 (#346)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| pypi       | barman  | 3.13.3 | 3.14.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 12:58:31 +02:00
renovate[bot]
8dfb47eaee
chore(deps): update dependency setuptools to v80.4.0 (#341)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 80.3.1 | 80.4.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 11:35:54 +02:00
renovate[bot]
45055d049d
chore(deps): update golang docker tag to v1.24.3 (#321)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.24.2 | 1.24.3 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 10:19:15 +02:00
renovate[bot]
28bc705e6e
chore(deps): update dependency setuptools to v80.3.1 (#306)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 80.0.1 | 80.3.1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-05 15:36:13 +02:00
renovate[bot]
940f3967e1
chore(deps): update dependency setuptools to v80.0.1 (#283)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 80.0.0 | 80.0.1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-30 11:51:12 +02:00
renovate[bot]
2882a9d011
chore(deps): update dependency setuptools to v80 (#282)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 78.1.1 | 80.0.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-30 09:11:55 +02:00
renovate[bot]
664fabb8d9
chore(deps): refresh pip-compile outputs (#255)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 16:46:06 +02:00
renovate[bot]
01e85777cd
chore(deps): update dependency setuptools to v78.1.1 (#273)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 78.1.0 | 78.1.1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 14:58:09 +02:00
renovate[bot]
1982553d75
chore(deps): update dependency barman to v3.13.3 (#275)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| pypi       | barman  | 3.13.2 | 3.13.3 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 09:16:34 +02:00
renovate[bot]
d43272ecf2
chore(deps): update golang docker tag to v1.24.2 (#252)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| docker     | golang  | 1.24.1 | 1.24.2 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 15:50:26 +02:00
renovate[bot]
f900e5dddb
chore(deps): refresh pip-compile outputs (#241)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 09:00:10 +01:00
renovate[bot]
3b6be060d6
chore(deps): update dependency barman to v3.13.2 (#238)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| pypi       | barman  | 3.13.1 | 3.13.2 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 07:05:31 +01:00
renovate[bot]
4ea1b32626
chore(deps): update dependency setuptools to v78 (#240)
| datasource | package    | from   | to     |
| ---------- | ---------- | ------ | ------ |
| pypi       | setuptools | 77.0.1 | 78.1.0 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 05:41:26 +01:00