This repository provides maintenance scripts for building immutable
container images containing PostgreSQL extensions supported by
CloudNativePG. These images are designed to
integrate seamlessly with the image volume extensions
feature
in CloudNativePG.
- CloudNativePG ≥ 1.27
- PostgreSQL ≥ 18 (requires the
extension_control_path
feature) - Kubernetes 1.33+ with ImageVolume feature enabled
Currently: none. This repository lays the foundation for packaging extensions going forward.
Each extension image tag follows this format:
<extension-name>:<pg_version>-<ext_version>-<timestamp>-<distro>
Example:
Building pgvector
version 0.8.1
on PostgreSQL 17.6
for the trixie
distro, with build timestamp 202509101200
, results in:
pgvector:17.6-0.8.1-202509101200-trixie
For convenience, rolling tags should also be published:
pgvector:17.6-0.8.1-trixie
pgvector:17-0.8.1-trixie
This scheme ensures:
- Alignment with the upstream
postgres-containers
base images - Explicit PostgreSQL and extension versioning
- Multi-distro support
-
Should each extension live in its own dedicated folder?
-
Should each extension follow its own release cycle?
-
Must every release pass smoke tests (e.g. via Kind)?
-
Should we define policies for:
- Licensing (must be open source)?
- Contribution and ownership
- Governance aligned with the CloudNativePG project?
-
Can contributors propose and maintain additional extensions?
-
Should each extension have designated component owners responsible for maintenance, reviews, and release management?