packaged by Chainguard
Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.
Native Kubernetes integration for Dask (FIPS)
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.
Chainguard's Dask Kubernetes FIPS image is comparable to the dask/dask-kubernetes-operator image maintained by Dask, but rebuilt on Chainguard OS against FIPS-hardened OpenSSL. It is also a drop-in replacement for the upstream dask/dask image (ghcr.io/dask/dask:latest) for worker pods, so a single FIPS image can back both the operator deployment and the worker pods of a DaskCluster.
The image runs the same kopf-driven operator and reconciles the same DaskCluster, DaskWorkerGroup, and DaskJob CRDs as upstream, but the runtime differs in a few ways that may matter when migrating:
dask (uid 1000, gid 1000); the upstream image runs as root. If you mount volumes or write files at runtime, ensure they are writable by uid 1000 or set securityContext.runAsUser accordingly.["/bin/sh", "-c", "kopf run -m dask_kubernetes.operator --verbose --all-namespaces"]. The Chainguard image has no shell — the entrypoint is kopf run -m dask_kubernetes.operator.controller directly (the same controller code path) and the default args add a liveness HTTP endpoint at http://0.0.0.0:8080/healthz so Kubernetes can probe the operator without exec-ing into the container.kubectl exec ... -- /bin/bash will not work; use the -dev variant for debugging.PATH / PYTHONPATH. The operator and its dependencies live under /usr/share/dask-kubernetes/ (PATH prefixed with /usr/share/dask-kubernetes/bin, PYTHONPATH set to the venv's site-packages). Upstream installs into the system Python — plugins copied to /usr/local/lib/python*/site-packages will not be picked up; install them into /usr/share/dask-kubernetes/lib/python3.10/site-packages instead.make_suffix in _cogs/configs/conventions.py uses hashlib.blake2b to generate a 4-byte non-cryptographic suffix for long Kubernetes annotation storage keys. BLAKE2b is not FIPS-approved, so this image replaces the call with hashlib.sha256(...).digest()[:4] (FIPS-approved, same 4-byte digest width). Behavior is equivalent; the suffix bytes differ from upstream's, so do not assume kopf storage keys are byte-identical to a non-FIPS deployment.See upstream's Dask Kubernetes documentation for operator configuration and CRD reference, and Chainguard FIPS Documentation for the FIPS-hardened OpenSSL details.
This FIPS-compliant image includes the OpenSSL FIPS provider and is built with FIPS-validated cryptographic modules. Key FIPS features include:
Verify it's running:
kubectl get pods -n dask-operator
To get started with a dask cluster and scale it run this python snippet:
You can see the dask worker nodes created above:
values.yaml file for Dask KubernetesChainguard'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
BSD-2-Clause
BSD-3-Clause
GCC-exception-3.1
GPL-2.0-or-later
GPL-3.0-or-later
LGPL-2.1-or-later
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