Uploaded image for project: 'OpenShift GitOps'
  1. OpenShift GitOps
  2. GITOPS-6238

Integrate the progressive sync feature to the ArgoCD UI

XMLWordPrintable

    • Integrate the progressive sync feature to the ArgoCD UI
    • False
    • Hide

      None

      Show
      None
    • False
    • In Progress
    • SECFLOWOTL-99 - AppSet Progressive Sync GA
    • 0% To Do, 0% In Progress, 100% Done
    • Hide
      Progressive Sync is an advanced feature designed to improve application rollout strategies by managing application synchronization stages across clusters. OpenShift GitOps (based on Argo CD) now integrates Progressive Sync support by introducing a Progressive Sync Status panel on the Application details view. This enhancement allows users to visually monitor the status and wave of an application when deployed via an ApplicationSet with a RollingSync strategy. Previously, users could only configure Progressive Sync through ApplicationSet YAML. Now, the UI displays real-time status, wave information, and health for each Application, improving operational awareness and troubleshooting during progressive deployments.

      Prerequisites
      1. OpenShift GitOps Operator installed (based on Argo CD v2.6.0+)
      2. Progressive Syncs feature enabled in the ApplicationSet controller:
         - Add --enable-progressive-syncs to the controller deployment
         - Or set ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS=true in the controller environment
         - Or set applicationsetcontroller.enable.progressive.syncs: true in the argocd-cmd-params-cm ConfigMap
      3. ApplicationSet configured with strategy.type: RollingSync

      Example: Enabling and Viewing Progressive Sync in OpenShift GitOps
      1. Enable Progressive Rollouts in the ApplicationSet Controller
      Progressive Syncs must be explicitly enabled for the ApplicationSet controller in OpenShift GitOps.
       You can enable it using one of the following methods:
      Add extraCommandArgs to the ArgoCD Custom Resource (CR)
      If you installed OpenShift GitOps using the Operator, you likely have an ArgoCD CR in the openshift-gitops namespace.
       Add the following to the spec section of your ArgoCD CR:
      yaml

      apiVersion: argoproj.io/v1alpha1
      kind: ArgoCD
      metadata:
        name: openshift-gitops
        namespace: openshift-gitops
      spec:
        applicationSet:
          extraCommandArgs:
          - --enable-progressive-syncs

      Or

      oc patch argocd openshift-gitops -n openshift-gitops --type merge -p '{"spec":{"applicationSet":{"extraCommandArgs":["--enable-progressive-syncs"]}}}'

      Save the changes. The Operator will automatically reconcile and update the ApplicationSet controller deployment.

      Option 2: Set env in the ArgoCD Custom Resource (CR)
      Alternatively, you can set the environment variable for the ApplicationSet controller using the env field in the ArgoCD CR:
      yaml

      apiVersion: argoproj.io/v1alpha1
      kind: ArgoCD
      metadata:
        name: openshift-gitops
        namespace: openshift-gitops
      spec:
        applicationSet:
          env:
           - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS
             value: "true"

      Or
      oc patch argocd openshift-gitops -n openshift-gitops --type merge -p '{"spec":{"applicationSet":{"env":[{"name":"ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS","value":"true"}]}}}'

      Save the changes. The Operator will automatically reconcile and update the ApplicationSet controller deployment.
      Show
      Progressive Sync is an advanced feature designed to improve application rollout strategies by managing application synchronization stages across clusters. OpenShift GitOps (based on Argo CD) now integrates Progressive Sync support by introducing a Progressive Sync Status panel on the Application details view. This enhancement allows users to visually monitor the status and wave of an application when deployed via an ApplicationSet with a RollingSync strategy. Previously, users could only configure Progressive Sync through ApplicationSet YAML. Now, the UI displays real-time status, wave information, and health for each Application, improving operational awareness and troubleshooting during progressive deployments. Prerequisites 1. OpenShift GitOps Operator installed (based on Argo CD v2.6.0+) 2. Progressive Syncs feature enabled in the ApplicationSet controller:    - Add --enable-progressive-syncs to the controller deployment    - Or set ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS=true in the controller environment    - Or set applicationsetcontroller.enable.progressive.syncs: true in the argocd-cmd-params-cm ConfigMap 3. ApplicationSet configured with strategy.type: RollingSync Example: Enabling and Viewing Progressive Sync in OpenShift GitOps 1. Enable Progressive Rollouts in the ApplicationSet Controller Progressive Syncs must be explicitly enabled for the ApplicationSet controller in OpenShift GitOps.  You can enable it using one of the following methods: Add extraCommandArgs to the ArgoCD Custom Resource (CR) If you installed OpenShift GitOps using the Operator, you likely have an ArgoCD CR in the openshift-gitops namespace.  Add the following to the spec section of your ArgoCD CR: yaml apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata:   name: openshift-gitops   namespace: openshift-gitops spec:   applicationSet:     extraCommandArgs:     - --enable-progressive-syncs Or oc patch argocd openshift-gitops -n openshift-gitops --type merge -p '{"spec":{"applicationSet":{"extraCommandArgs":["--enable-progressive-syncs"]}}}' Save the changes. The Operator will automatically reconcile and update the ApplicationSet controller deployment. Option 2: Set env in the ArgoCD Custom Resource (CR) Alternatively, you can set the environment variable for the ApplicationSet controller using the env field in the ArgoCD CR: yaml apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata:   name: openshift-gitops   namespace: openshift-gitops spec:   applicationSet:     env:      - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS        value: "true" Or oc patch argocd openshift-gitops -n openshift-gitops --type merge -p '{"spec":{"applicationSet":{"env":[{"name":"ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS","value":"true"}]}}}' Save the changes. The Operator will automatically reconcile and update the ApplicationSet controller deployment.

      Epic Goal

      Make the progressive sync feature as a first class feature in Argo CD UI, to be able to easily see the status and progress of a rolling sync

      Upstream Reference

      https://github.com/argoproj/argo-cd/issues/14463

      Acceptance Criteria

              rh-ee-atali Atif Ali
              rh-ee-anjoseph Anand Francis Joseph
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: