kustomize: helmCharts doesn't support --include-crds

Just to add onto the chain for #3816 and #3815:

The new Helm chart inflator implementation should provide a way to set the --include-crds flag for the helm template step

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 2
  • Comments: 16 (10 by maintainers)

Most upvoted comments

@KnVerey – I was thinking about having it set to false by default, just so when / if we enable this, it doesn’t cause surprises for users. It’d be a new field on the HelmChart struct so that users can set it like:

apiVersion: builtin
kind: HelmChartInflationGenerator
metadata:
  name: argo-applicationset
name: argo-applicationset
version: 3.1.3
repo: https://argoproj.github.io/argo-helm
releaseName: octopus
includeCRDs: true # <--- here
valuesInline:
  pspEnabled: false
  serviceAccount:
    create: false

Thoughts?

Under what circumstances will folks using these charts via Kustomize (so not running helm install) want to exclude CRDs that the chart includes? In other words, do we need to expose the option to enable them, or do we just need to enable them globally in the generator?

I think the CRDs are just part of the helm chart and should not be omitted. When you execute helm install, helm will also install the CRDs if they are not already present.

Our CI pipeline takes a single kustomization.yaml as input and outputs a single kubernetes manifest (as a single file) that must include everything that is necessary to deploy the application. For this example, we try to deploy Traefik. Obviously, Traefik (when using the IngressRoute provider) doesn’t work without CRDs, so there is currently no way to build a complete kubernetes manifest using Kustomize when using helm charts as sources.

By the way, our CI system is not connected to the internet. The chart file charts/traefik-9.18.3.tgz is committed to the repo, so there are no security implications to consider.