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

R & D: Enhancing the operational experience of Argo CD

XMLWordPrintable

    • R & D: Enhancing the operational experience of Argo CD
    • False
    • False
    • Done
    • Undefined

      Summary

      Configuring Argo CD can be an arduous process with a growing number of configuration knobs in large configmaps and secrets. Example https://argoproj.github.io/argo-cd/operator-manual/argocd-cm.yaml

      This enhancement proposal aims to introduce a set of strongly typed APIs a.k.a CRDs to make configuration of clusters, repository credentials, and health checks.

      Motivation

      • Make it extremely hard for operators to enter incorrect configuration.
      • Operators should be able to define key configuration information as custom resources.
      • Use the Kubernetes best practices to deprecate API attributes ( example ) .
      • Provide feedback to operators as information in the `.status` section of the configuration object or deny admission of an incorrectly formatted configuration.

       

      Goals

      • Build a set of operator-focused APIs that hide the configuration information that goes into argocd-cm.yaml
      • Use the operator-focused APIs to convey compatibility information to operators.

       

          Non-Goals

       

      Proposal

      1. Define & manage a set of CRD/Controllers in a separate Github repository that simplify configuration of Argo CD.  
      2. Define a Repository CRD and controller which watches Repository CRs and configures the relevant configmaps. argoproj/argo-cd/issues/5720
      3. Define a CustomHealthCheck CRD and controller which watches CustomHealthCheck and  configures the relevant configmaps  argoproj/argo-cd/issues/5506
      4. Define a ArgoCDConfig CRD and controller which watches ArgoCDConfig CRs and configures relevant configmaps that captures the equivalent of https://argoproj.github.io/argo-cd/operator-manual/argocd-cm.yaml for areas which aren’t covered by other CRDs.
      5. argoproj/argo-cd/issues/5721Define a ConfigManagementPlugin CRD and controller which watches ConfigManagementPlugin CRs and configures the appropriate workloads

       These CRDs need may live with the Argo CD Operator project.

       

      Use cases

      Use case 1:

      As an operator, I wish to add/remove repository configurations following an OpenAPI Validation Schema.

      Use case 2:

      As an operator, I wish to add/remove custom health checks following an OpenAPI Validation Schema.

      Use case 3:

      As an operator, I wish to configure ArgoCD  following an OpenAPI Validation Schema. 

       

              isequeir@redhat.com Ishita Sequeira
              shbose Shoubhik Bose
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: