What's new in Terraform 1.15?
Dynamic Module Sources, Marking Variables and Outputs as Deprecated, convert() - let's talk about the new language features in Terraform 1.15
Technical blog by Daniel Schmidt, Terraform Core engineer at HashiCorp. Deep dives into Terraform internals, Go, Rust, and infrastructure as code.
Dynamic Module Sources, Marking Variables and Outputs as Deprecated, convert() - let's talk about the new language features in Terraform 1.15
A deep dive into Terraform's expansion mechanism — how for_each and count transform configuration blocks into multiple resource instances in the graph.
Terraform 1.15 introduces deprecation warnings for variables and outputs. Learn how this works under the hood and what it means for your configurations.
A deep dive into tfdiags, Terraform's diagnostic and error handling system — how errors, warnings, and source ranges flow through the codebase.
How Terraform evaluates expressions using go-cty for value representation and HCL for parsing — a deep dive into the evaluation engine internals.
How Terraform resolves references between resources, variables, and modules — tracing the dependency graph from HCL expressions to execution order.
A deep-dive blog series by a Terraform Core engineer exploring how Terraform works internally — from address parsing to graph expansion and evaluation.
A deep dive into Terraform's addrs package — how every resource, module, and variable gets a unique address that drives the entire execution engine.
A curated and growing list of common usage patterns for Terraform Actions, showing real-world examples of non-CRUD operations in Terraform configuration.
How to implement Terraform resources, data sources, and actions for APIs with recursive structures using the Terraform Plugin Framework.
How we designed Terraform Actions — the key design decisions behind integrating a new language construct for non-CRUD operations into Terraform.
Common patterns and guidelines for writing Terraform Actions, the language feature for expressing non-CRUD infrastructure operations.
A hands-on guide to writing a Terraform Action for non-CRUD operations, covering provider implementation, schema design, and typical use cases.
Terraform Actions let you express non-CRUD operations directly in configuration — replacing local-exec provisioners and pseudo data source workarounds.
Step-by-step guide to migrating a Terraform provider from SDKv2 to the Plugin Framework, including muxing, testing, and common migration pitfalls.
A code-level comparison of how the Terraform Stacks runtime and the classic module runtime differ in graph building, evaluation, and execution.
A concise overview of Terraform Stacks — what they are, how they relate to modules, and why they exist for managing infrastructure at scale.
How to write a remark plugin that inlines code snippets from GitHub repositories into Markdown, keeping blog posts in sync with source code automatically.
How to use chezmoi to manage dotfiles and keep personal and work Macbook development environments synchronized across multiple machines.
How to implement the tagged union pattern in Go when coming from TypeScript, using interfaces and sealed types to model mutually exclusive states.
Covering the internals of CDKTF and CDK8s — the universal constructs model, real-world migration examples, and when adopting a CDK is the right choice.
Learn how to spawn, monitor, and manage one-shot and long-running child processes in Rust using tokio::process::Command with real-world examples.
A practical walkthrough of deploying infrastructure across multiple stacks, environments, and regions using CDKTF.
Building and distributing hybrid constructs that work across both HCL and CDKTF — for organizations adopting CDKTF gradually.
A code-level deep dive into the convert command that transforms HCL into CDKTF code — tracing through parsing, graph building, and code generation.
What actually happens when you run cdktf synth — from a Python CDKTF program, through JSII, to the generated HCL JSON that Terraform consumes.
You can use CDK for Terraform to automate spinning up a complex development environment.
Learn how to trigger and manage GraphQL subscription updates using RxJS observables, enabling real-time data flows in your JavaScript applications.
A practical approach to testing side effects in RxJS, covering marble testing patterns and strategies for verifying observable behavior in Angular and Node.js applications.
How to simulate real-world movement and gyroscopic sensor data in Android and iOS emulators for testing location-aware mobile applications.