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 Minimalist Kubeflow Pipelines Images
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 image group provides FIPS-compliant backend component images that make up a Kubeflow Pipelines v2 deployment, published under the kubeflow-pipelines-*-fips repositories:
| Repository | Component |
|---|---|
| Pipelines API server |
| Cache server |
| Cache deployer |
| ML Metadata Envoy proxy |
| ML Metadata writer |
| Persistence agent |
| Scheduled workflow controller |
| Viewer CRD controller |
| Pipelines UI frontend |
| V2 per-task orchestration driver |
| V2 per-task executor |
The kubeflow-pipelines-driver-fips image ships the v2 driver binary, which the Pipelines workflow controller runs as an init-container to orchestrate each pipeline task at runtime.
The kubeflow-pipelines-launcher-fips image ships the v2 launcher binary, which KFP injects into every pipeline step's Pod to fetch input artifacts, run the user's command, and upload output artifacts to the object store.
These Chainguard Containers ship with the OpenSSL FIPS provider, so each component's cryptographic operations — including the TLS connections between the API server, ML Metadata, the cache webhook, and the object store — use only FIPS-approved algorithms. The Go components are compiled against a FIPS-validated OpenSSL crypto backend, and kubeflow-pipelines-metadata-envoy-fips proxies through an Envoy build linked against BoringSSL FIPS. For more on FIPS support in Chainguard Containers, consult the guide on FIPS-enabled Chainguard Containers on Chainguard Academy.
FIPS mode rejects HMAC keys shorter than 112 bits, as required by NIST SP 800-131A. AWS Signature Version 4 derives its signing key from the literal AWS4 followed by your secret key, so a secret key under 10 characters leaves fewer than 112 bits and OpenSSL refuses it.
Every component that reads or writes pipeline artifacts signs its object-store requests this way — the API server, persistence agent, driver, and launcher. With too short a key they abort at startup rather than degrade:
The upstream Kubeflow Pipelines manifests ship an 8-character development default (minio123), which is below this floor. Set a secret key of at least 10 characters in the mlpipeline-minio-artifact Secret before deploying these images:
The non-FIPS images are unaffected, since they do not enforce the minimum key length.
Kubeflow Pipelines does not run the launcher as its own container. It copies the launcher binary into each task Pod and executes it inside your component's base image. The FIPS launcher therefore needs the OpenSSL FIPS provider to be present in that base image, not just in kubeflow-pipelines-launcher-fips.
Building a component on a base without the FIPS provider fails the task at startup:
Use a FIPS variant as the component base, for example cgr.dev/ORGANIZATION/python-fips in place of python:
This applies to every component in a pipeline, including lightweight Python components, since each one executes the launcher.
These images are drop-in replacements for the upstream Kubeflow Pipelines component images. Deploy them by applying the upstream kustomize manifests with the image references retargeted to your Chainguard repositories.
Create a kustomization.yaml that pulls the upstream overlay and remaps each component image (replace ORGANIZATION with your Chainguard org, and pin <KFP_VERSION> to the Kubeflow Pipelines release you are deploying):
Install the cluster-scoped resources, then apply the overlay:
Verify the deployment once it converges:
The driver and launcher images are not run as standalone workloads. The API server injects them into each pipeline task Pod through its V2_DRIVER_IMAGE and V2_LAUNCHER_IMAGE environment variables, so point those at the FIPS repositories rather than deploying them separately:
For configuration and usage, refer to the upstream documentation:
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
GCC-exception-3.1
GPL-2.0-only
GPL-2.0-or-later
GPL-3.0-or-later
LGPL-2.1-or-later
MIT
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