Category Terraform

Terraform Lifecycle Policies

Sometimes when deploying infrastructure the default behaviour when creating, destroying or even updating resources isn’t ideal. In order to successfully manage this you can utilize Terraform Lifecycle Policies. In this blog post we will explore various policies and how to…

Resource recreation with Terraform replace

There are specific situations in Terraform when you need to manually recreate resource even nothing in the code has changed such as incomplete script, resource drift, provisioner failed etc. When resources changed outside of Terraform management of the state file…

Terraform provisioners local-exec vs remote-exec vs file

There are some situations when deploying infrastructure that Terraform doesn’t handle everything automatically. For example if you need to run a script or copy a file provisioners comes to the story because they let you run commands or transfer files…

Access Control in Terraform: IAM Permissions & Workspaces

In large Terraform ecosystems the risk that someone might accidentally (or intentionally 🙂 ) change something grows. Access control in Terraform is always the first line of defense and it’s not just about IAM roles, but also how to structure…

Terraform: bash scripts to initialize and apply infrastructure

When managing infrastructure with Terraform across multiple environments and multiple workspaces the setup can become repetitive and error-prone. In these situations you could utilize Terraform bash scripts automation to initialize and apply infrastructure. Is there a need for scripts? Sometimes…

Terraform Implicit vs Explicit Dependencies

Understanding Dependencies in Terraform In this blog post you will see examples for both and also understand differences between Terraform Implicit vs Explicit Dependencies. When defining infrastructure in Terraform, resources often rely on each other. There are two ways of…

Terraform input validation

When managing infrastructure with Terraform you will for sure use variable which play crucial role for environment specific configurations. Sometimes human errors may happen and variables values can lead to certain issues. Meaning if you do not use Terraform input…