Twitter thread I had about it a while ago: https://twitter.com/dpc_pw/status/1182022825361625088
Twitter thread I had about it a while ago: https://twitter.com/dpc_pw/status/1182022825361625088
This is more or less exactly what we’re working on at Pulumi. Using a language like TypeScript to describe Kubernetes infrastructure provides a nice mix of simple JSON-like resource definition, strong typing, and the ability to use variables, loops, functions, classes, packages, test frameworks, and more from an expressive general purpose programming language. You still have access to the full fidelity of the raw Kubernetes API, but also all the tools you need to apply proper software engineering on top of it.
Anyway - from what you're saying, that's exactly what I'm looking for.
This had to be pointed out; Pulumi's docs repeat the adjective "real", as if its competitors aren't real. "real code", "real package management" [2], "real languages" [3], "real programming model" [4]... Nix and Dhall are quite real, though. So is this an incomplete survey, or are Pulumi's docs unrealistically self-aggrandizing? TBH even just this one paragraph of yours is pretty tough to stomach, as if loops and functions in a configuration language were a novel concept.
[0] https://github.com/xtruder/kubenix
[1] https://github.com/dhall-lang/dhall-kubernetes
[2] https://www.pulumi.com/docs/intro/vs/k8s_yaml_dsls/
Cruise built a more complex DSL on top of it: https://github.com/cruise-automation/isopod
For what it's worth, that's what AWS cdk is. Not for k8s but for AWS CloudFormation yaml templates. https://docs.aws.amazon.com/cdk/latest/guide/home.html