Giter VIP home page Giter VIP logo

Comments (8)

jannfis avatar jannfis commented on May 30, 2024 1

Unfortunately, as long as Git write-back is not yet implemented, app-of-apps pattern is not supported, I fear. Probably even if you disable self-heal on the parent app, on the next sync of the parent app containing further Application resources, the changes made by Image Updater will be overwritten.

Good news is, that we already laid foundation for supporting parameters stored in application's Git repositor in Argo CD with argoproj/argo-cd#4084 - now we have to connect the pieces, and make Image Updater push this file to Git. When this is done, also app-of-apps use cases will be supported.

Sorry that I can't offer you a quick solution in this case.

from argocd-image-updater.

jannfis avatar jannfis commented on May 30, 2024

Hi @szucsitg, I think this sort of sync loop can occur if you have an app-of-apps pattern, with autosync and self-heal turned on at the parent application. Is this true in your case?

from argocd-image-updater.

szucsitg avatar szucsitg commented on May 30, 2024

Hello @jannfis,
We deploy the repository on the nth level of a dependency tree from another repo, and this repo is using Kustomize. All of our application are set with self-heal and prune.
If I turn off self-heal I guess this would fix the infinite loop, however in such case the Kustomize app which contains these Helm apps will be out of sync all the time.
Sidenote: also we use semver based auto-update for the Helm chart itself.

from argocd-image-updater.

szucsitg avatar szucsitg commented on May 30, 2024

I didn't know about this YAML override, so i learned something new 👍 i guess it would not work either if we move the override parameter to .argocd-app.yaml. though I wonder how this YAML file would work in our case as we have currently multiple Application files within a folder.

from argocd-image-updater.

jannfis avatar jannfis commented on May 30, 2024

The YAML override is a "hidden" feature in Argo CD right now, which we implemented to later support Git write back from image updater in a non-intrusive way :)

There's a good point you've made. I think @alexmt and me discussed this scenario already (multiple apps spawned from same directory in Git), and came to the conclusion that we want to expand the YAML override to support this, i.e. by allowing application specific overrides through a file .argocd-app-<appname>.yaml as well. But we wanted to start with something simple, just to see how this works out. But it's also good to see other use-cases, such as yours.

from argocd-image-updater.

szucsitg avatar szucsitg commented on May 30, 2024

I'm not sure our pattern is ideal, but we have a couple of layers of dependency, Helm mixed with Kustomize back and forth, where we even loop through dynamically templated Argo apps (in Helm). Therefore many cases we have multiple apps within the same folder. Also most of our Kustomize app are multi-folder ones.

from argocd-image-updater.

jannfis avatar jannfis commented on May 30, 2024

I just created an enhancement proposal for Argo CD: argoproj/argo-cd#5003

Feel free to contribute to this discussion :)

from argocd-image-updater.

jannfis avatar jannfis commented on May 30, 2024

With v0.9.0 being released (and hotfixed by v0.9.1), Git write-back is now available (with a strict dependency to Argo CD >= v2.0.0-rc1).

from argocd-image-updater.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.