It's a marketing post, but since you and me are here already:<p>Replace YAML with proper "general purpose" featureful configuration language like Nix (or a typed version of it: Nickel). You could do Dhall or Jsonnet, but IMO, Nix is the way to go and keeps gaining traction.<p>Abandon Dockerfiles, and let the containers be described in the same general purpose language (see <a href="https://nixos.wiki/wiki/NixOS_Containers" rel="nofollow">https://nixos.wiki/wiki/NixOS_Containers</a> ), that the cluster can build and handle the same way.<p>Have the cluster itself be described in the same configuration language.<p>Wrap it all the proper document library APIs, so the most common use-cases, are a handful of code, with ability to expand to lower level details once it needed. Hey, did I mention that we have a general purpose configuration language that makes it possible?<p>At the end it should be possible to `git init .`, write 10 lines of Nix code (import stdlib, import 1 node standard cluster, run a servive with hello-world application), call `deploy-this` with your cloud access key and get a k8s cluster with a hello world application behind a TLS.<p>Then when you decide you need more nodes, more services, you just add new lines, or rewrite existing high level ones into more detailed calls.<p>All of this currently required gluing tons of things together (Docker, Terraform, kops, Helm, Kustomize, ArgoCD and what not) all using different programming languages, xmls, jsons, yamls, HCLs, Dockerfiles and so and so.