🔥Let’s Do DevOps: Writing a New Terraform /Tofu AzureRm Data Source — All Steps! 🚀

Kyler Middleton
18 min readJan 30, 2024

This blog series focuses on presenting complex DevOps projects as simple and approachable via plain language and lots of pictures. You can do it!

Note, I’ve also presented this content as a video at this link if that’s how you’d prefer to learn :) ❤

Hey ya’ll!

I’ve spent a ton of time writing terraform code itself, as well as the pipelines that wrap around it to automate tasks. I like to think I’m pretty good at it. But I’ve always wanted to move one ladder wrung up the tool chain, and write some code for terraform itself.

Note: I use Terraform and Tofu interchangeably through this doc. I disagree with Hashi converting Terraform to a source-available license and away from truly open source.

Rather than the relatively intuitive HCL language that Terraform/Tofu use, the internals of Terraform providers are written in Go/Golang, a relatively low-level language (at least compared to Go) that spun out of Google.

It’s a compiled language, which means it’s quite a bit more difficult to troubleshoot and work with than any language I’ve used previously.

So I had a goal! And that goal sat idle for a few years, because all the things I wanted to do in AWS were already pretty well documented and achievable. However, then I switched to Azure. $MSFT hasn’t embraced Terraform/Tofu nearly as much as AWS has, instead propping up their…

--

--

Kyler Middleton

DevNetSecOps, DevRel, cloud security chick. I will teach you, it’s unavoidable. She/Her 🏳️‍🌈🏳️‍🌈, INFJ-A, support the EFF!