Had one a while back where quoted strings containing padded numbers in were used for something. "01" fine ... "05" fine, "06" fine, "07" fine, "08" kaboom. 01-07 were treated as strings and 08 was suddenly being treated as octal, which it's not and exploded.
Try Tanka + Jsonnet to restore some of your sanity, also allows you to keep using Helm during your transition to a better place.
Definitely room for someone to make something better than Helm but I think you should give Jsonnet a shot if you haven't already.
How does it try? How does it fail?
I don't see any interactive CLI commands that could be seen as a replacement for kubectl.
kubectl apply, especially with server side apply is effective just a mechanism to push the declarative definition of your k8s objects to the server.
Pulumi instead tries to manage the lifecycle of each of those objects itself when it really has no business doing so. This results in a lot of roundtrips to the Pulumi state store (which is implemented horrendously inefficiently btw) and generally takes forever and a day compared to kubectl apply.
Most of this is down to an impedance mismatch between the models themselves. Pulumi + k8s works but it's just not a great experience. I say this with an absolute -ton- of experience with both options.
For instance Pulumi also generates random names for resources, again you can override these but again, not very ergonomic to work around etc.
IMO tools like Tanka + Jsonnet, or Cue are just better fit for k8s because you can stick with server side apply which is a much more native experience.
https://www.pulumi.com/registry/packages/kubernetes/how-to-g...
You don’t know something is going to work unless you actually do it.
I wonder if anyone's converted the API spec into json-schema, might be easier to plug into tools then.
edit: yes, and the tooling in front of it. https://github.com/yannh/kubeconform
following on original work from https://github.com/instrumenta/kubernetes-json-schema