trying to get into the hot new IaC on the block, pulumi[1].
its pretty neat because you can write the entire thing in popular languages ie. TS so it integrates into your workflow. neato~
it's a promising aspect, opening infra to more devs on the team without them having to pick up yet another DSL.
...then you run into edge cases.
a lot of their providers are themselves are built with a terraform bridge[2].
you get pretty neato things like the k8s provider[3] but like with the terraform bridge, you still end up needing to pull helm charts in. so far, we're at:
- pulumi
- terraform
- kubernetes
- docker / oci
- helm
you're also probably managing all that with some domain-specific CI setup.
that helm chart itself might be a custom provider for a k8s controller you've got to wrap your head around, like a custom DNS01 provider for cert manager[4].
if your pulumi provider has all the outputs you need then alles gucci π€
mine didn't, so then there's looking at how the terraform go code reads the cloud provider API to create the HCL to create the pulumi provider.
that's one hell of a dependency tree to debug.
the syntax familiarity & ecosystem are great but i can't say it's something for devs that aren't already doing some heavy devops/infra to begin with.
[1]: https://www.pulumi.com
[2]: https://github.com/pulumi/pulumi-terraform-bridge
[3]: https://www.pulumi.com/registry/packages/kubernetes/
[4]: https://cert-manager.io/docs/configuration/acme/dns01/#webhook