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

Upgrade Argo CD CRD to v1beta1

XMLWordPrintable

    • 8
    • False
    • None
    • False
    • Hide
      With this update, the Argo CD CRD API version has changed from v1alpha1 to v1beta1 to allow for the breaking changes introduced by the deprecation of `.spec.dex` and some `.spec.sso` fields. To facilitate automatic migration of existing v1alpha1 ArgoCD CRs to v1beta1, conversion webhook support has been introduced.

      Note: By default, the conversion webhook is enabled only for OLM-installed operators. For non-OLM(manual) installations of the operator, enabling the webhook is optional. However, please note that without conversion webhook support, users are responsible for manually migrating any existing ArgoCD v1alpha1 CRs to v1beta1.
      Show
      With this update, the Argo CD CRD API version has changed from v1alpha1 to v1beta1 to allow for the breaking changes introduced by the deprecation of `.spec.dex` and some `.spec.sso` fields. To facilitate automatic migration of existing v1alpha1 ArgoCD CRs to v1beta1, conversion webhook support has been introduced. Note: By default, the conversion webhook is enabled only for OLM-installed operators. For non-OLM(manual) installations of the operator, enabling the webhook is optional. However, please note that without conversion webhook support, users are responsible for manually migrating any existing ArgoCD v1alpha1 CRs to v1beta1.
    • GITOPS Sprint 243

      Story (Required)

      Upgrade ArgoCD CRD api version in argocd-operator from v1alpha1 to v1beta1.

      Background (Required)

      GITOPS-2473 introduced break changes in ArgoCD CRD. According to best practices, we should update CRD api version for breaking changes in CRD.

      https://redhat-internal.slack.com/archives/C048WUV584F/p1688069114593959 

      Out of scope

      GITOPS-2473 removed .spec.dex and some of .spec.sso fields which leads to breaking user experience in ArgoCD v1alpha1 CRD. Handling that is out of scope for this story.

      Approach (Required)

      1. Create new API version(v1beta1) of ArgoCD CRD
      2. Mark the new version as the storage version
      3. Implement API version conversion: mark new version as hub & implement ConvertTo/ConvertFrom func in old version
      4. Setup conversion webhook
      5. Add unit/e2e tests

      Refer https://book.kubebuilder.io/multiversion-tutorial/tutorial.html for details.

      Acceptance Criteria (Mandatory)

      1. New API version(v1beta1) should be added for ArgoCD CRD
      2. Conversion of API version v1alpa1 to v1beta1 should be automatically handled

      Done Checklist

      • Code is completed, reviewed, documented and checked in
      • Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
      • Continuous Delivery pipeline(s) is able to proceed with new code included
      • Customer facing documentation, API docs etc. are produced/updated, reviewed and published
      • Acceptance criteria are met

            rh-ee-sghadi Siddhesh Ghadi
            rh-ee-sghadi Siddhesh Ghadi
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: