Releases: argoproj-labs/argocd-image-updater
v0.15.1
What's Changed
- fix: #896 App of apps being overwritten by image-updater [release-0.15] by @chengfang in #920
- Release 0.15.1 by @chengfang in #921
- fix(build): add step to Makefile to generate signing gpg key by @chengfang in #922
- chore: fix the .phony target name for multiarch-image-push by @chengfang in #923
- Revert "Release 0.15.1 (#921)" by @chengfang in #924
- Release 0.15.1 by @chengfang in #925
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Changed
- tests: add unit tests for pkg/cache by @chengfang in #770
- feat: Support other namespaces than argocd in AIU by @sribiere-jellysmack in #763
- chore(tests): Add unit tests to image-updater pkg/health, pkg/version and pkg/registry by @Mangaal in #771
- chore(lint): Enable spelling linter by @jannfis in #773
- chore(build): Update GitHub actions used during CI by @jannfis in #774
- Update dependabot by @JunHyungJang in #775
- chore(deps): bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 by @dependabot in #778
- chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by @dependabot in #781
- chore(deps): bump github/codeql-action from 2 to 3 by @dependabot in #777
- chore(deps): bump github.com/prometheus/client_golang from 1.16.0 to 1.19.1 by @dependabot in #780
- Use status instead of spec for determining source types by @Sovietaced in #772
- Preserve field order when updating kustomization.yaml file by @jtdoepke in #666
- feat(actions): add create-release-draft action by @zarbis in #787
- fix(actions): add instruction and fix workflow trigger condition by @zarbis in #788
- Fix updates to multiple images when using helm values file by @ljupchokotev in #790
- chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.11.2 to 2.11.6 by @dependabot in #792
- chore(deps): bump alpine from 3.19 to 3.20 by @dependabot in #776
- Fix release draft script by @zarbis in #811
- chore(release): make sure release branch exist on remote before proceeding by @zarbis in #813
- fix(release-draft): remove unnecessary working directory in image builder by @zarbis in #817
- tests: Add unit tests to image-updater pkg/image by @chengfang in #810
- tests: Add unit tests for pkg/argocd by @ishitasequeira in #818
- chore(deps): bump go.uber.org/ratelimit from 0.3.0 to 0.3.1 by @dependabot in #804
- chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.11.6 to 2.11.7 by @dependabot in #801
- chore(deps): bump github.com/opencontainers/image-spec from 1.1.0-rc4 to 1.1.0 by @dependabot in #803
- docs: fix grammatical errors by @Cornul11 in #807
- fix: Improper parsing of image identifiers having both tag name and digest by @chengfang in #815
- chore(deps): upgrade golangci-lint from v1.57.2 to v1.59.1; change golangci-lint vet to govet by @chengfang in #819
- Add unit tests for pkg/argocd/gitcreds.go by @ishitasequeira in #820
- chore(release): disable changelog generation by @zarbis in #826
- feat!: Filter labels on the server instead of client to allow more label filtering options by @jnovick in #832
- feat: Use shallow clone to speed up performance by @jnovick in #830
- docs: added release process by @kostis-codefresh in #827
- chore: removed unused workflow by @kostis-codefresh in #828
- chore: add e2e tests for filtering applications by label with match-application-label command line option by @chengfang in #834
- tests(e2e): Add e2e test for filtering apps by name with match-application-name option by @chengfang in #841
- Allow setting new value in Helm values file by @jnovick in #838
- fix: Multiple aliases for the same image only 1 parameter is updated by @chengfang in #846
- fix: warnings from golangci-lint: S1009 should omit nil check; non-constant format string in call to fmt.Errorf by @chengfang in #849
- fix: allow the specific image platform os/arch/variant to meet the requirement for a broader image platform os/arch by @chengfang in #858
- docs: use the correct annotation name platforms instead of platform; fix link to registries.md; improve table formatting by @chengfang in #856
- chore(deps): bump golang from 1.22 to 1.23 by @dependabot in #850
- chore(deps): bump github.com/bmatcuk/doublestar/v4 from 4.6.0 to 4.6.1 by @dependabot in #851
- feat: Sync namespace for Event to the Application namespace (#847) by @jortkoopmans in #848
- fix: failed to process a full image-spec annotation with git writeback to helmvalues by @chengfang in #843
- Add e2e test for app-wide-upgrade-strategy by @ishitasequeira in #842
- tests: add tests for github app credentials by @chengfang in #862
- fix: missing namespace on clusterrolebinding in install manifests by @chengfang in #860
- chore: update argocd version in test/e2e/prereqs/argocd/kustomization.yaml by @chengfang in #863
- chore: update test cmd update-strategy description to include all 4 values (semver, newest-build, alphabetical, digest) by @chengfang in #864
- tests: Improve unit tests for pkg/registry/client.go by @chengfang in #865
- fix: Kustomize skip commit if nothing changed by @Fs02 in #607
- Add e2e test for adding configMap to allow defining parameters for SSH client by @chengfang in #873
- fix(git): write back to custom git branch failed by rejected push: tip of your current branch is behind by @chengfang in #882
- chore(deps): bump github.com/google/uuid from 1.3.1 to 1.6.0 by @dependabot in #875
- chore(deps): bump google.golang.org/grpc from 1.59.0 to 1.67.1 by @dependabot in #876
- k8sClient get resources across all namespaces (#601) by @jortkoopmans in #854
- chore: Address comments in PR #854 by @ishitasequeira in #886
- Add e2e tests for apps in any namespace feature by @ishitasequeira in #844
- fix: Git write back to helm values is incorrect during the first pass and corrupts existing data by @chengfang in #885
- Release 0.15.0 by @pasha-codefresh in #891
New Contributors
- @sribiere-jellysmack made their first contribution in #763
- @JunHyungJang made their first contribution in #775
- @Sovietaced made their first contribution in #772
- @jtdoepke made their first contribution in #666
- @zarbis made their first contribution in #787
- @ljupchokotev made their first contribution in #790
- @ishitasequeira made their first contribution in #818
- @Cornul11 made their first contribution in #807
- @jortkoopmans made their first contribution in #848
- @Fs02 made their fir...
v0.14.0
What's Changed
- doc: Update installation.md by @Ileriayo in #703
- chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.8.4 to 2.8.17 by @dependabot in #713
- chore(deps): bump golang.org/x/net from 0.19.0 to 0.23.0 by @dependabot in #715
- Update images.md by @4TT1L4 in #677
- chore(deps): bump pygments from 2.7.4 to 2.15.0 in /docs by @dependabot in #595
- chore(deps): bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @dependabot in #685
- chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.8.17 to 2.8.19 by @dependabot in #718
- fix: downgrade alpine version, while aws cli is not available in 3.20 by @pasha-codefresh in #721
- chore(deps): Upgrade argo-cd to v2.11.2 and bump Go to 1.22 by @jannfis in #724
- fix: invalid memory address due to store is nil in gitcreds.go by @pasha-codefresh in #723
- chore(deps): Pull in Git client changes from Argo CD v2.11.2 by @jannfis in #726
- Remove repeated git command by @ariefwt in #729
- fix: set default ImageAlias for Helm app type using helmvalues git write-back method by @askhari in #725
- fix: Pass AppNamespace to UpdateSpec api call by @mwijngaard in #687
- chore: fix checking for the existence of TARGET_TAG by @chengfang in #741
- create github actions workflow init-release.yaml for preparing release by @chengfang in #740
- chore: adding test coverage for NewClientMetrics & NewEndpointMetrics by @zhaque44 in #743
- chore(misc): Adapt owners, add codeowners by @jannfis in #746
- build(test): Update Codecov integration by @jannfis in #745
- fix: Make Git credentials work again by @jannfis in #737
- chore: adding tests for ask_pass cmd by @zhaque44 in #749
- chore(deps): bump jinja2 from 3.0.3 to 3.1.4 in /docs by @dependabot in #714
- chore(deps): bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 by @dependabot in #664
- Added support for ssh signed commits and completed gpg signed commit work by @dlactin in #710
- Fix issue regarding volume added in #710 by @subigre in #750
- fix: fixed path for ssh signing key, error mounting in another volume by @dlactin in #753
- Fix/helm values wbc by @askhari in #748
- fix: pass through git store to git creds by @benfuu in #756
- chore(deps): bump github.com/hashicorp/go-retryablehttp from 0.7.4 to 0.7.7 by @dependabot in #760
- Update update.md: Fix broken links by @Ileriayo in #758
- Documentation: ArgoCD apps in any namespace incompatibility by @seanmorton in #541
- 🧪 adds manifest tests by @bpsoos in #761
- Create directory automatically by @jnovick in #680
- add unit tests for cmd/main.go and cmd/run.go by @chengfang in #764
- fix: add check for the optional ref.Platform field to avoid nil pointer in TagInfoFromReferences by @chengfang in #759
- chore(tests): add unit tests for cmd/template.go, cmd/util.go and cmd/version.go by @Mangaal in #765
- chore(tests): add unit tests for cmd/test.go by @chengfang in #766
- fix: Fix write-back commits by @jannfis in #767
- tests: add unit tests for pkg/options.go and pkg/metrics.go by @chengfang in #768
New Contributors
- @Ileriayo made their first contribution in #703
- @4TT1L4 made their first contribution in #677
- @pasha-codefresh made their first contribution in #721
- @ariefwt made their first contribution in #729
- @mwijngaard made their first contribution in #687
- @chengfang made their first contribution in #741
- @zhaque44 made their first contribution in #743
- @subigre made their first contribution in #750
- @benfuu made their first contribution in #756
- @seanmorton made their first contribution in #541
- @bpsoos made their first contribution in #761
- @jnovick made their first contribution in #680
- @Mangaal made their first contribution in #765
Full Changelog: v0.13.0...v0.14.0
v0.13.1
What's Changed
- fix: crash due to store is nil by @pasha-codefresh in #723
Full Changelog: v0.13.0...v0.13.1
v0.13.0
What's Changed
- chore: Correctly upload release assets by @jannfis in #403
- docs: Add security policy by @jannfis in #408
- chore: Fix mkdocs requirements by @jannfis in #409
- feat: Rename confusing update strategies by @jaideepr97 in #456
- docs: Fix the wrong flag for the argocd-image-updater by @LinuxSuRen in #448
- fix: Doc error --docker-server by @hawkesn in #442
- chore: update golangci-lint version in CI by @jaideepr97 in #457
- Fix: update application config sample & replace the deprecated ioutil pkg by @CaiYueTing in #492
- fix: Remove erroneous binary by @jannfis in #498
- docs: Added warning about existing tag in semver by @kostis-codefresh in #471
- docs: Fix dead links by @claudex in #434
- build: preview docs locally by @kostis-codefresh in #470
- fix: add ca-certificates to the docker image by @aborilov in #497
- docs: Add missing word by @sondrelg in #472
- chore: Add words to dictionary by @jannfis in #499
- chore: Fix building readthedocs by @jannfis in #509
- chore: Upgrade Go version to 1.18 and update dependencies by @jannfis in #523
- fix: Also request OCI media type image index by @jannfis in #524
- docs(readme): add link for proposal to integrate with argo-cd by @morey-tech in #520
- bump go version to 1.20 by @deferraz in #564
- ensure deterministic results for SortBySemVer() by @krancour in #559
- docs(registries): add env example by @vsychov in #555
- chore(deps): bump golang.org/x/crypto from 0.0.0-20211215153901-e495a2d5b3d3 to 0.1.0 by @dependabot in #539
- Name strategy regexp in example need to be correctd by @iamraj007 in #534
- bump golang.org/x/net from 0.4.0 to 0.7.0 by @dependabot in #535
- chore(deps): bump github.com/emicklei/go-restful from 2.9.5+incompatible to 2.16.0+incompatible by @dependabot in #532
- Examples for semver and digest update strategy by @dmouse in #507
- Fix: kustomize write target starts failing after indeterminate period at time by @dmavis in #583
- Fix: git zombie processes left behind after periodic image updater runs by @dmavis in #584
- Documentation Error: Incorrect Usage of <image_name> in Annotations by @geekloper in #581
- chore: Fix spell checking config by @suzaku in #577
- docs: Fixed typo by @yukinakanaka in #589
- chore: Preallocate space for slices with known size by @suzaku in #575
- ci: Fix codegen and update kustomize to post-2.0 by @jannfis in #590
- feat: Respect original parameter overrides with git write-back by @ks-yim in #573
- chore: Update to newer argocd version for better API compatibility by @jessebye in #594
- Upgrade dependencies for fix vulnerabilities by @vsychov in #599
- fix: tighten securityContext to comply with restricted PSS by @tsawada in #600
- feat: Add possibility to specify write-back GIT repository as annotation by @flozzone in #424
- fix: Add support for ocischema.DeserializedImageIndex manifest type by @jessebye in #618
- chore(deps): Upgrade the version of semver package from v1 to v3 by @umi0410 in #625
- feat: multisource support by @askhari in #636
- chore(deps): bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 by @dependabot in #648
- chore(deps): bump golang.org/x/net from 0.12.0 to 0.17.0 by @dependabot in #629
- feat: add support for separate GitHub app credentials by @dlactin in #649
- Fix: golangci lint by @0luwaj0x1 in #707
- Docs: fix redirection path by @Fluder-Paradyne in #708
- fix dockerfile to pass builds by @aburan28 in #700
- fix: typo by @testwill in #624
New Contributors
- @LinuxSuRen made their first contribution in #448
- @hawkesn made their first contribution in #442
- @CaiYueTing made their first contribution in #492
- @kostis-codefresh made their first contribution in #471
- @claudex made their first contribution in #434
- @aborilov made their first contribution in #497
- @sondrelg made their first contribution in #472
- @morey-tech made their first contribution in #520
- @deferraz made their first contribution in #564
- @krancour made their first contribution in #559
- @iamraj007 made their first contribution in #534
- @dmouse made their first contribution in #507
- @dmavis made their first contribution in #583
- @geekloper made their first contribution in #581
- @suzaku made their first contribution in #577
- @yukinakanaka made their first contribution in #589
- @ks-yim made their first contribution in #573
- @jessebye made their first contribution in #594
- @tsawada made their first contribution in #600
- @flozzone made their first contribution in #424
- @umi0410 made their first contribution in #625
- @askhari made their first contribution in #636
- @dlactin made their first contribution in #649
- @0luwaj0x1 made their first contribution in #707
- @Fluder-Paradyne made their first contribution in #708
- @aburan28 made their first contribution in #700
- @testwill made their first contribution in #624
Full Changelog: v0.12.2...v0.13.0
v0.12.2
Release description
Minor bug fix release for the 0.12 release branch to support additional OCI media type in registries and updates Golang and some dependencies.
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- fix: Also request OCI media type image index (#524)
New features
N/A
Other changes
- chore: Upgrade Go version to 1.18 and update dependencies (#523)
v0.12.1
Release description
Minor bug fix release for the 0.12 release branch, which missing ca-certs in docker image
Upgrade notes (no really, you MUST read this)
N/A
Bug fixes
- add ca-certificates to the docker image (#497)
New features
N/A
Other changes
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)