Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Digest" image update strategy by tag deployed. #870

Open
JavierPorron opened this issue Sep 24, 2024 · 8 comments
Open

"Digest" image update strategy by tag deployed. #870

JavierPorron opened this issue Sep 24, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@JavierPorron
Copy link

JavierPorron commented Sep 24, 2024

Is your feature request related to a problem? Please describe.
I'm deploying some complex stuff by using an ApplicationSet which based in a values.yaml file that an user push, it deploys an app of apps.
The problem is if I hardcode the version in the image list annotations of the app of apps, if the user change the version, it's not going to be automatically updated for a new digest.

Describe the solution you'd like
I would like to be able of update automatically by "digest" strategy the tag that has been already deployed without having to hardcode it again in the image-list annotation.

Describe alternatives you've considered
Same as we define annotations to specify which is the tag parameter that must be overwriting: argocd-image-updater.argoproj.io/test.helm.image-tag: test.image.tag would be nice to be able of use this also in the image list like:
argocd-image-updater.argoproj.io/image-list: test=repo/test:test.image.tag somehow

As I'm working with Helm, I thought about add the annotations using values templated. But the app of apps is created using a range loop, so I can't add them by just adding the annotation + the helm value like: argocd-image-updater.argoproj.io/image-list: test=repo/test:{.Values.test.image.tag}

Additional context
Any suggestion or way to solve this problem?

@JavierPorron JavierPorron added the enhancement New feature or request label Sep 24, 2024
@chengfang
Copy link
Collaborator

Why is the current digest update strategy not adequate for you? Once you decide on the name of the mutable tag, say latest, you can juse it in image-list annotation with digest update strategy, and image updater should be able to pick up any latest versions. See https://argocd-image-updater.readthedocs.io/en/latest/basics/update-strategies/#strategy-digest

@JavierPorron
Copy link
Author

JavierPorron commented Sep 25, 2024

Why is the current digest update strategy not adequate for you? Once you decide on the name of the mutable tag, say latest, you can juse it in image-list annotation with digest update strategy, and image updater should be able to pick up any latest versions. See https://argocd-image-updater.readthedocs.io/en/latest/basics/update-strategies/#strategy-digest

Because is the user who specifies the tag depending on the valuesObject definition. If I add latest, it will get the latest, but maybe the user only wants the newest digest of tag 1.0.0 and other user wants the newest digest of tag 1.0.1.

Most of the values of the "app of apps" is defined by the user, and can differ a lot from one user to an other. I can preset some default values and some annotations adding the image list with the version, but if the user decides to use a different version from the one I've added by default, it must also be updated when a new digest is builded for that specific tag.

@jannfis
Copy link
Contributor

jannfis commented Sep 26, 2024

So you want the digest of the running image's tag?

@JavierPorron
Copy link
Author

So you want the digest of the running image's tag?

@jannfis yes, I want to update by digest strategy the running imag's tag.

@jannfis
Copy link
Contributor

jannfis commented Sep 30, 2024

What if there are two or more tags of the same image running for a given app?

@JavierPorron
Copy link
Author

JavierPorron commented Oct 1, 2024

@jannfis well I will expect to update them all to the latest digest, otherwise, maybe can be added an exclusion annotation.

@JavierPorron
Copy link
Author

Any updates on this? I would be glad to participate if needed to add this feature, if you're okay with it

@philipp-durrer-jarowa
Copy link

Am I correct that the argo-cd image updater annotations only are supported in Application resources? If the annotations would work at Deployment resource level we could reuse the same values as we use for setting the image itself to have the tag set dynamically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants