I'm a devops/infrastructure engineer by trade so maybe I'm just jaded but I do not like Terraform. Perhaps it's the best IaC tool (it's certainly better than cloud formation, ARM, etc), but it still isn't very good. Here are a few pain points I don't like about it.
  • State, having to store state, reconcile state when someone makes a manual change or the backend api changes is a pain in the ass.
  • HCL is a declarative language but Hashicorp has added a lot of features (for_each, for loop, locals, etc) that allows engineers to write really complex code that is difficult to understand. However at the end of the day it's annoying that you can't just use a more powerful language.
I tried to use the AWS CDK once with go and the docs were missing a ton of info. Pulumi is another one I'd like to look into though.
I also recently started using crossplane with k8s to deploy infra but it's very new and the docs are lacking a lot. I hope something like crossplane/Pulumi/some CDK is the future though.
Good luck with your deployment, feel free to DM me with any questions.
Thanks for chiming in! It sounds like even a pro can be unsatisfied with the current solutions and that makes me feel better because they all look like hacks from my noob perspective.
State, having to store state, reconcile state when someone makes a manual change or the backend api changes is a pain in the ass.
Statists strike again.
reply