3 ms·
Joe Beda (k8s/Heptio) made this same point in one of his TGI Kubernetes videos: https://youtu.be/M_rxPPLG8pU?t=2936 https://youtu.be/M_rxPPLG8pU?t=2936 I agree
by gilbetron 6y ago
Joe Beda (k8s/Heptio) made this same point in one of his TGI Kubernetes videos: https://youtu.be/M_rxPPLG8pU?t=2936 https://youtu.be/M_rxPPLG8pU?t=2936
I agree 100%. Every time I see "nindent" in yaml code, a part of my soul turns to dust.
- theptip 6y ago> Every time I see "nindent" in yaml code, a part of my soul turns to dust. Yup. For this reason it's a real shame to me that Helm won and became the lingua franca of composable/configurable k8s manifests. The one benefit of writing in static YAML instead of dynamic <insert-DSL / language>, is that regardless of primary programming language, everyone can contribute; more complex systems like KSonnet start exploding in first-use complexity.
- qbasic_forever 6y agoI wouldn't say helm has won, honestly. The kubectl tool integerated Kustomize into it and it's sadly way too underutilized. I think it's just that the first wave of k8s tutorials that everyone has learned from were all written when helm was popular. But now with some years of real use people are less keen on helm. There are tons of other good options for config management and templating--I expect to see it keep changing and improving.
- theptip 6y agoAre there good kustomize bases for things like Redis, Postgres, Mysql, etc? My impression is that most "cloud-native" projects ship raw manifests and Helm charts, or just helm charts. By "won" I just mean in terms of community mind-share, not that they built the best thing. But I could be out of date there. I do like kustomize, but the programming model is pretty alien, and they only recently added Components to let you template a commonly-used block (say, you have a complex Container spec that you want to stamp onto a number of different Deployments). Plus last I looked, kustomize was awkward when you actually do need dynamic templating, e.g. "put a dynamic annotation onto this Service to specify the DNS name for this review app". Ended up having to use another program to do templating which felt awkward. Maybe mutators have come along enough since I last looked into this though.
- gilbetron 6y agoCan just default to something like """ apiVersion: v1 appName: "blah" """.FromYaml().Execute() or something.
- hardwaresofton 6y agoSome of us use Make + evnsubst[0] (and more recently make + kustomize[1]) in defiance. I haven't found time to take a look at Helm 3 yet though, it might be worth switching to. [0]: https://www.vadosware.io/post/using-makefiles-and-envsubst-as-an-alternative-to-helm-and-ksonnet/ https://www.vadosware.io/post/using-makefiles-and-envsubst-a... [1]: https://www.vadosware.io/post/setting-up-mailtrain-on-k8s/#step-1-figure-out-how-to-integrate-kustomize-for-templating-with-the-makeinfra-pattern https://www.vadosware.io/post/setting-up-mailtrain-on-k8s/#s...
- ithkuil 6y agoI wish more people who for some reason are otherwise forces to use a textual templating system to output would remember that every json object is a valid yaml value, so instead of fiddling with indent you just ".toJson" or "| json" or whatever is your syntax and it pull get something less brittle. (Or use a structural templating system like jsonnet or ytt)