Terraform Cloud Agent on Apple Silicon

Running self-hosted agents for Terraform Cloud is a great option for facilitating access to privately hosted API endpoints. To perform a test in Terraform Cloud, an agent pool can be created and an agent token generated to register the agent with Terraform Cloud. However, the agent software is only built for Linux on the x86_64 … Continue reading Terraform Cloud Agent on Apple Silicon

Governance in Infrastructure as Code

Governance with respect to cloud providers has become a rather mature set of principles. Much of this began with the adoption of SaaS solutions, like Office 365; in particular, Microsoft Teams. The necessity for governance emerged when it was identified that we have consistently repeated the same playbook leading to negative consequences. Many of our … Continue reading Governance in Infrastructure as Code

Terraform Testing Preview

Testing Terraform code has always been a challenge. Several testing suites had been used, but they always required knowledge of a different language and that is anti-pattern for software testing; tests should always be written in the same language as the code that you're testing. Existing testing suites: terratest from Gruntwork with tests written in … Continue reading Terraform Testing Preview

Terraform Module Release: terraform-azuread-application-link v0.0.1

This module creates an Enterprise Application in Azure AD in order to create a tile in the MyApps portal for any assigned users. This does not support passing any authentication, but will ride on any existing authentication. The use case I had was deploying an application in AWS which used SSO to Azure AD. The … Continue reading Terraform Module Release: terraform-azuread-application-link v0.0.1

Embrace at Least Some of Immutable Infrastructure

With respect to immutability, the first exposure many folks in technology experience with with arrays. An array is a contiguous space of memory for elements of the same time to be groups together. We can quickly read the element because they're accessed sequentially. However, this adjacency limits our ability to expand because any new elements … Continue reading Embrace at Least Some of Immutable Infrastructure

First Thoughts on Azure Terrafy

There has been a lot of buzz related to Azure Terrafy lately with presentations at HashiConf Global and videos from Ned Bellavance. I have always had rather tempered expectations of the tool with good reason and my recent experience cemented my initial thoughts. Limitations The tool is not going to turnaround and generate elegant HCL … Continue reading First Thoughts on Azure Terrafy

Why Do We Write Terraform Modules?

I am often in a privileged position to watch people develop their skills based on the roles I am in. With respect to Terraform, I see folks learn the basics where they're hard coding values into all of the resource properties, then they move on to using input variables, and so on. Another interesting inflection … Continue reading Why Do We Write Terraform Modules?

Authentication with Terraform

When following tutorials out there on Terraform, a consistent approach seems to be passing in authentication secrets through variables: provider "azurerm" { features {} subscription_id = var.subscription_id client_id = var.client_id client_secret = var.client_secret tenant_id = var.tenant_id } This is a very low friction way to handle authentication when first beginning with Terraform because the overall … Continue reading Authentication with Terraform