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-versions
flag 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-version
parameter. 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.GitVersion
object: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.Has
do 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-version
and now--api-version
, ArgoCD has all required information to process correctly Helm Charts that leveragesCapabilities
Object.@jessesuen I think we have two issues here. One for
--kube-version
and one for--api-version
. The latter depends on a Helm upstream fix. I’ll create a new issue.