argo-cd: Helm Capabilities built-in object is not supported by repository server
Capabilities built-in helm object contains information about capabilities which target K8s cluster supports. Argo CD uses helm template to generate chart manifests without specifying the target cluster version. As a result Capabilities field is always empty and charts which depend on it cannot work properly.
The helm template is going to get --api-version flag in https://github.com/helm/helm/pull/5392 . Argo CD should leverage --api-version flag as soon as PR is merged.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 18 (8 by maintainers)
PR https://github.com/argoproj/argo-cd/pull/3243 adds
--api-versionsflag support to both helm2 and helm3This should be in 1.4
I see that feature is coming after ArgoCD v1.5 which introduces Helm 3 support. The thing is, Helm 3 template command is not on-par with Helm 2 template, it’s missing the
--kube-versionparameter. So we’re back to square one on this, there is a bunch of Charts in stable (65 as of today) that relies onCapabilities.KubeVersion.GitVersionobject:Is this still planned for 1.4(.x?)? Lots of resources got deprecated in k8s 1.16 and helm charts that rely on
.Capabilities.APIVersions.Hasdo not work as expected.You’re right and there are big boys in that list (prometheus*, grafana, nginx-ingress, fluentbit…). For now, the only workaround I found is to fork the Helm Charts and remove the Capabilities checks to make it run using ArgoCD. Can’t wait to drop these forks though…
Helm2 is still supported. ArgoCD is using Helm3 binary only if chart has
apiVersion: v2.FYI, https://github.com/helm/helm/pull/5392 has been merged! Using
--kube-versionand now--api-version, ArgoCD has all required information to process correctly Helm Charts that leveragesCapabilitiesObject.@jessesuen I think we have two issues here. One for
--kube-versionand one for--api-version. The latter depends on a Helm upstream fix. I’ll create a new issue.