Releases: argoproj-labs/argocd-image-updater
v0.12.0
Release description
The version v0.12.0 is a feature release, bringing some new features as well as bug fixes to Argo CD Image Updater. This release also has potentially breaking changes, please read the upgrade notes below.
We are very sorry for the delay with this release! Behind the scenes. we also worked on improving the documentation and gave it some refactoring. We hope you like it!
Major new features
-
Multi-arch deliverables are finally here! We now provide container images for
linux/amd64
andlinux/arm64
, as well as release binaries forlinux/amd64
,linux/arm64
,linux/ppc64le
,darwin/amd64
,darwin/arm64
as well aswindows/amd64
! -
Multi-arch support for container images: Argo CD Image Updater now also considers the architecture of container images and provides full support for multi-arch images by being able to inspect manifest lists. By default, when using an update strategy that supports meta data inspection (
latest
anddigest
), Argo CD Image Updater will now only consider manifests for the same architecture it is running on. This can be fine tuned on a per image basis, so if you have clusters with nodes spanning multiple architectures (e.g. mix of amd64 and arm64 nodes), and you know that certain workloads are bound to run on a given architecture, you can use the new<alias>.platforms
annotation to allow only updates to images that match a certain architecture. -
Less configuration need for registries: Argo CD Image Updater now requires even less configuration, even if used with custom registries, and supports more registries out of the box. Argo CD Image Updater will infer the registry API to use from an image's registry prefix. Now custom registries need only be configured in special cases, e.g. when the registry uses a self-signed certificate or when you want to configure global credentials, or fine tune other access parameters such as rate limiting.
Other notable enhancements and fixes
-
Improved support for the
digest
update strategy: For multi-arch images, thedigest
update strategy will set the image SHA to the SHA of the manifest list, so the node can pick the right architecture to deploy. Also, Argo CD Image Updater will now perform less requests to the registry when using thedigest
update strategy, resulting in happier rate limiters. -
Improved documentation: We heard the community that our docs are complicated and hard to understand or follow. There has been a major refactoring of the docs to provide a better user experience, and we'll continuously work to improve them going forward.
-
Support for HTTP proxies: When accessing container registries, Argo CD Image Updater now honors the HTTP proxy configuration from the environment (i.e.
http_proxy
,https_proxy
andno_proxy
variables) and performs any HTTP requests through the configured proxies. -
Application selection using labels: Now you can restrict Argo CD Image Updater to not only match on the names of applications, but also using a label matcher.
Thank you
The Argo Project would like to thank the following people for their awesome contributions that made this release possible:
@agorgl
@atarax
@derdanne
@iamnoah
@jaideepr97
@jannfis
@janpieper
@janpieper-gcx
@joebowbeer
@joyrex2001
@katainaka0503
@manivannan-g
@martin-marko
@nick-homex
@NickLarsenNZ
@pacoguzman
@patrykwozinski
@zimbres
@zoonoo
And also thanks to everyone who took the time to open and discuss issues.
Upgrade notes (no really, you MUST read this)
This release has a few potentially breaking changes. Please review the below descriptions
-
Configuration details for the default registry have changed:
If you had previously configured a custom default registry (e.g. by setting
prefix
to the empty string in the registries configuration), it will not be assumed the default registry automatically anymore. You need to explicitly set the configuration propertydefault
totrue
in order for Argo CD Image Updater to pick this registry as the default one. Also, you should set theprefix
property from the empty string to the true prefix of the registry. -
Registry configuration property
tagsortmode
has been deprecated:The
tagsortmode
configuration has been more confusing than helpful in the past, and is a relict from old times when Argo CD Image Updater wasn't able to inspect an image's meta data properly. This setting has now been deprecated and should not be used anymore. A warning will be printed when this is set for a registry, and the setting will be removed completely in a future version of Argo CD Image Updater. -
Tagging of images using the
digest
update strategy has changed slightly: Argo CD Image Updater now uses a tag in the format<tagname>@sha256:<sha_of_digest>
when setting image tag parameters. Previously, it had a slightly different format that often required workarounds when being used with Helm. If you are using such a workaround when rendering image specification in Helm, you should revisit your template and adapt it to the new format. -
test
command uses host platform by default: If you are running theargocd-image-updater test
command from a system which is based on a different platform than your cluster, you will have to specify the cluster's platform using the--platforms
option, otherwise results may not be the same as on the cluster.
Bug fixes
- fix: hardcode buildDate so it can be updated by ld at build time (#366) (#367)
- fix: Use existing registry requests failed metric (#362)
- fix: Use endpoint's transport also for token handler (#349)
- fix: Fetch metadata for multi-arch images with latest strategy (#342)
- fix: Fix docker environment variable (#340)
- fix: Do not retrieve metadata for all tags with digest strategy (#337)
- fix: Request correct mediatype for v1 manifests (#333)
- fix: Fix registry authentication when URL has slash suffix (#331)
- fix: assume kustomize application type if write back target is configured (#309)
- fix: Invalid image reference format when using digest strategy with helm charts (#317)
- fix: Rename flag to specify registries config path (#290) (#295)
- fix: Allow use of in-cluster kube-client for test-command (#288) (#293)
- fix: typo in warning message (#291)
- fix: Use correct registry URL for parsing pull secrets (#285)
New features
- feat: Support multiple platforms for test command (#396)
- feat: Add configMap to allow define parameters for SSH client (#373)
- feat: Support app-wide update-strategy annotations (#338)
- feat: Automatic inferring of registry from image prefix (#369)
- feat: support filtering apps by label in CLI (#368)
- feat: Improve visibility for skipped apps (#344)
- feat: Support manifestlist and multi-arch images (#341)
- feat: use HTTP_PROXY in transport object for registry endpoint if defined in environment (#300)
- feat: add ability to specify a different write and base branch (#304)
- feat: Enable auth plugins for Kubernetes client (#307)
Other changes
- chore: Log warning in test command on unsupported container platform #397
- chore: Bump docker distribution v2 (#395)
- chore: Bump Kubernetes dependencies to version 1.22.4 (#394)
- chore: Bump docker distribution (#393)
- docs: Add digest update strategy (#389)
- docs: Expect some more things in spelling (#385)
- chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.2.2 to 2.2.4 (#379)
- refactor(WBC): Target field in the WriteBackConfig (#380)
- test: Add e2e test for multiple images (#383)
- Checkout after creating a new branch (#384)
- fix(manifests): set deployment strategy to recreate to prevent concurrent replicas (#364)
- chore: Log out warning about tagsortmode (#363)
- chore: Add initial e2e test infrastructure (#358)
- refactor: Refactor logging to provide more context information (#357)
- docs: Fix inconsistency in the documentation on git write-back credentials (#356)
- chore(deps): Update Argo CD dependencies to 2.2.2 (#351)
- chore: Upgrade golang to 1.16.13 (#350)
- chore(deps): bump mkdocs from 1.1.2 to 1.2.3 in /docs (#347)
- chore: Create codeql-analysis.yml (#348)
- refactor: rename VersionSortMode to UpdateStrategy (#343)
- chore: Multi-arch distribution (#339)
- chore: Move container images to quay.io (#336)
- chore: Small fix to the release script (#334)
- docs: The docs for update-strategies were missing one word (#332)
- docs: Fixed ConfigMap name (#325)
- docs: Fixed typo (#324)
- docs: Update quoted true, false in configmap (#298)
v0.11.3
Release description
Minor bug fix release for the 0.11 release branch, which fixes a small bug with TLS when fetching registry auth tokens.
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- fix: Use endpoint's transport also for token handler (#349)
New features
N/A
Other changes
- chore: Upgrade golang to 1.16.13 (#350)
v0.11.2
Release description
Minor bug fix release for the 0.11 release branch, which fixes an annoyance with the digest
update strategy and updates the base images used in the distribution container image.
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- fix: Do not retrieve metadata for all tags with digest strategy (#337)
New features
N/A
Other changes
- chore: Always pull base images when building release image
- chore: Small fix to the release script (#334)
v0.11.1
Release description
Bug fix release for the 0.11 release branch, which fixes an authentication bug and issues with JFrog Artifactory registries.
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- fix: Fix registry authentication when URL has slash suffix (#331)
- fix: Request correct mediatype for v1 manifests (#333)
New features
N/A
Other changes
N/A
v0.11.0
Release description
The version v0.11.0 is a minor feature release, bringing some new features as well as bug fixes to Argo CD Image Updater.
Major new features
- Support for OCI images and registries! We have replaced the pretty old
docker-registry-client
by Docker's more moderndistribution/v3
API. - Update to latest Argo CD v2.1.5 dependencies. This allows Image Updater to leverage new Argo CD Git credentials using Secrets. Also, support for GitHub application authentication to authenticate Git repositories should be supported now.
- Improved Kustomize compatibility Argo CD Image Updater won't mutate other parts of Kustomization files besides the image specification anymore
Thank you
The Argo Project would like to thank the following people for their awesome contributions that made this release possible:
And also thanks to everyone who took the time to open and discuss issues.
Upgrade notes (no really, you MUST read this)
No special instructions this time.
Bug fixes
- fix: add basic authentication handler (#281)
- fix: use kyaml to preserve kustomization (#274)
- fix: use distribution to parse references (#275)
- fix: Correct client ping endpoint (#278)
- fix: Allow insecure registry access (#272)
- fix: multiple image with alias (#266)
- fix: Get tags from correct registry/image with a different kustomize image (#253)
- fix: modify SetKustomizeImage logic when use alias-image (#251)
New features
- feat: Support OCI repositories by using distribution/v3 (#249)
- feat: allow overriding registry rate limit in test command (#256)
Other changes
v0.10.3
Release description
Bug fix release for the 0.10 release branch, which fixes some annoying issues with Kustomize applications.
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- fix: Get tags from correct registry/image with a different kustomize image (#253)
- fix: modify SetKustomizeImage logic when use alias-image (#251)
New features
N/A
Other changes
N/A
v0.10.2
Release description
The version v0.10.2 is a patch release, and brings the aws
CLI into the container image due to popular demand.
Upgrade notes (no really, you MUST read this)
No special instructions this time.
Bug fixes
None
New features
- feat: Provide aws-cli in container image (#238)
Other changes
None
v0.10.1
Release description
The version v0.10.1 is a maintenance release updating the used base image only to address some vulnerabilities in Alpine.
Upgrade notes (no really, you MUST read this)
No special instructions this time.
Bug fixes
None
New features
None
Other changes
- Update alpine base image to v3.14.1
v0.10.0
Release description
The version v0.10.0 brings a couple of new and exciting features as well as bug fixes to Argo CD Image Updater.
Major new features:
-
New
digest
update strategy: This update strategy lets you track the most recent pushed version a single tag, e.g.latest
. Image Updater will compare the SHA256 sum of the currently running image to the SHA256 sum of the image in the registry, and update if appropriate. -
Modify
kustomization.yaml
directly: In addition to persisting the changes in the parameter overrides, Argo CD Image Updater can now modify akustomization.yaml
directly in order to update the image. -
Custom Git commit messages: Users can now specify a custom Git commit message using Go string templates.
-
Start with empty image: Argo CD Image Updater is now able to update applications that have no initial image tag specified.
The Argo Project would like to thank the following people for their awesome contributions that made this release possible:
Upgrade notes (no really, you MUST read this)
No special instructions this time.
Bug fixes
- fix: Prevent update loop with git write-back (#171)
- fix: Multiple tags on the same image return same order (#173)
- fix: Prevent concurrent updates to git repositories (#177)
- fix: Prevent nil pointer deref on emtpy tag with running image (#182)
- fix: Correctly consider image with force-update set and semver strategy (#192)
- fix: Images not updated if registry or repository is different with same version (#194)
- fix: Correctly marshal non-updated images (#203)
- fix: git client branch function (#213)
- fix: Fix a possible race condition in metadata retrieval (#215)
- fix: Don't return original tag if no tag was considered (#219)
New features
- feat: #164 Send events on image change (#167)
- feat: Introduce update strategy 'digest' (#176)
- feat: allow image updates to be forced if container not present #181 (#189)
- feat: Allow setting custom Git commit messages (#193)
- feat: allow write-back to actual kustomization files (#200)
- feat(manifests): add ssh volume mounts and volume (#212)
Other changes
- chore: Add openssh-client to container image (#165)
- docs: fix document (#201)
- docs: Update strategy docs (#178)
- docs: Update documentation regarding Git write-back (#166)
- docs: Grammatical fix in start.md (#225)
- chore: Upgrade Go to v1.16.5 (#229)
- chore: Upgrade Argo CD dependencies to v2.0.5 (#230)
- chore: Fix readthedocs builds (#231)
- docs: Mention support channels and some fixes (#232)