Finally published to public registry

Hey cloud network headz,Great news! The modules that power TNT Architecture and Super Router have been published to the Terraform Cloud public registry at v1.0.0, like FINALLY!The modules are mostly the same as what’s in my Terraform development repo at v1.4.9.Ended up moving gen … | Continue reading


@jq1.io | 1 year ago

Slappin' chrome on the WIP

Reflection in the Rear-View: Initially, I thought the TNT Architecture project and Super Router project were good enough to leave alone and move on.But after looking back on what was built there were so many areas for improvement that I could not resist the extended refinement.I … | Continue reading


@jq1.io | 1 year ago

$init super refactor

Aaaand we’re back with another heavy hitting round of super refactorization in Terraform!I think the first iteration of Super Router for AWS went well.It allowed us to peer and route both intra-region and cross-region TGWs and VPCs with a single module.But there was one really an … | Continue reading


@jq1.io | 1 year ago

Super Powered, Super Sharp, Super Router

What’s up world?!Welcome back for moar spicy cloud networking Terraform takes because we servin’ them HOT over here so let’s dig in!TNT Recap The Terraform Networking Trifecta project demonstrated the ability to “scale” VPCs in Terraform code by adding VPC objects to a list, then … | Continue reading


@jq1.io | 1 year ago

Building a generate routes function using Terraform test

Welcome to the next episode of thinking out loud to route in the cloud with style.Earlier this season we abstracted a TGW Centralized Router.Part of it’s responsibility is to manage routes between Tiered VPCs within a single region.Looking forward, it would be nice to route betwe … | Continue reading


@jq1.io | 2 years ago

Terraform Opinion #23: Use list of objects over map of maps

Lately, I’ve seen quite a bit of Terraform snippets that use a static map of maps to directly configure resources.For example:locals { map_of_maps = { name1 = { attribute1 = "name1-value1" attribute2 = "name1-value2" attribute3 = "name1-value3" } name2 = { attribute1 = "name2-val … | Continue reading


@jq1.io | 2 years ago

Terraform Networking Trifecta

Intro Initially I’d planned to blog more than just about Terraform but it hasn’t turned out that way due to lack of time.But that’s OK because I really do enjoy creating and writing about networking topics with Terraform in the cloud.Content generation is hard so hats off to thos … | Continue reading


@jq1.io | 2 years ago

Synthesizing Tiered VPC in Terraform

Today’s Mathematics Dynamic VPC x Tiered Subnet Calculator = Tiered VPCObserving Abstractions In hindsight, the Dynamic VPC module should instead be called Simple VPC. It provides a general VPC tier including a public subnet (/24), a private subnet (/24) and NAT Gateways per AZ. … | Continue reading


@jq1.io | 3 years ago

Tiered Subnet Calculator in Terraform

I’ve been thinking about adding support for building tiered subnets of any size for the next iteration of the Dynamic VPC Module. It occurred to me that auto subnet generation inside the module actually makes the subnetting less dynamic.Furthermore, auto subnet calculation should … | Continue reading


@jq1.io | 3 years ago

Hash Server 9000 in Go

I took an internal dev challenge at work a while back because I wanted to learn more Go since I have an OO background and was not familiar with the procedural way of thinking. The goal was to build a simple non-persistent password hashing service using only the standard library w … | Continue reading


@jq1.io | 3 years ago

Go Modules Replace Use Case: Terratest and LocalStack

At work we’re planning on having our IaC to grow up a bit. We’re really wanting it to get a job and start contributing more around here. Something like a shiny new Terraform Pipeline would be nice. That means we need to get our Terraform testing sorted out.I came across this Hash … | Continue reading


@jq1.io | 3 years ago

Expanding Function Arguments in Terraform

The other day I was wondering if it was possble to unpack a list of elements as args to a function in Terraform similar to * in Python or splat in Ruby? Because this code will give invalid function argument errors:locals { new_bits = [4,4,8,4] subnets = cidrsubnets("10.1.0.0/16", … | Continue reading


@jq1.io | 3 years ago

Dynamic VPC Module in Terraform 0.12

TL;DR Just show me the code! This is a Dynamic VPC Module that builds a redundant network architecture in AWS based on structured input using for_each and for constructs. It will build a VPC with private and public subnets per AZ with the proper routing and labeling.Here is the r … | Continue reading


@jq1.io | 3 years ago

A Storm is Brewing

“Some callin it fate while some others remain torn, some callin it rain cuz thats when I brainstorm.” - Evidence | Continue reading


@jq1.io | 4 years ago

About

____. ________ ________ | |____ ___.__.\_____ \ \_____ \ ____ ____ | \__ \< | | / / \ \ / | \ / \_/ __ \ /\__| |/ __ \\___ |/ \_/. \ / | \ | \ ___/ \________(____ / ____|\_____\ \_/_____\_______ /___| /\___ > \/\/ \__>_____/ \/ \/ \/ --=[ PrEsENtZ ]=-- --=[ Ideas as Code: The Art of Demolition ]=-- --=[ Observe -> Abstract -> Synthesize ]=-- --=[ Create. | Continue reading


@jq1.io | 2024 years ago