1. Images & Charts
  2. argocd-fips
argocd-fips

argocd-fips

Fips
Stig
Utils
Updated 8 hours ago

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)
  • kubectl installed 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 update

Step 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: latest

Step 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.yaml

Wait a minute and check that the Pods are up and running:

kubectl -n argocd get po

If 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          91m

Step 5: Test Web UI

Run the following command to see argocd services:

kubectl -n argocd get svc

You 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      80s

Next, we will port forward argocd-server service to our local port 8080:

kubectl -n argocd port-forward service/argocd-server 8080:80

Without 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; echo

To 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:

  1. Runs as non-root by default for a security-first approach that protects against privilege escalation attacks.
  2. 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.


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.