argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
17.42k stars 5.29k forks source link

Sync waves/phases doc needs more clarity #11264

Open lexey-evergreen opened 1 year ago

lexey-evergreen commented 1 year ago

Summary

The Sync Phases and Waves doc does not offer clarity around a couple of key ideas, namely:

Motivation

When a user is trying to determine how to apply sync waves/phases, it would be helpful to have a better understanding of which use cases can be solved by them, how they actually work, and some common gotchas.

Proposal

Add a few sections to the Sync Phases and Waves doc.

A section about sync contexts

This paragraph should talk about the scope of sync contexts, how they're created, and how they're related/unrelated to each other. I don't really understand this myself, so I can't give more specific guidance about the contents of this paragraph.

A section about which resources work with sync waves/phases

The purpose of this paragraph is to clarify that sync waves/phases only function properly with some resources. This is essentially a dedicated gotcha paragraph.

Sync waves/phases examples

Possibly the most helpful addition to the doc would be a couple of examples of using sync waves/phases. Ideally, each of these examples include a few things:

Here are a few ideas for examples:

nothingofuse commented 1 year ago

heres a gotcha: argocd will not wait for or report on the completion of resource hooks.

In the linked video they state that argocd will "wait until they are all green before proceeding" when discussing resource hooks. what they mean by this is that it will create the job resource, but it will not wait for the completion of that job, and if the job fails that is in no way reflected in the apps health or synced statuses.

this fire-and-forget behavior makes resource hooks completely useless for the use cases the docs outline here: https://argo-cd.readthedocs.io/en/latest/user-guide/resource_hooks/