Comment by nvme0n1p1
6 hours ago
The point is not how pretty the strings are. The point is there should be no strings at all. These are computer programs, so they should use normal objects. The python code `my_pod = nignx_pod()` will never throw a syntax error because the result has too many/too few spaces.
You can import the client library and work with types directly if you like. I've done that for years, it works great.
no one is stopping you from importing k8s types as protobufs and writing a program to talk to k8s api via protobuf encoding. all the types are already protos (except CRDs). it's just not the most user-friendly way so most people don't use it.
no, you don't have to resort to imperative protobuf slinging.
https://tanka.dev/
https://www.pulumi.com/
And plenty more exist today. But helm got popular first, so due to the collective action problem it's going to take the industry forever to switch off it.
Isn't this basically crossplane? https://www.crossplane.io/
No, crossplane types are CRDs so ironically you have to use the `unstructured` package for them instead of the proper typed structs in the core client libraries. (Unless you also generate typed libraries for your CRDs).
Of course it will. Just add a few spaces at the front of the line and it’ll throw an error.