packaged by Chainguard
Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.
FIPS-compliant Commercial Spilo — highly available PostgreSQL cluster (Zalando Spilo) built from the commercial-spilo-fips package.
Chainguard Containers are regularly-updated, secure-by-default container images.
For those with access, this container image is available on cgr.dev:
Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.
This is the FIPS variant of the commercial-spilo container image. It contains the same software, configuration, and entrypoint, and is a drop-in replacement for deployments already using scram-sha-256 password authentication. Clusters still relying on MD5 need the migration described under FIPS Support first.
This image contains the TSL-licensed build of TimescaleDB, which enables features gated behind the Timescale License (e.g., compression, continuous aggregates). See the TimescaleDB editions feature comparison for a complete list.
It is designed to provide a secure and minimal environment for running Spilo while maintaining functional parity with the upstream image.
Spilo is a highly available PostgreSQL distribution for Kubernetes, developed by Zalando. It combines PostgreSQL with Patroni for high availability and automatic failover, providing a robust database solution for cloud-native applications. This image includes PostgreSQL 18 with integrated support for Patroni, WAL-E/WAL-G for continuous archiving, and connection pooling capabilities.
This Chainguard Container ships with a validated redistribution of OpenSSL's FIPS provider module. PostgreSQL, libpq, pgbouncer, pam-oauth2, and CPython all link the system OpenSSL dynamically, so they take their cryptography from that provider. Patroni is a Python application and is covered by that same CPython path. The Go components, WAL-G and timescaledb-parallel-copy, are built with the FIPS Go toolchain, which routes their cryptography through the same system OpenSSL. For more on FIPS support in Chainguard Containers, consult the guide on FIPS-enabled Chainguard Containers on Chainguard Academy.
Because MD5 is not a FIPS-approved algorithm, it is unavailable in this image. In practice this means:
scram-sha-256 verifiers. PostgreSQL 14 and later default password_encryption to scram-sha-256 and Spilo does not override it, so this needs no configuration. Note that Spilo's generated pg_hba.conf still names the md5 method, which is fine: PostgreSQL transparently negotiates SCRAM on an md5 line whenever the stored verifier is SCRAM, so no MD5 hashing is performed.md5() fail with could not compute MD5 hash: unsupported.Run a standalone Spilo instance with Docker:
This deploys a single-node PostgreSQL cluster with Patroni.
To deploy Spilo on Kubernetes, use the Zalando Postgres Operator Helm chart. Add the Helm repository:
Override the default images in a values.yaml file. The chart defaults to the upstream ghcr.io/zalando/* images for the operator itself, the logical-backup job, and the connection pooler, so point each at its Chainguard FIPS counterpart alongside the Spilo image:
Only the operator image is deployed from these values by default. The logical-backup and connection-pooler images are per-cluster opt-ins: the operator pulls them once a postgresql resource sets spec.enableLogicalBackup: true or spec.enableConnectionPooler: true (spec.enableReplicaConnectionPooler for replicas). Leaving either at the chart default puts a non-FIPS image into the deployment at that point, and the pooler matters most, since it terminates client connections and so sits in the data path alongside Spilo.
Install the Postgres Operator:
Create a PostgreSQL cluster:
Verify the cluster is running:
Chainguard's free tier of Starter container images are built with Wolfi, our minimal Linux undistro.
All other Chainguard Containers are built with Chainguard OS, Chainguard's minimal Linux operating system designed to produce container images that meet the requirements of a more secure software supply chain.
The main features of Chainguard Containers include:
For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a development, or -dev, variant.
In all other cases, including Chainguard Containers tagged as :latest or with a specific version number, the container images include only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager.
Although the -dev container image variants have similar security features as their more minimal versions, they include additional software that is typically not necessary in production environments. We recommend using multi-stage builds to copy artifacts from the -dev variant into a more minimal production image.
To improve security, Chainguard Containers include only essential dependencies. Need more packages? Chainguard customers can use Custom Assembly to add packages, either through the Console, chainctl, or API.
To use Custom Assembly in the Chainguard Console: navigate to the image you'd like to customize in your Organization's list of images, and click on the Customize image button at the top of the page.
Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Libraries — contact us for access.
This software listing is packaged by Chainguard. The trademarks set forth in this offering are owned by their respective companies, and use of them does not imply any affiliation, sponsorship, or endorsement by such companies.
Chainguard's container images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" tag of this image:
Apache-2.0
Artistic-1.0-Perl
BSD-1-Clause
BSD-2-Clause
BSD-3-Clause
BSD-4-Clause-UC
CC-PDDC
For a complete list of licenses, please refer to this Image's SBOM.
Software license agreementChainguard Containers are SLSA Level 3 compliant with detailed metadata and documentation about how it was built. We generate build provenance and a Software Bill of Materials (SBOM) for each release, with complete visibility into the software supply chain.
SLSA compliance at ChainguardThis image helps reduce time and effort in establishing PCI DSS 4.0 compliance with low-to-no CVEs.
PCI DSS at ChainguardThis is a FIPS validated image for FedRAMP compliance.
This image is STIG hardened and scanned against the DISA General Purpose Operating System SRG with reports available.
Learn more about STIGsGet started with STIGs