DirectorySecurity AdvisoriesPricing
Sign in
Directory
argocd-operator logo

argocd-operator

packaged by Chainguard

Last changed
Request a free trial

Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.

Tags
Overview
Comparison
Provenance
Specifications
SBOM
Vulnerabilities
Advisories

Chainguard Container for argocd-operator

Kubernetes operator that manages the full lifecycle of Argo CD installations through the ArgoCD custom resource.

Chainguard Containers are regularly-updated, secure-by-default container images.

Download this Container Image

For those with access, this container image is available on cgr.dev:

docker pull cgr.dev/ORGANIZATION/argocd-operator:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.

Compatibility Notes

Chainguard's argocd-operator image is compatible with the upstream quay.io/argoprojlabs/argocd-operator image. It keeps the upstream /manager entrypoint (a compatibility path to /usr/bin/argocd-operator), so existing operator manifests that run /manager, including the upstream OLM bundle, work once you point them at this image. The image also ships the Redis HA templates under /var/lib/redis, which the operator reads by default (override with REDIS_CONFIG_PATH). The container runs as a non-root user (UID 65532).

Getting Started

The Argo CD Operator watches ArgoCD custom resources and creates and manages the Argo CD components (API server, repo server, application controller, Redis, Dex, and so on) that each resource describes.

Confirm the image runs and list the available flags:

docker run --rm cgr.dev/ORGANIZATION/argocd-operator:latest --help

To deploy the operator, install the upstream CRDs and manifests following the upstream installation guide, then override the manager container image in the operator Deployment:

kubectl -n argocd-operator-system set image deployment/argocd-operator-controller-manager \
  manager=cgr.dev/ORGANIZATION/argocd-operator:latest

Create an ArgoCD instance to have the operator reconcile an Argo CD installation:

kubectl create namespace argocd
kubectl apply -n argocd -f - <<EOF
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
  name: example
spec: {}
EOF

The operator exposes health probes on port 8081 (/healthz, /readyz) and Prometheus metrics on port 8080 (/metrics).

Using Chainguard Images for Argo CD Components

By default, the operator deploys every ArgoCD instance with upstream images: Argo CD from quay.io/argoproj/argocd, Dex from ghcr.io/dexidp/dex, Redis and HAProxy from public.ecr.aws/docker/library, and the UI extension installer from quay.io/argoprojlabs/argocd-extension-installer. To have the operator deploy Chainguard images instead, set the following environment variables on the manager container of the operator Deployment:

VariableComponentChainguard image

ARGOCD_IMAGE

Argo CD server, repo server, application controller, ApplicationSet and notifications controllers

cgr.dev/ORGANIZATION/argocd

ARGOCD_DEX_IMAGE

Dex SSO server

cgr.dev/ORGANIZATION/dex

ARGOCD_REDIS_IMAGE

Redis (non-HA)

cgr.dev/ORGANIZATION/redis

ARGOCD_REDIS_HA_IMAGE

Redis in HA mode

cgr.dev/ORGANIZATION/redis

ARGOCD_REDIS_HA_PROXY_IMAGE

HAProxy in front of Redis HA

cgr.dev/ORGANIZATION/haproxy

ARGOCD_EXTENSION_IMAGE

UI extension installer init container (e.g. the Rollouts extension)

cgr.dev/ORGANIZATION/argocd-extension-installer

ARGOCD_IMAGE_UPDATER_IMAGE

Argo CD Image Updater

cgr.dev/ORGANIZATION/argocd-image-updater

ARGOCD_EXTENSION_IMAGE is the variable name in operator 0.18.0. Newer upstream releases rename it to ROLLOUTS_EXTENSION_IMAGE and add PROMOTER_EXTENSION_IMAGE alongside it, so check the variable names for the operator version you run.

The operator uses each value as a complete image reference, so include the tag or digest. Replace the tags in the following example with the versions you want to run:

kubectl -n argocd-operator-system set env deployment/argocd-operator-controller-manager -c manager \
  ARGOCD_IMAGE=cgr.dev/ORGANIZATION/argocd:latest \
  ARGOCD_DEX_IMAGE=cgr.dev/ORGANIZATION/dex:latest \
  ARGOCD_REDIS_IMAGE=cgr.dev/ORGANIZATION/redis:latest \
  ARGOCD_REDIS_HA_IMAGE=cgr.dev/ORGANIZATION/redis:latest \
  ARGOCD_REDIS_HA_PROXY_IMAGE=cgr.dev/ORGANIZATION/haproxy:latest \
  ARGOCD_EXTENSION_IMAGE=cgr.dev/ORGANIZATION/argocd-extension-installer:latest \
  ARGOCD_IMAGE_UPDATER_IMAGE=cgr.dev/ORGANIZATION/argocd-image-updater:latest

If you install the operator through OLM, set the same variables under spec.config.env of the operator Subscription instead, because OLM reverts direct edits to the Deployment.

These variables only apply when the ArgoCD resource does not set its own image. If spec.image/spec.version (or a component's image/version, such as spec.dex.image or spec.redis.image) is set on the resource, that value takes precedence.

Documentation and Resources

What are Chainguard Containers?

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.

Need additional packages?

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.

Learn More

Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Libraries — contact us for access.

Trademarks

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.

Licenses

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:

    For a complete list of licenses, please refer to this Image's SBOM.

    Software license agreement

    Compliance

    Chainguard 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 Chainguard

    This image helps reduce time and effort in establishing PCI DSS 4.0 compliance with low-to-no CVEs.

    PCI DSS at Chainguard

    Category
    Application

    The trusted source for open source

    Talk to an expert
    PrivacyTerms

    Product

    Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
    © 2026 Chainguard, Inc. All Rights Reserved.
    Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
    The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.