As companies become more and more advanced in their Kubernetes usage, the more they will want to customize the kube-api-server for their needs. This is mainly done through the use of CRDs (Custom Resource Definitions) with some of the most popular uses I’ve seen being the Prometheus Operator Helm Chart.
At Harness, we allowed our Helm users to avoid the pitfalls of Tiller and RBAC by building out our own templating process where we concatenate the values and the chart into a manifest file, which we then deploy using kubectl. This process also enables you to do Blue/Green and Canary deployments with Helm Charts.
However, there is an issue with this process when considering CRDs. The Validation process of the manifest file, with the CRDs in it, will fail and prevent you from being able to deploy it. As a fix for this (until we add a more permanent fix in the future) is to disable the dry-run for the deployment.
To use this feature, you’ll want to go to the Workflow,
click on the Deployment step in the Deployment Phase
and then check the box that says “Skip Dry-Run”
This will still build the manifest for you, but will not run the Validation step, allowing the deployment to pass beyond the typical point where it fails!
Hopefully this helps!
Don’t forget to Like/Comment/Share!