Skip to content

Sync Waves (aka ordering) Application Sets and Apps #70

Open
@csantanapr

Description

@csantanapr

This is an issue to capture the different solutions to have order of installation for application sets and apps.

Background:

  • ArgoCD sync waves applied to all resources (that a health status/condition can be deduce) under a single App except for two type of resources:
    • ArgoCD App: for this you need special config in lua script to add the health condition to ArgoCD App
    • ArgoCD ApplicationSet: the application sets are installed in order, but the delay between them is 2 seconds, the controller can't wait until the appset is healthy to move to the next appset. For this there is no workaround today to get the status with lua script, this needs to be added to ArgoCD as PR

There are 2 ways today you can do ordering when workign with Application Sets

  1. You can set a sync wave number on an Application Set and increase the delay between syncs from 2 seconds higher like 30 seconds. This only is applicable if you are installing application sets for single cluster, meaning each cluster in your fleet of clusters has an instances of argocd and the group of application sets for addons is deployed to each independently of each other (ie. Not doing hub-spoke) here is an example https://github.com/csantanapr/argocd-experiments-syncwaves
  2. You can implement a presync in the App generated by the application set. This presync will run a kube job that has kubectl CLI and a script that will check for the dependency before exit with 0, the check can be on another deployment (cert manager deployment) or check that CRDs exist.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions