Release description
This release mainly improves compatibility with different registries and introduces support for rate limiting requests to the registry APIs. Also, Argo CD Image Updater will now fetch metadata for tags in parallel, instead of doing it sequentially, which greatly improves performance.
A new method for fetching credentials has been added, ext
, which allows to execute a script that generates the credentials. Also, credentials configured at the registry level can be set to expire now, to support generated tokens with a limited lifetime.
A new command has been added to argocd-image-updater
CLI, namely the test
command. This new command allows you to check how Argo CD Image Updater would behave with a certain set of configuration, without having to annotate any live resources in your clusters. For more information on how to use it, see the documentation. It's not feature complete yet, and more features will be added in the future.
Upgrade notes (no really, you MUST read this)
-
Attention: For the
latest
update-strategy,argocd-image-updater
now fetches v2 manifests by default, instead of the v1 manifests in previous versions. This is to improve compatibility with registry APIs, but may result in a significant higher number of manifest pulls. Due to the recent pull limits imposed by Docker Hub, it is not recommended to uselatest
updated strategy with Docker Hub registry anymore if those pull limits are enforced on your account and/or images, especially if you have more than a couple of tags in your image's repository. Fetching meta data for any given tag counts as two pulls from the view point of Docker Hub. -
The default rate limit for API requests is 20 requests per second per registry. If this is too much for your registry, please lower this value in the
registries.conf
by settingratelimit
to a lower value.
Bug fixes
- fix: Correctly apply ignore list when matchfunc is not set (#116)
- fix: Prevent nil pointer dereference in image creds (#126)
New features
- feat: Get tag creation date also from v2 manifest schemas (#115)
- feat: add argocd-image-updater test command (#117)
- feat: Implement rate limiter and metadata parallelism (#118)
- feat: Support for getting pull creds from external scripts (#121)
- feat: Export Prometheus compatible metrics (#123)
- feat: Support for expiring credentials (#124)
Other changes
- chore: Update to Golang v1.14.13