argo-helm icon indicating copy to clipboard operation
argo-helm copied to clipboard

[Release] Helm charts for deploying ArgoCD CRDs

Open sbose78 opened this issue 3 years ago • 8 comments

Given that Helm doesn't "upgrade" CRDs in /crds, we might want to consider maintaining two charts per release.

  1. One chart which has the CRDs in /templates
  2. Another chart that references (1).

Happy to hear what the community thinks.

sbose78 avatar Jan 20 '21 21:01 sbose78

( sorry, this isn't a bug per se )

sbose78 avatar Jan 20 '21 21:01 sbose78

I like the sound of this idea @sbose78 and matches exactly the recommendations made here by helm project.

I am facing this issue as I have one instance or argo for all our clusters, regularly upgrading it. But as the CRDs are evolving.. I can't make use of all the features. currently.

I am interested to see how everyone else is getting around the issue of updating the crds when helm installed. Is everyone else just getting the yaml files and updating?

hawksight avatar Jan 28 '21 15:01 hawksight

Stale issue message

github-actions[bot] avatar May 02 '21 02:05 github-actions[bot]

What is the best way to automate updating CRDs since they aren't part of the Helm chart anymore?

jppitout avatar May 10 '21 07:05 jppitout

I would suggest the following:

  • If the new "incoming" CRDs don't have any breaking changes, it should be simple enough to apply the new CRDs and then install/upgrade the helm release.
  • If the new "incoming" CRDs do have breaking changes, it might be a little harder in which case we are probably talking about an "migration" flow for the existing CRs which would have to be done manually or using an "operator".

From a pure Helm standpoint, We could be packaging CRDs into a different chart and using it as a dependency chart.

On Mon, May 10, 2021 at 3:34 AM Jean-Pierre Pitout @.***> wrote:

What is the best way to automate updating CRDs since they aren't part of the Helm chart anymore?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/argoproj/argo-helm/issues/550#issuecomment-836300770, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEFEAFC637OJW4KOCBJBMDTM6EA3ANCNFSM4WLK5FGA .

sbose78 avatar May 10 '21 13:05 sbose78

Thanks for the info!

Our ArgoCD is deployed through a CI/CD pipeline which means manual steps aren't easily handled but any breaking changes should be picked up in our sandbox environment when ArgoCD is deployed there. Based on this use case I think a dependency chart would be great! Also it would help us to tie specific chart versions to CRD versions.

With the current manual installation, is there a way to check which CRD versions should be paired with which chart version?

jppitout avatar May 10 '21 13:05 jppitout

bump

jppitout avatar May 17 '21 07:05 jppitout

For anyone stumbling across this issue in the future... CRD manifests are now tagged with chart version numbers (since 3.x.x) our solution for deploying ArgoCD via CI/CD pipelines was to add this to our code:

curl -L -O "https://raw.githubusercontent.com/argoproj/argo-helm/argo-cd-${ARGOCD_CHART_VERSION}/charts/argo-cd/crds/crd-application.yaml"
curl -L -O "https://raw.githubusercontent.com/argoproj/argo-helm/argo-cd-${ARGOCD_CHART_VERSION}/charts/argo-cd/crds/crd-project.yaml"

kapp deploy --app kapp-argocd-crds \
    --wait-timeout 5m \
    --namespace argocd \
    --yes \
    --file crd-application.yaml \
    --file crd-project.yaml

jppitout avatar Jan 05 '22 13:01 jppitout