interestingly enough I've found that using Pulumi ...
# kubernetes
n
interestingly enough I've found that using Pulumi for the deployments themselves is often less than ideal, as it handles some of the state updates wrong or fails to do cleanup appropriately in failure scenarios, figured rednering to yaml and using a different deployment tool would work better
l
I have done some deployments on k8s as well. If the kubernetes provider doesn't behave as expected for updating or cleanup, I consistently filed issues for it. I had a few of these fixed, which made my life easier afterwards.
w
I've found using helm releases with pulumi is best
s
Please file issues for where your experience is less than desirable.
n
I've opened a couple in the past, will do so in the future as well. Usually it's just because the deployment model of pulumi differs from what Kubernetes does in practice quite a bit, e.g. pulumi might think a resource wasn't applied if the healthcheck fails, even though it ended up in the k8s state
c
I had to shelve my entire project and move to helm because of some of these challenges. I still think building a full component with Pulumi would be better than helm in theory. It definitely is a foreign model of work to most though. State tracking has a lot of benefits, but just is so different of a paradigm. I will say I've learned a LOT more about Kubernetes using Pulumi than using helm. Having strongly typed matching for objects was almost like a coach to show how the relationships of objects worked.
I love writing Go and Pulumi so HCL is my last resort now 🙂
n
Yeah I'm familiar with the sentiment, although helm isn't much better at the end of the day unfortunately
Most of the tools in the space aren't actually declarative, including helm with their hooks
When I say they're not actually declarative, I mean how the deployment process itself happens imperatively instead of just pushing new declarations to the k8s state
That in itself is the source of many issues I've seen over the past several years