5 ms·
> And then there is Helm Right, who doesn't want to template hundreds of lines of code in a language that uses whitespace for logic and was never made neither
by sofixa 2y ago
> And then there is Helm
Right, who doesn't want to template hundreds of lines of code in a language that uses whitespace for logic and was never made neither for templating nor complex long documents(YAML)? What could possibly go wrong ("error missing xxx at line 728, but it might be a problem elsewhere").
- xnickb 2y agoBut my infrastructure is code! Can't you see how it's all in git?
- benterix 2y agoWhat's wrong with having your infrastructure as code and storing it in Git?
- sofixa 2y agoNothing. Even if it's objectively terrible (thousands of lines of templated YAML, or thousands of lines of spaghetti bash), being in Git as code is still better. At least you know what it is, how it evolved, and can start adding linting/tests.
- benterix 2y agoI manage large IaC repos and it's mostly HCL, well-structured and easy to work with. Where we have Kubernetes manifests, they're usually split into smaller files and don't cause any trouble as normally we usually don't deploy manifests directly.
- xnickb 2y agoYAML isn't code. Same as your reply, YAML has very little awareness of context.
- benterix 2y agoIn computer science, the word "code" has a very specific meaning, and markup languages definitely fit this definition.
- spoiler 2y agoHonestly, Helm kinda sucks (for all the reasons you mentioned). But Kustomize is very nice. Although, their docs could be a bit better.
- fredrb 2y agoIt’s not that bad if you need to deploy at least 3 things and for most cases it beats the alternatives. You can get away with a bootstrapped deployment yaml and a couple of services for most scenarios. What should you use instead? Vendor locked app platforms? Roll out your own deploy bash scripts? Sure the full extend of Kubernetes is complicated and managing it might be a pain, but if you don’t go bonkers is not that hard to use it as a developer.
- ithkuil 2y agoI wonder why people don't use fromYaml + toJson to avoid stupid errors with indent. Yaml is for all intents and purposes a superset of JSON so if you render your subtree as JSON you can stick it in a Yaml file and you don't need to care with indentation.
- ndthrowaway 2y ago"in a language that uses whitespace for logic" This argument kind of died when python became one of the most popular programming languages used.
- everforward 2y agoIt’s not completely that white space is bad, but in particular that white space is very difficult to template relative to something character-delimited like JSON or s expressions. In JSON or s expressions, the various levels of objects can be built independently because they don’t rely on each other. In YAML, each block depends on its parent to know how far it should be indented, which is a huge pain in the ass when templating.
- oblio 2y agoYeah, but Python has actual for loops.
- cassianoleal 2y agoPython uses whitespace for scoping - not for logic. That said, the same is true for YAML.
- k8sToGo 2y agoI don’t like helm itself. But I was referring to the deployment part. I like Kustomize more.