This repository provides unofficial builds of Argo Workflows containers with BoringCrypto support for FIPS 140-2 compliance.
All images are built with GOEXPERIMENT=boringcrypto using the official Argo Workflows Dockerfile and build process.
# Workflow Controller
ghcr.io/argoproj-labs/argo-workflows-community-builds/workflow-controller:latest-fips
# Argo CLI
ghcr.io/argoproj-labs/argo-workflows-community-builds/argocli:latest-fips
# Executor
ghcr.io/argoproj-labs/argo-workflows-community-builds/argoexec:latest-fips
# Executor (non-root)
ghcr.io/argoproj-labs/argo-workflows-community-builds/argoexec:latest-fips-nonrootSpecific versions follow the upstream pattern with -fips suffix:
# Example for v3.7.2
ghcr.io/argoproj-labs/argo-workflows-community-builds/workflow-controller:v3.7.2-fips
ghcr.io/argoproj-labs/argo-workflows-community-builds/argocli:v3.7.2-fips
ghcr.io/argoproj-labs/argo-workflows-community-builds/argoexec:v3.7.2-fips
ghcr.io/argoproj-labs/argo-workflows-community-builds/argoexec:v3.7.2-fips-nonrootReplace the standard Argo Workflows images in your deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: workflow-controller
spec:
template:
spec:
containers:
- name: workflow-controller
image: ghcr.io/argoproj-labs/argo-workflows-community-builds/workflow-controller:latest-fipsapiVersion: v1
kind: ConfigMap
metadata:
name: workflow-controller-configmap
data:
config: |
executor:
image: ghcr.io/argoproj-labs/argo-workflows-community-builds/argoexec:latest-fips# Pull and use the BoringCrypto CLI
docker run --rm -it ghcr.io/argoproj-labs/argo-workflows-community-builds/argocli:latest-fips versionImages are automatically built daily to track the latest Argo Workflows releases. The workflow:
- Checks for new releases from
argoproj/argo-workflows - Clones the source code for each new version
- Builds all components (controller, executor, cli) with
GOEXPERIMENT=boringcrypto - Creates multi-architecture manifests for linux/amd64, linux/arm64, linux/ppc64le, and linux/s390x (except argocli which excludes s390x)
- Pushes to the configured container registry
This project introduces an enhanced build architecture for Argo Workflows with several key improvements:
- Native ARM64 Support: Full support for linux/arm64 alongside linux/amd64
- Cross-Platform Builds: Unified manifests enable seamless deployment across architectures
- Performance Optimized: Architecture-specific optimizations for both Intel and ARM processors
- BoringCrypto Integration: FIPS 140-2 validated cryptographic operations
- Secure Build Pipeline: Hardened GitHub Actions workflow with security scanning
- Supply Chain Security: Reproducible builds with attestation and SBOM generation
- Intelligent Version Tracking: Automated detection and building of new upstream releases
- Multi-Registry Distribution: Flexible deployment to GitHub Container Registry, Quay.io, and Docker Hub
- Rolling Update Strategy: Builds only the latest 2 releases to maintain freshness while ensuring stability
- Minimal Attack Surface: Non-root executor variants for enhanced security posture
- Layered Security: Multi-stage builds optimized for size and security
- Compliance Ready: Pre-configured for regulated environments requiring FIPS compliance
This architecture provides a robust foundation for enterprise deployments while maintaining compatibility with standard Argo Workflows installations.
These builds include BoringCrypto, Google's FIPS 140-2 validated cryptographic module. Key benefits:
- FIPS 140-2 Compliance: Suitable for government and regulated environments
- Validated Cryptography: Uses BoringSSL instead of Go's standard crypto packages
- Same Functionality: Drop-in replacement for standard Argo Workflows images
- Regular Updates: Automatically tracks upstream releases
The GOEXPERIMENT=boringcrypto build flag ensures all cryptographic operations use the FIPS-validated BoringSSL library.
The images are built using the exact same process as upstream Argo Workflows:
- Uses the official Dockerfile from
argoproj/argo-workflows - Uses the same build targets:
workflow-controller,argocli,argoexec,argoexec-nonroot - Follows the same multi-stage build process
- Only adds the
GOEXPERIMENT=boringcryptobuild argument - Creates multi-architecture manifests (linux/amd64, linux/arm64, linux/ppc64le, linux/s390x)
All images are built with BoringCrypto FIPS support for:
- linux/amd64
- linux/arm64
- linux/ppc64le (PowerPC 64-bit Little Endian)
- linux/s390x (IBM Z & LinuxONE)
Images can be pushed to multiple registries:
- GitHub Container Registry (ghcr.io) - default
- Quay.io (quay.io)
- Docker Hub (docker.io)
You can trigger manual builds using GitHub Actions workflow dispatch:
- Go to the Actions tab
- Select "Build and Push Argo Workflows (BoringCrypto)"
- Click "Run workflow"
- Optionally specify a specific version and registry
This project follows the same Apache 2.0 license as Argo Workflows.