CRDs and Helm

Matt Farina

Consider this email an invitation to get involved.

Wouldn’t it be good if Helm was better with CRDs? Helm currently has the `crd-install` lifecycle hook. In charts we can use the Capabilities to detect if a CRD is already present (with improvements in that coming). But, people want more. How do we get there?

CRDs are hard for several reasons:
  • They are still in beta. Some changes are likely still coming. Helm has a strong focus on stability. Kubernetes has a beta deprecation policy for APIs and is now starting to exercise it for some objects that have GA versions.
  • CRDs are global and require high level access to install them. CRDs are being used for a wide variety of things including applications. Some who want to install these do not have access to install CRDs
  • How should CRD updates be handled? What if two people install a chart with the same CRD and those two installations are for applications in different namespaces and there is no knowledge between the two?

This is just to illustrate the complexity. There is more to it.

There have been some ideas and discussion on the topic including:

Both of these have issues that need to be designed around.

Do you have ideas on making this work or solving some of the design problems? If so, we welcome the insight and help.

Matt Farina