Replies: 5 comments 7 replies
-
I'm stucked in the same place... I work in a company with 100+ clusters and everyday we setup a new one.. Today we bootstrap our "cluster tools apps" using an internal automation that is not ideal. I was going for App-of-Apps pattern but noticed the same thing as you, that this is probably going to be deprecated in favor of ApplicationSet but (again) like you, i think applicationSet is not ideal for now. In my case, i need to install some tooling (Logging collectors, metrics collectos, APM agents etc) and i need to be able to use sync waves and most important, be able to upgrade this tools if needed. |
Beta Was this translation helpful? Give feedback.
-
I would like ArgoCD to KEEP app-of-apps and even expand it to app-of-app-of-apps. Ideally, I manually apply one app (to ArgoCD) that points to a dir in my github repo where I have many app-of-apps configs. This way I don't have to constantly manually create app-of-apps in ArgoCD. This also gives the benefit of using sync-waves. This seems to be the most simple and straightforward implementation.
|
Beta Was this translation helpful? Give feedback.
-
To be super clear: app-of-apps is not deprecated. The idea of deploying Applications (which are just Kubernetes resources) from another Application is fundamental to how Argo CD works. It would be difficult to remove even if we wanted to. As for the hackiness: yes, it does have limitations, bugs, and idiosyncrasies. And ApplicationSets (or something else) may be better for some use cases. But all tools have limitations, bugs, and idiosyncrasies. Many of them are documented in issues, but more are always appreciated! |
Beta Was this translation helpful? Give feedback.
-
I use app-of-apps and ApplicationSet at the same time: app-of-apps for the very first bootstrapping, with actually two levels of app-of-apps, and then AppSet for self service by the teams mainly. Both are useful and complementary IMHO. |
Beta Was this translation helpful? Give feedback.
-
AppSets Good for instantiating the same Application structure with different parameters stored in Git repositories Example use case: Managing the same product across multiple cloud regions or across stages in a Continuous Delivery pipeline (dev/test/stage/prod) App-of-Apps Good for instantiating disparate Applications that make up a larger Applications. Example use case: Deploying a product that a frontend application backed by multiple micro-services and data stores. Net: |
Beta Was this translation helpful? Give feedback.
-
Hi all,
I’ve been playing with ArgoCD for the last two months. I’ve made some good progress along the way, but I currently feel stuck between a rock 🪨 and a hard place 🧱. To me it seems ArgoCD is leaning towards making Applicationsets the recommended way to work with ArgoCD above the
app-of-apps
pattern approach.Looking at the current state of both approaches, I find it hard to decide which option to go for. They both seem to have their pro’s and cons. In case of
apps-of-apps
having an extra parent app to manage apps come across as hacky to be honest (Just seeing that app in the UI next to the other apps feels weird). ApplicationSets on the other hand are still a bit limited in their level of flexibility / featureset.#9437 (which is included in the
v2.6
release) seems to be an interesting alternative approach tosync-waves
, which was not possible before whilst using appsets.My main issue that I have with Applicationsets is that they are not easily templateable enough. #11567 might solve that, but it also adds extra complexity. In an ideal world 💅 I would like to use appsets to generate applications, but allow for extra overlays per app (Perhaps through
Kustomize
) to easily customise things likesyncPolicy
andingoreDifferences
.As of now I could alternatively write regular application manifests and then using Kustomize and some scripting to bootstrap a cluster, but then I would have no support for
sync-waves
orprogressive rollouts
in case of appsets. Adding a possibility for application dependencies (FluxCD has a similar approach) would probably make me pick this approach.So to sum up why I feel stuck and why this kind of feels like a trilemma. Either I go for:
App-of-apps
which feels deprecated and hacky, but I get full application flexibility through helm templating +sync-waves
ApplicationSets
which currently is hard / complex to customise on a per app basis, but allows for progressive rollouts.sync-wave
support across apps.Interested to get thoughts from others within the community. Are there other approaches I maybe haven't thought about?
Beta Was this translation helpful? Give feedback.
All reactions