Comment by dilyevsky
8 hours ago
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).