Live data from Hacker News

Yglu: YAML augmented with an expression language

yglu.io

11–20 of 31 posts

Re: Yglu: YAML augmented with an expression language

#11
post #2

What is this for? YAML in my experience is used for writing and maintaining config at some supposed sweet-spot between human-readable and machine-readable structure. In my experience also, YAML is already too feature-laden for it's own good in this regard, when what people usually want is just a more human-readable JSON. Using Yglu for config seems like a bad idea (the whole point of config is that it's not code!) -…

Automated config management.

As for YAML itself, it is handy to have some advanced functionality in a non-turing complete serialization format for the sake of things like security. It's not perfectly analogous, but PostScript is an example of a format that ideally should have been just a descriptive format for the purposes it was intended for, but being Turing complete makes it a security risk

Re: Yglu: YAML augmented with an expression language

#13
post #2

What is this for? YAML in my experience is used for writing and maintaining config at some supposed sweet-spot between human-readable and machine-readable structure. In my experience also, YAML is already too feature-laden for it's own good in this regard, when what people usually want is just a more human-readable JSON. Using Yglu for config seems like a bad idea (the whole point of config is that it's not code!) -…

For large, repetitive configurations (Kubernetes configs, CloudFormation templates, CI job configurations, etc) you often want ways to abstract and/or DRY your configurations. Kubernetes folks use mustache/jinja/Go templates via Helm, which is a real mess. CloudFormation builds its own (shitty) evaluation language on top of YAML. This presumably aims to improve on those sort of hacky solutions. I feel strongly that t…

That's what I've been finding a lot lately. Kubenetes manifests have very complete schemas, but there's not really any official concise way to express them or relations between them.

I've come to the conclusion that helm/templating is awful. Every helm chart I've ever seen suffers from the kitchen sink problem. Dependencies don't really address the problem either, because that's not really resolving a whole lot in the end.

What I've found so far is that Kustomize strikes a solid balance between an off the shelf working config provided from official sources, and making changes myself to suit my environment. Instead of the developer maintaining a kitchen sink approach, they can have something (or a set of somethings) that are straight forward, and I can maintain a set of tweaks that work for me. Unfortunately Kustomize's documentation is not that great, and it is incredibly awkward to work with.

I'm hoping that solid operators come out for most applications instead of helm charts. I'm not 100% sure that they're going to be substantially better than helm, but I'm hoping between operators and kustomize I can link applications together in a way that I get properly maintained applications for minimal effort (ala AWS), without having to maintain a large code base linking all the bits together.

I do think I need to look into pulumi as it might be in the direction I want to go, but I remain skeptical.

Terraform has some good ideas, but is too rigid for kubernetes, and I feel like I'm giving up the flexibility of kubectl. I like the idea of having a state and resolving differences between desired and actual state, but not enough to rewrite everything in HCL.

Post reply on HN