Skip to content
DnsLister Forum

Where domain hunters compare notes

What was harder than expected when modeling Terraform’s planner in the browser

I've spent the last months building a practice environment for the Terraform Authoring & Operations Pro exam. The core is a Terraform-like engine that runs fully in the browser: you write HCL, run plan/apply, and resources show up in a simulated AWS console. No AWS account, no signup, nothing to bill.

Linux / TF console

AWS Console

I underestimated how much a useful lab depends on a plan you can trust. Three things took more work than the dependency graph itself:

– Diff equality. Reordering a set or reformatting an IAM policy shouldn't produce an update, while list order and real value changes still should. Type conversion across resource schemas was its own rabbit hole.

– create_before_destroy. It doesn't stay on the resource where you set it: it propagates to the resources that resource depends on, which changes the apply order.

– import / moved / removed blocks. They have to show up correctly in the plan and leave exactly the right state after apply.

What it isn't: it's not Terraform or the real AWS provider. About 29 AWS resource types, simulated behavior, and known gaps (nested ignore_changes paths, values known only after apply). Works best on desktop.

The free demo has a guided Terraform lab: fix a networking module, configure remote state, and deploy a second module that reads from it. There's also an AWS console lab, but the Terraform side is what this post is about:

https://demo.labiqo.com/

Question for people using Terraform at work: what's a specific plan or state surprise you'd want a learner to reproduce and debug? A small example would be especially useful.

Disclosure: this is my project.

Source: r/Terraform · by /u/kskrypnyk

Leave a Reply

Your email address will not be published. Required fields are marked *