Show HN: Gitkube – Deploy to Kubernetes Using Git Push
Keel does a really good job of this, good to see people are starting to have options with their k8 deployments!<p>My two cents:<p>So far my deployments have been pretty painless, so changing over to something like Gitkube &#x2F; keel isn&#x27;t my top priority currently.<p>Configuration management &#x2F; Creating my kubernetes resources ( deployments &#x2F; services &#x2F; ingress &#x2F; etc. ) in a repeatable and elegant way is my biggest pain point by far.<p># Helm<p>I&#x27;ve been very unhappy with Helm.<p>Helm is insanely verbose. Go ahead and take a look at the kubernetes&#x2F;charts repo and look at the various stable charts. Note the huge amount of copy-pasta code hanging out.<p>Too much of my life has been spent wrangling YAML templates that are rendered using the under-featured gotmpl library.<p>Also, helm&#x27;s client library support is less than stellar. Also, schlepping my configurations around is a pain.<p>In Helm, it&#x27;s a crazy amount of code to implement a `ingress -&gt; service -&gt; deployment` pattern that is standard for 99% of kubernetes resources. You have to write the same things over and over, which means that making changes takes forever and is brittle.<p>I believe this is due to gotmpl being a poor templating engine for this use case. It doesn&#x27;t have enough features to allow one to develop decent abstractions over declaring k8 resources<p>The helm tiller doesn&#x27;t expose a restful API or proper tooling to allow other resources to interact with it effectively, making automated deployments a chore. My only option is to call out to the shell and try and be devensive.<p>Finally, Helm doesn&#x27;t really do that great a job of validating my resources are going to be valid. `helm install --dry-run` will tell you everything is great, and then break in the middle of an actual installation, leaving a half-configured mess in it&#x27;s wake.<p># KSonnet<p>KSonnet looks like an attractive option, it&#x27;s certainly less verbose. But the documentation isn&#x27;t there yet, and if you peek under the hood there is a MOUNTAIN of ksonnet code waiting to be read and understood. I belive it&#x27;s going through some churn currently, so features and impovements have been slow to appear.<p>Also KSonnet doesn&#x27;t have enough example implementations to hit the ground running when trying it out on my clusters.<p>Targeting individual contexts in Ksonnet provides some nice additional safety, and some very simple implementations using google KMS or something similar could be a really special way to safely store my secret configs at rest, similar to ansible-vault.<p># Terraform<p>Terraform has this NAILED in the VM space. I declare my environment: `terraform plan` tells me what is going to happen, `terraform apply` checks to ensure I&#x27;ve not protected any of my resources with a flag, and applies the changes it listed if not.<p>I&#x27;d love to write my k8 resources in terraform, but it doesn&#x27;t currently support modern k8 resources, and I don&#x27;t LOVE how terraform handles storing my tfstate files either way.