Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
We wouldn't like to install helm on our cluster (because security considerations and overhead - we wouldn't use it for anything else), so we are not able to install cert-manager.
What you expected to happen:
Find docs about how to install cert-manager without helm as a dependency.
Anything else we need to know?:
Currently the README states:
The easiest way to deploy cert-manager into your cluster is to use the Helm chart
But I wasn't able to find another way (as the whole deployment is expressed as Helm files).
Possible solutions:
cert-manager馃憤 I'd like to explore different ways we can do this without our 'standard YAML' and Helm templates diverging.
Helm does provide the helm install --dry-run --debug option, which will 'dump' all the YAML that would have been sent to the apiserver locally. Perhaps this could be used as part of our CI process to ensure our example files are up to date.
In the meantime, if you'd like to get started with cert-manager I'd recommend you running helm install --dry-dry --debug ./contrib/charts/cert-manager, which should output a load of YAML which can be used for deploying cert-manager.
Thanks for the super quick response!
Having the CI generate the YAML files would be a good option. However, helm requires tiller to be running even with the dry-run option (I had to run the command you suggested after helm init on a Minikube, works nicely 馃憦 - but didn't try yet loading the yaml output against our cluster), so not sure how that would work out with CI.
Another possibility would be to add a short paragraph in the README about how to generate the YAML. I can PR that if it sounds like a good idea to you.
@munnerz @f-f you can use the helm template command to locally render a chart to YAML. You don't need tiller, as the template command doesn't validate the output with the cluster. You can render the whole chart or just specific templates.
Good idea @munnerz to generate sample YAML during CI. Since most people seem to use helm these days, static samples will quickly get out of date.
Render chart templates locally and display the output.
This does not require Tiller. However, any values that would normally be
looked up or retrieved in-cluster will be faked locally. Additionally, none
of the server-side testing of chart validity (e.g. whether an API is supported)
is done.
To render just one template in a chart, use '-x':
$ helm template mychart -x templates/deployment.yaml
Usage:
helm template [flags] CHART
Flags:
-x, --execute stringArray only execute the given templates
--kube-version string override the Kubernetes version used as Capabilities.KubeVersion.Major/Minor (e.g. 1.7)
-n, --name string release name (default "RELEASE-NAME")
--name-template string specify template used to name the release
--namespace string namespace to install the release into
--notes show the computed NOTES.txt file as well
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
-f, --values valueFiles specify values in a YAML file (can specify multiple) (default [])
Thanks very much for that tip @whereisaaron! I was not aware of this, and was about to write an ugly parser for the output of helm install --debug --dry-run. I've opened #276 that fixes this issue, and uses the helm template command to both update and verify the generated manifests!
Most helpful comment
馃憤 I'd like to explore different ways we can do this without our 'standard YAML' and Helm templates diverging.
Helm does provide the
helm install --dry-run --debugoption, which will 'dump' all the YAML that would have been sent to the apiserver locally. Perhaps this could be used as part of our CI process to ensure our example files are up to date.In the meantime, if you'd like to get started with cert-manager I'd recommend you running
helm install --dry-dry --debug ./contrib/charts/cert-manager, which should output a load of YAML which can be used for deploying cert-manager.