tezvyn:

Argo CD Image Updater: Automate Image Updates

AI-drafted, machine-checkedSource: argocd-image-updater.readthedocs.ioadvanced

An Image Updater automates deployments by watching for new container image versions and telling Argo CD to update your app. It's used to automatically roll out new builds, but misconfiguring update strategies can accidentally deploy unstable tags to…

WHY IT EXISTS Manual image tag updates are slow, error-prone, and break the continuous deployment flow. A GitOps approach keeps configuration in Git, but something still needs to tell Git about new image versions. Image updaters bridge this gap between the container registry, where new artifacts live, and the Git repository, the source of truth for deployment.

THE MENTAL MODEL Think of an image updater as a robot assistant for your Argo CD setup. You tell the robot: "Watch this 'my-app' image in our registry. If you see a new version that matches the '1.x.x' pattern, update the application's parameters to use the new tag." It automates the tedious and error-prone step of manually bumping version numbers.

HOW IT WORKS The Argo CD Image Updater runs as a controller in your cluster. You create an ImageUpdater custom resource (CR) in the same namespace as the Argo CD applications you want to manage. In this CR, you specify which images to track and what update strategy to use. The controller periodically queries the container registry for new tags. When it finds a new tag that satisfies the strategy, like a higher semantic version, it updates the corresponding Argo CD Application resource's parameters. Depending on the app's sync policy, Argo CD then either deploys the change automatically or marks the app as OutOfSync for manual approval.

WHEN TO USE IT Use an image updater when you want to implement true Continuous Deployment, automatically promoting images from a registry to a live environment. It's ideal for environments where you trust your CI pipeline to produce stable, versioned artifacts. It is also useful for automatically keeping development or staging environments up-to-date with the latest builds.

WHEN NOT TO USE IT Avoid using an automatic image updater for critical production systems if you don't have robust automated testing and a semver strategy in place. Updating based on mutable tags like 'latest' is risky, as you can't guarantee what code is running. If your release process requires manual sign-offs or follows a specific schedule, a fully automated updater might be too aggressive.

ONE CANONICAL EXAMPLE A team wants to automatically deploy new patch releases of their backend-service to staging. They create an ImageUpdater CR that targets their staging-backend Argo CD application. They configure it to watch the 'ghcr.io/my-org/backend-service' image with the 'semver' strategy and a constraint of '~1.2.0'. When CI builds and pushes 'v1.2.5', the updater sees it, verifies it matches the constraint, and updates the Argo CD application's Helm parameter 'image.tag' from '1.2.4' to '1.2.5'. Argo CD then syncs and deploys the new version.

Read the original → argocd-image-updater.readthedocs.io

Get five bites like this every day.

Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.