Terraform
Terraform is HashiCorp's open-source infrastructure-as-code tool for defining, provisioning, and managing cloud and on-premises infrastructure through declarative configuration files.
68 resources across 4 libraries
Glossary Terms(29)
DigitalOcean
DigitalOcean is a cloud infrastructure provider known for simple, developer-friendly virtual machines ("Droplets"), managed databases, and Kubernetes, aimed at…
Kubernetes
Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, networking, and management of containerized applications…
Terraform
Terraform is HashiCorp's open-source infrastructure-as-code tool for defining, provisioning, and managing cloud and on-premises infrastructure through declarat…
Helm
Helm is the package manager for Kubernetes, letting teams define, install, and upgrade even the most complex Kubernetes applications using reusable, versioned…
Ansible
Ansible is an open-source, agentless IT automation tool that uses simple YAML-based 'playbooks' to configure systems, deploy applications, and orchestrate mult…
Chef
Chef is an infrastructure-as-code automation platform that lets teams define server configuration — packages, services, files, users — as Ruby-based "recipes"…
Consul
Consul is a service networking tool from HashiCorp that provides service discovery, health checking, a distributed key-value store, and service mesh capabiliti…
Backstage
Backstage is an open-source platform for building developer portals, unifying a software catalog, technical documentation, and self-service tooling into a sing…
Vagrant
Vagrant is a HashiCorp tool for building and managing portable, reproducible virtual development environments, defined through a simple configuration file and…
Vault
Vault is HashiCorp's secrets management tool for securely storing, accessing, and rotating sensitive data such as API tokens, database credentials, and TLS cer…
Amazon Web Services
Amazon Web Services (AWS) is Amazon's cloud computing platform, offering a broad catalog of on-demand services spanning compute, storage, databases, networking…
Serverless Framework
The Serverless Framework is an open-source command-line tool for building, packaging, and deploying serverless applications — functions, APIs, and event trigge…
Nix
Nix is a purely functional package manager and build system that makes builds reproducible and deployments reliable by treating every package as an immutable,…
Packer
Packer is a HashiCorp tool that automates the creation of identical machine images for multiple platforms — such as AWS AMIs, Docker images, and VM templates —…
Pulumi
Pulumi is an infrastructure-as-code platform that lets developers define and provision cloud infrastructure using general-purpose programming languages like Ty…
AWS CloudFormation
AWS CloudFormation is an infrastructure-as-code service that lets you define and provision AWS resources using declarative JSON or YAML templates, so entire en…
Azure Resource Manager
Azure Resource Manager (ARM) is the deployment and management layer of Microsoft Azure that lets users create, update, and delete resources through consistent…
Google Cloud Deployment Manager
Google Cloud Deployment Manager is Google Cloud's native infrastructure-as-code service that lets users define resources in YAML templates (optionally extended…
Multi-Cloud
Multi-cloud refers to the deliberate use of two or more public cloud providers — such as AWS, Azure, and Google Cloud — within a single organization's infrastr…
OpenTofu
OpenTofu is an open source, community-governed fork of Terraform that provides infrastructure-as-code tooling for defining and provisioning cloud and on-premis…
CDKTF
CDKTF (Cloud Development Kit for Terraform) is a HashiCorp framework that lets developers define infrastructure using general-purpose programming languages lik…
AWS CDK
AWS CDK (Cloud Development Kit) is an open source framework from AWS that lets developers define cloud infrastructure using general-purpose programming languag…
Crossplane
Crossplane is an open source Kubernetes extension that turns a Kubernetes cluster into a control plane for provisioning and managing cloud infrastructure using…
AWS CodePipeline
AWS CodePipeline is a fully managed continuous delivery service on Amazon Web Services that automates the build, test, and deployment stages of releasing softw…
Showing 24 of 29.
Study Notes(16)
Common Terraform Pitfalls
A field guide to the mistakes Terraform users make most often — from state file mishandling to accidental destroys — and how to avoid each one.
Declarative vs Imperative IaC
Declarative IaC describes the desired end state and lets the tool compute the steps, while imperative IaC specifies the exact sequence of actions to perform; e…
Drift Detection
Understand configuration drift — when real infrastructure diverges from Terraform state — and the tools and practices used to detect and reconcile it before it…
Installing and Configuring Terraform
Covers installing the Terraform CLI across platforms, verifying the install, managing versions, and configuring credentials and CLI settings for provider authe…
Secrets Management in Terraform
Learn how to keep API keys, passwords, and certificates out of your Terraform code and state, using dedicated secret stores and encryption strategies.
Terraform Cloud and Terraform Enterprise
Understand HashiCorp's managed and self-hosted platforms for running Terraform collaboratively, including remote runs, workspaces, and policy enforcement.
Terraform in CI/CD Pipelines
Learn the standard stages, safety controls, and credential-handling patterns for running Terraform reliably inside a CI/CD pipeline, from plan-on-PR to gated a…
terraform init, plan, and apply
The three-command core workflow of Terraform: init downloads dependencies, plan previews changes, and apply executes them -- forming a safe, repeatable provisi…
Terraform Interview Questions
A curated set of frequently asked Terraform interview questions with model answers, covering state, modules, providers, and real-world troubleshooting scenario…
Terraform Modules Explained
Modules are Terraform's mechanism for packaging and reusing configuration. This topic explains what a module is, root vs. child modules, and how module calls c…
Terraform Quick Reference
A condensed cheat sheet of the most-used Terraform CLI commands, HCL syntax patterns, and meta-arguments for fast lookup during real work.
Terraform Testing Frameworks
Survey the tools used to test Terraform code — from the built-in `terraform test` command to Terratest and Kitchen-Terraform — and when each fits into a testin…
terraform validate and fmt
Understand two everyday Terraform commands — `terraform fmt` for consistent code style and `terraform validate` for catching syntax and configuration errors be…
Terraform vs Other IaC Tools
Compare Terraform against Pulumi, AWS CloudFormation, Ansible, and Chef/Puppet to understand where Terraform fits in the infrastructure-as-code landscape.
The Terraform State File
Terraform's state file is the source of truth mapping your configuration to real-world resources. Understanding its structure and risks is essential for safe,…
What Is Terraform?
Terraform is HashiCorp's open-source Infrastructure as Code tool that uses a declarative language, HCL, to provision and manage resources across hundreds of cl…
Cheat Sheets(2)
Interview Questions(21)
What is Infrastructure as Code?
Infrastructure as Code (IaC) is the practice of provisioning and managing infrastructure — servers, networks, databases, and more — through machine-readable de…
What is Terraform?
Terraform is an open-source Infrastructure as Code tool that lets you define cloud and on-premises resources in declarative configuration files, then plans and…
What is Ansible?
Ansible is an open-source, agentless configuration management and automation tool that connects to remote machines over SSH and applies tasks written in human-…
What is Terraform State and Why Does It Matter?
Terraform state is a JSON file (typically terraform.tfstate) that maps every resource block in your configuration to the real-world infrastructure object it cr…
What are Terraform Modules and Why Use Them?
A Terraform module is a reusable, self-contained package of .tf configuration files that accepts input variables and exposes output values, letting teams defin…
Terraform vs CloudFormation: What is the Difference?
Terraform is a cloud-agnostic, open-source infrastructure-as-code tool by HashiCorp that manages resources across many providers using its own HCL language and…
What is Pulumi and How Does It Differ from Terraform?
Pulumi is an infrastructure-as-code tool that lets you define cloud resources using general-purpose programming languages like TypeScript, Python, Go, or C#, i…
What are Terraform Workspaces and When Should You Use Them?
Terraform workspaces let a single configuration directory manage multiple independent state files — for example dev, staging, and prod — by switching an active…
What Do terraform plan and terraform apply Do?
"terraform plan" computes and displays a dry-run diff between your declared configuration and the real infrastructure recorded in the state file, while “terraf…
What is HashiCorp Packer and When Would You Use It?
Packer is a tool that automates building identical, pre-configured machine images — such as AWS AMIs, Azure images, or VM templates — from a single declarative…
What is cloud-init and How Does It Work?
cloud-init is the industry-standard boot-time initialization tool that runs during a cloud instance's first boot to apply provider-supplied metadata and user-s…
What Are Terraform Providers and How Do They Work?
A Terraform provider is a plugin that translates Terraform’s declarative HCL resource blocks into API calls against a specific platform, such as AWS, Azure, GC…
What Is a Terraform Remote Backend and Why Use One?
A Terraform remote backend stores the state file in a shared, centralized location such as an S3 bucket, Azure Blob Storage, or Terraform Cloud, instead of on…
What Is Idempotency in Infrastructure as Code?
Idempotency in Infrastructure as Code means that applying the same configuration multiple times produces the same end state without unintended side effects — r…
What is Environment Parity and Why Does It Matter?
Environment parity means keeping development, staging, and production as similar as practically possible — same OS base, same dependency versions, same configu…
What is Infrastructure Drift and How Do You Detect and Prevent It?
Infrastructure drift happens when the real state of provisioned infrastructure diverges from what its infrastructure-as-code definition declares — usually beca…
How Does terraform import Work and When Would You Use It?
`terraform import` brings an existing resource that was created outside Terraform — manually in a console, via another tool, or from a legacy setup — under Ter…
How Would You Design a Cloud Resource Tagging Strategy?
A cloud tagging strategy defines a mandatory, enforced set of key-value labels — such as team, environment, cost-center, and application — attached to every re…
What is Infrastructure Testing and Why Does It Matter?
Infrastructure testing is the practice of writing automated checks that verify infrastructure-as-code (Terraform, CloudFormation, Pulumi) actually provisions t…
What is Terratest and How Does It Test Infrastructure Code?
Terratest is a Go library from Gruntwork that lets engineers write real integration tests for infrastructure code — it programmatically applies a Terraform (or…
What is HashiCorp Sentinel and How Does It Enforce Policy?
HashiCorp Sentinel is a policy-as-code framework embedded across the HashiCorp toolchain — Terraform Cloud/Enterprise, Vault, Consul, and Nomad — that evaluate…