Break Things on Purpose is a podcast for all-things Chaos Engineering. Check out our latest episode below.
You can subscribe to Break Things on Purpose wherever you get your podcasts.
In this episode of the Break Things on Purpose podcast, we celebrate Terraform's 1.0 release with Taylor Dolezal.
Jason Yee: Welcome to Break Things on Purpose, a podcast about building reliable systems. We're currently on a mid-season break and have been busy recording new episodes, including one with Taylor Dolezal, a Developer Advocate at HashiCorp. The full episode will be available soon, but with recent announcements from HashiCorp about Terraform, we thought you'd enjoy this segment.
I have a completely self-serving interest question here. Ana and I both use Terraform quite a bit, although due to all the updates, we're on super old Terraform. Basically, I'm using TFenv right now because it's like Terraform 12. Right? When I say 12, listeners, I actually mean 0.12, not release 12, because it turns out that Terraform has been around for years and isn't 1.0. Taylor, when's it going to be 1.0?
Taylor Dolezal: Ooh, I do have some news on that front. The ever-nebulous "soon," so if you keep your eye on the change log for the releases, you'll notice that 0.15 was just a lot of polish and kind of getting things ready for the future. So take that with what you will, but definitely, definitely very soon. I think that that's something that I've seen as well, and I know that kind of getting over that hurdle, working with Terraform before coming to HashiCorp, that was one of the biggest hurdles too was jumping from 0.11 to 0.12 and then working through all of the syntax and the interpolation and up-to-date modules.
In working with teams today, that is a huge question that I get is, "How do we keep things up-to-date? I thought the machines were going to take over. Why haven't they updated our Terraform modules yet?" And that is really difficult to solve, and even more so when you use the best recommendations of breaking things up, making things more modular and more microservice-y, if you will. And then managing that sprawl and how we update all of our versions and everything else does become quite difficult. But yeah, definitely soon on that front, and then hopefully once we hit 1.0 with Terraform, things become boring trademark and just a little bit more boring on that front, a little bit more certain. And then we can explore some interesting things too, like being able to import state for infrastructure that already exists and things of that nature to really help you manage your infrastructure as code needs.
Ana Medina: That's super exciting to hear. I had to go through a double-check. Yeah, we're running on Terraform 0.12, and I remember we did a session maybe like two, three months ago. We were about to bump it to 0.13, and it was just all this syntax change, and I was like [gasp]. So now Jason and I have been talking. We're like, "Okay, 1.0 is coming out. We can't be too behind. Let's make sure to schedule some time to get through this." So really exciting to get to boring trademark, as you call it.
Taylor Dolezal: I know that they recently introduced for... Obviously, the recommendation is to be able, if you can, update each version one at a time. But Terraform came out with hotfixes to be able to allow for state files to jump to different versions, because we're getting closer and closer to 1.0, so we could jump from 0.12 dot latest to 0.15 if you wanted to. But obviously, if you can, definitely worth bringing it up nice and slow with each version. But 0.13, 0.14 and 0.15 have had really interesting additions to them too.
I think 0.13 really captured my focus most, because that was one of the releases I got to join HashiCorp, and then got to see walk out the door was that release. And the ability for each iteration on modules as well as depends on, so I can actually make sure that my VPCs are there before I go to stand up certain other things. Most times, Terraform is smart enough to understand what to stand up first, but in the cases that it's not, or it's not linked via the graph layout, it's nice to be able to specify that. And then 0.14 is interesting in custom validation, and so we're not turing complete yet. I know Excel is, but Terraform has not turing complete yet with all of those features, but definitely enabled a lot more fun workflows and ways to work with things.
0.15 has been interesting too, in just kind of tying up a lot of loose ends and then being able just to provide a little bit more clarity on dependency management as well, and making that more secure so that nobody's sideloading in any nefarious code or provider executables, things like that.
Jason Yee: Since we recorded this episode, HashiCorp has released Terraform 1.0, and the Break Things on Purpose crew would like to offer a huge congratulations and our gratitude to Taylor, Armon, and the rest of the HashiCorp team for all of their hard work. Terraform has been immensely helpful to us, and I know it's been helpful to many of you. To learn more about Terraform, visit terraform.io. We'll be back with a full episode with Taylor Dolezal in a few weeks, so if you'd like to be notified when that episode airs, subscribe to the podcast in your favorite podcast app or follow us on Twitter at @BTOPPod.