argocd-fips
Argo CD FIPS Overview
Secure your stack with a hardened FIPS-validated Argo CD image freshly-built by Minimus. Minimus images always include the most up-to-date package version for all packages and dependencies contained in the image.
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
FIPS 140-3 Certification
This image is FIPS-validated to ensure its cryptographic operations meet the Federal Information Processing Standards (FIPS) required for secure government and regulated environments. Its core cryptographic modules are validated under the NIST Cryptographic Module Validation Program (CMVP) and comply with the FIPS 140-3 standard.
To verify that the FIPS 140-3 provider is configured and active, follow the instructions in the FIPS compliance tab.
Try It Out
Prerequisites
- A running Kubernetes cluster (v1.21 or higher is recommended)
- Helm v3.8 or higher for OCI support (Installation instructions)
kubectlinstalled and configured
Step 1: Start Cluster
If you have a cluster to work with, skip this step. Otherwise, start a Minikube cluster. Deployment instructions
Step 2: Add Repository to your Local Client
Add the official Helm chart repository to your local Helm client.
helm repo add argo https://argoproj.github.io/argo-helm
helm repo updateStep 3: Create values.yaml File
Save the following example for a values.yaml file to your working directory:
global:
image:
registry: reg.mini.dev
controller:
image:
repository: reg.mini.dev/argocd-fips
tag: latest
server:
image:
repository: reg.mini.dev/argocd-fips
tag: latest
repoServer:
image:
repository: reg.mini.dev/argocd-fips
tag: latest
dex:
image:
repository: reg.mini.dev/dex-fips
tag: latest
redis:
image:
repository: reg.mini.dev/redis-fips
tag: latestStep 4: Deploy Argo-CD
Run the following command from your project directory where the values.yaml is located:
helm install --namespace argocd argocd argo/argo-cd -f values.yamlWait a minute and check that the Pods are up and running:
kubectl -n argocd get poIf you get an error such as Unable to connect to the server, wait another few minutes and try again.
You should see the following Pods (ignore the ReplicaSet hash and random Pod identifiers):
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 91m
argocd-applicationset-controller-59f7fc666-mw7gx 1/1 Running 0 91m
argocd-dex-server-8b99cf66f-5l76v 1/1 Running 0 91m
argocd-notifications-controller-b7bf48757-rqc9r 1/1 Running 0 91m
argocd-redis-84897889d6-tt4xm 1/1 Running 0 91m
argocd-repo-server-77654bf79c-ss2z7 1/1 Running 0 91m
argocd-server-66bc5bd49b-ckg75 1/1 Running 0 91mStep 5: Test Web UI
Run the following command to see argocd services:
kubectl -n argocd get svcYou should see the following services:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 10.109.52.215 <none> 7000/TCP 80s
argocd-dex-server ClusterIP 10.98.250.69 <none> 5556/TCP,5557/TCP 80s
argocd-redis ClusterIP 10.102.194.65 <none> 6379/TCP 80s
argocd-repo-server ClusterIP 10.104.43.177 <none> 8081/TCP 80s
argocd-server ClusterIP 10.102.58.111 <none> 80/TCP,443/TCP 80sNext, we will port forward argocd-server service to our local port 8080:
kubectl -n argocd port-forward service/argocd-server 8080:80Without closing this terminal window, open another terminal window and obtain a password for the web UI:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echoTo login to the Argo server web user interface, open your browser and visit http://localhost:8080 (Ignore the TLS notification and proceed to the website). Log in using the username admin and the password obtained in the previous step.
Technical Considerations
The Argo CD FIPS image provided by Minimus is a slim, security-hardened alternative to the public image from Docker Hub. The images are largely interchangeable, with a few differences as noted below.
Argo CD FIPS built by Minimus:
- Runs as non-root by default for a security-first approach that protects against privilege escalation attacks.
- Drill down on the version specification tab to see the default user, listening ports, entrypoint, volumes, environment variables, etc.
The Payoff
A hardened, minimal image that will remain more secure for the long run and accrue vulnerabilities at a slower rate.
- See the risk reduction dashboard for a detailed CVE comparison over the past 30 days.
- Review the compliance report to see the default hardening and security configurations for the image.
Terms & Info
Trademark
This catalog is published by Minimus. All product names, logos, and marks, other than those belonging to Minimus, shown are owned by their respective rights holders and appear here only to identify the open source software each image contains. Minimus claims no ownership of those marks and implies no affiliation with, endorsement by, certification by, or sponsorship by any rights holder.
Disclaimer
Images are provided "as-is" without warranty of any kind. "Hardened" refers to the security configuration applied at the time of build and does not constitute a guarantee of ongoing security or absence of vulnerabilities. The free tier is provided without support, SLA, or guaranteed patching timelines. Security updates may be applied to paid subscriptions before or instead of free tier images. By pulling or using any image you agree to our Terms of Use.