I have a helm chart A which depends on a third-party subchart B. Chart B defines some CRDs which are used by chart A. However, when I install chart A (hence B too), I get an error saying that the CRDs are not recognized. It seems that the CRs are being stored before CRDs.
Helm documentation about CRD describes two ways to handle this order, either put the CRDs in a folder called crds, or use two separate charts and install them one after the other.
My questions are the following:
- Why doesn't Helm apply first the CRDs regardless of where they are? Why is the crds folder needed? What if the CRDs are in a chart that you don't wish to modify (like in my case)?
- Doesn't the second option make the dependencies specification useless. Can't there be an order of execution for dependencies?
- Is there a way, that I might have overlooked, to still keep 1 chart with a dependency and somehow make sure that the CRDs defined in the dependency are stored before being used? (hooks?)
(you don't have to answer all the questions, an answer to any of them is appreciated)