Huh, why build an entirely proprietary language for this? There are existing toolchains that bend existing rich configuration languages, like Nix [0] or Dhall [1], to produce Kubernetes object definitions. In this way, not only can existing libraries be leveraged, but no new semantics have to be learned, and no third party needs their palms crossed.
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.
I would imagine that a "real programming language" here means not only any Turing-complete language but also a language that has been consistently at the top 10 most popular programming languages in the world for a while (which javascript is, and typescript is its superset).
I would hope that we can do better than that. Both Nix and Dhall are designed for readability in the limited niche of configuration management, and their authors considered that design choice to be important enough on its own to merit a new language. Dhall is explicitly not Turing-complete.
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/
[3] https://www.pulumi.com/docs/intro/vs/chef_puppet_etc/
[4] https://www.pulumi.com/docs/intro/vs/custom/