New Release for Argo CD Image Updater — 0.15

We are pleased to announce a brand new release of Argo CD Image Updater, the companion controller to Argo CD for automatically updating container images in Argo CD applications. Read on for more details.

Argo CD Image Updater is a project available at Argo Labs. You can use it to automatically monitor your container registries and instruct your applications to perform a redeployment when a new version of a container is available. This means that you can gain the benefits of continuous delivery without the need of custom pipelines for updating your Kubernetes manifest.

This release includes 6 new features, 16 fixes and several documentation updates.

Here are some highlights:

Support of other namespaces apart from “argocd”

Traditionally all Argo CD application manifests are deployed in the “argocd” namespace. In recent versions of Argo CD you can now use any namespace for your applications (argocd is still the default).

There is now support for making Argo CD Image Updater work with Argo CD applications that are not on the argocd namespace.

Thanks S Ribiere (Jellysmack) for implementing this feature.

Preserve field order when updating Kustomize files

Argo CD Image Updater has built-in support for Kustomize applications. If the Git write back method is used, Argo CD Image Updater can also update the container image in the kustomization YAML file of the application.

Unfortunately the field order was not preserved. This means that running “git diff” (or using Argo CD) would show inconsistent changes that were not related to the image update.

Now Argo CD Image Updater will preserve the existing field order before and after the update in a predictable manner making automation with other tools much easier.

Thanks Jaye Doepke (Mintel) for implementing this feature.

Updating multiple images when using Helm value files

Apart from Kustomize, Argo CD Image Updater can also monitor Helm charts and automatically update container tags mentioned in Helm value files.

In the most typical case a single Helm application will contain a single container image reference. Argo CD Image Updater will correctly detect the new version of the image and update it on the value files.

Sometimes however a single Helm application will contain multiple container tags. In this case Argo CD Image Updater would detect changes in all images but only update one of them. This process was now updated and now Argo CD Image Updater will work correctly with multi-image applications with the expected behavior.

Thanks Lyupcho Kotev (Codira AB) for implementing this feature.

Updating Argo CD applications when auto-sync is disabled

The main benefit of Argo CD Image Updater is fully automating all application deployments. A new container image is published in the registry, Argo CD Image Updater detects it and writes back to Git, Argo CD takes over and syncs all changes.

Some organizations however do not employ the auto-sync behavior of Argo CD. This can happen in several cases when deployments must happen manually (usually in production environments). In those scenarios Argo CD Image Updater would not “see” the updated image in the live application (as it was never deployed by Argo CD). This makes Argo CD Image Updater fall in a constant loop where it tries to update the same image again and again, but Argo CD does not deploy anything since auto-sync is disabled.

This behavior has now changed and Argo CD Image Updater will work even for Argo CD applications where auto-sync is disabled. Argo CD Image Updater will update the image only once as expected and then skip any further changes even if they are not yet on the live application definition.

Thanks Surya Asriadie (Smart News) for implementing this feature.

Support for Argo CD multi-source application sets

Argo CD Image Updater recently gained support for multi-source applications. The basic functionality worked great for individual applications, but in the case of Application Sets Argo CD Image Updater could not locate the type of each application (chart/kustomize/manifest) from the resource specification.

Now Argo CD Image Updater detects the type of each application from the status field of the resource, allowing you to automatically update images even if you employ Application Sets in your organization.

Thanks Jason Parraga (Stack AV) for implementing this feature.

Improved release process and unit testing

As promised in the previous release, there were several other internal changes in the project in areas of integration testing and better contributor experience. Even though these changes do not correspond to use-visible features, they are crucial for helping newcomers to the project and accepting new features. We are always looking for ways to attract contributors and making the developer experience an easy process is always a constant goal for us.

Multiple people were involved in this effort. See all changes in the release notes.

Where to report issues with the release

If you would like to contribute new features to Argo CD Image Updater, please submit a pull request as usual.

If you find any issues with the release please find us on the #argo-cd-image-updater channel in the CNCF Slack instance. If you are interested in becoming a maintainer then please contact us in the #argo-cd-contributors channel

Happy deployments!

Photo by Joshua Bayliss on Unsplash

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Written by Kostis Kapelonis

Kostis is a developer advocate at Codefresh/Octopus Deploy. He lives and breathes automation, good testing practices and stress-free deployments with GitOps.

Responses (2)

Write a response

Support of other namespaces apart from “argocd”

Outstanding! This makes it a lot more useful

--

You need to be careful using such tool because before applying any upgrade, you must read the release notes and change log to be aware of any changes or depreciation (breaking changes) on this new release that could break the availability of your application (or solution) after redeployment (restart)

--