argo-helm
argo-helm copied to clipboard
[Release] Helm charts for deploying ArgoCD CRDs
Given that Helm doesn't "upgrade" CRDs in /crds
, we might want to consider maintaining two charts per release.
- One chart which has the CRDs in
/templates
- Another chart that references (1).
Happy to hear what the community thinks.
( sorry, this isn't a bug per se )
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?
Stale issue message
What is the best way to automate updating CRDs since they aren't part of the Helm chart anymore?
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 .
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?
bump
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