Have you had challenges with versioning of Terraform/Modules/Providers?
So far no troubles, we make sure modules shared across our teams / projects are versioned, we use github release tags & commits for that purpose .
I’ve got some stuff suck on pre-0.9 and its looking pretty painful to get upgraded, though much better once upgraded since providers won’t be attached to Terraform.
Indeed upgrading is painful, I have not done it myself (I started using terraform from 0.9) but people in my team coming from previous versions have told me it is a pain. A coworker took a while to refactor an entire mumble-jumble of old terraform code, and he was essentially refactoring and re-importing resources using terraform import
Lots of complains / fears from not using terraform come from people who gave a try to versions previous to 0.9.
Do you have any specific way you deal with things that must be different between environments, but don’t really lend themselves to just using Variables?
mm I can’t exactly think of one. However the Parameter Store in AWS, combined with the data resources, solved a bunch of cases where we wanted to share values, for example : a build version of lets say an Container on ECR, we wanted our CI to build it, and terraform later to grab it.