> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Course: Terragrunt for Beginners

> This course teaches managing infrastructure as code with Terragrunt, focusing on best practices for a DRY and scalable Terraform workflow.

Notes for the **Terragrunt for Beginners** course: 74 lessons across 12 sections.

## Introduction

* [Course Introduction](/docs/Terragrunt-for-Beginners/Introduction/Course-Introduction/page.md)
* [Introduction to Terragrunt](/docs/Terragrunt-for-Beginners/Introduction/Introduction-to-Terragrunt/page.md)

## Terragrunt - Good to Know Concepts & Ideas

* [TerraformOpenTofu and Terragrunt Compatibility Chart](/docs/Terragrunt-for-Beginners/Terragrunt-Good-to-Know-Concepts-Ideas/TerraformOpenTofu-and-Terragrunt-Compatibility-Chart/page.md)
* [Terragrunt Cache](/docs/Terragrunt-for-Beginners/Terragrunt-Good-to-Know-Concepts-Ideas/Terragrunt-Cache/page.md)
* [Terragrunt With AWS](/docs/Terragrunt-for-Beginners/Terragrunt-Good-to-Know-Concepts-Ideas/Terragrunt-With-AWS/page.md)

## Terragrunt Configuration

* [Terragrunt Configuration Files HCL](/docs/Terragrunt-for-Beginners/Terragrunt-Configuration/Terragrunt-Configuration-Files-HCL/page.md)
* [Directory Structure](/docs/Terragrunt-for-Beginners/Terragrunt-Configuration/Directory-Structure/page.md)
* [Supporting Files accountregionenvcommonhcl](/docs/Terragrunt-for-Beginners/Terragrunt-Configuration/Supporting-Files-accountregionenvcommonhcl/page.md)
* [Global Resources](/docs/Terragrunt-for-Beginners/Terragrunt-Configuration/Global-Resources/page.md)

## Terragrunt Commands

* [terragrunt init and validate](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-init-and-validate/page.md)
* [terragrunt plan](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-plan/page.md)
* [terragrunt apply](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-apply/page.md)
* [terragrunt destroy](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-destroy/page.md)
* [terragrunt run all](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-run-all/page.md)
* [terragrunt hclfmt](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/terragrunt-hclfmt/page.md)
* [Demo of Lab 2](/docs/Terragrunt-for-Beginners/Terragrunt-Commands/Demo-of-Lab-2/page.md)

## Terragrunt Functions

* [Terragrunt Function Overview](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/Terragrunt-Function-Overview/page.md)
* [read terragrunt config](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/read-terragrunt-config/page.md)
* [find in parent folders](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/find-in-parent-folders/page.md)
* [path relative to include](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/path-relative-to-include/page.md)
* [get terragrunt dir](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/get-terragrunt-dir/page.md)
* [get parent terragrunt dir](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/get-parent-terragrunt-dir/page.md)
* [run cmd](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/run-cmd/page.md)
* [Other Terragrunt Functions](/docs/Terragrunt-for-Beginners/Terragrunt-Functions/Other-Terragrunt-Functions/page.md)

## Terragrunt Blocks

* [Terragrunt Blocks Overview](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/Terragrunt-Blocks-Overview/page.md)
* [terraform Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/terraform-Block/page.md)
* [remote state Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/remote-state-Block/page.md)
* [include Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/include-Block/page.md)
* [locals Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/locals-Block/page.md)
* [dependency Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/dependency-Block/page.md)
* [dependencies Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/dependencies-Block/page.md)
* [generate Block](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/generate-Block/page.md)
* [Demo of Lab 3](/docs/Terragrunt-for-Beginners/Terragrunt-Blocks/Demo-of-Lab-3/page.md)

## Terragrunt Attributes

* [Terragrunt Attribute Overview](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/Terragrunt-Attribute-Overview/page.md)
* [inputs Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/inputs-Attribute/page.md)
* [download dir Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/download-dir-Attribute/page.md)
* [prevent destroy Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/prevent-destroy-Attribute/page.md)
* [skip Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/skip-Attribute/page.md)
* [iam role And Related Attributes](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/iam-role-And-Related-Attributes/page.md)
* [terraform binary Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/terraform-binary-Attribute/page.md)
* [terraformterragrunt version constraint Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/terraformterragrunt-version-constraint-Attribute/page.md)
* [retryable errors Attribute](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/retryable-errors-Attribute/page.md)
* [Demo of Lab 4](/docs/Terragrunt-for-Beginners/Terragrunt-Attributes/Demo-of-Lab-4/page.md)

## Managing Remote State with Terragrunt

* [Remote State in Terraform](/docs/Terragrunt-for-Beginners/Managing-Remote-State-with-Terragrunt/Remote-State-in-Terraform/page.md)
* [Configuring Remote State With Terragrunt Using AWS S3](/docs/Terragrunt-for-Beginners/Managing-Remote-State-with-Terragrunt/Configuring-Remote-State-With-Terragrunt-Using-AWS-S3/page.md)
* [DynamoDB as a Locking Mechanism](/docs/Terragrunt-for-Beginners/Managing-Remote-State-with-Terragrunt/DynamoDB-as-a-Locking-Mechanism/page.md)
* [Setting up DynamoDB Locks](/docs/Terragrunt-for-Beginners/Managing-Remote-State-with-Terragrunt/Setting-up-DynamoDB-Locks/page.md)
* [Demo of Lab 5](/docs/Terragrunt-for-Beginners/Managing-Remote-State-with-Terragrunt/Demo-of-Lab-5/page.md)

## Terragrunt Modules

* [Custom Modules vs Community Modules](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Custom-Modules-vs-Community-Modules/page.md)
* [Creating Your Own Module From Scratch](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Creating-Your-Own-Module-From-Scratch/page.md)
* [Demo Creating Your Own Module From Scratch](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Demo-Creating-Your-Own-Module-From-Scratch/page.md)
* [Sourcing a Module From a Git Repository](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Sourcing-a-Module-From-a-Git-Repository/page.md)
* [Demo Sourcing a Module From a Git Repository](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Demo-Sourcing-a-Module-From-a-Git-Repository/page.md)
* [Sourcing a Module From the Terraform Registry](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Sourcing-a-Module-From-the-Terraform-Registry/page.md)
* [Demo Sourcing a Module From the Terraform Registry](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Demo-Sourcing-a-Module-From-the-Terraform-Registry/page.md)
* [Hybrid Module Approach](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Hybrid-Module-Approach/page.md)
* [Wrapper Module Approach](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Wrapper-Module-Approach/page.md)
* [Demo Wrapper Module Approach](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Demo-Wrapper-Module-Approach/page.md)
* [Section Closure](/docs/Terragrunt-for-Beginners/Terragrunt-Modules/Section-Closure/page.md)

## Building our first AWS Demo with Terragrunt

* [Section Introduction](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Section-Introduction/page.md)
* [Root Configuration and Remote State](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Root-Configuration-and-Remote-State/page.md)
* [Setting Up Account Regions and Environments](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Setting-Up-Account-Regions-and-Environments/page.md)
* [Setting Up the First Group of Resources VPC](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Setting-Up-the-First-Group-of-Resources-VPC/page.md)
* [Setting Up the Second Group of Resources Security Groups Key Pairs](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Setting-Up-the-Second-Group-of-Resources-Security-Groups-Key-Pairs/page.md)
* [Setting Up the Third Group of Resources EC2](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Setting-Up-the-Third-Group-of-Resources-EC2/page.md)
* [Demo of Lab 6](/docs/Terragrunt-for-Beginners/Building-our-first-AWS-Demo-with-Terragrunt/Demo-of-Lab-6/page.md)

## Conclusion

* [Story Conclusion](/docs/Terragrunt-for-Beginners/Conclusion/Story-Conclusion/page.md)
* [Where to from here Useful Resources Guides and Suggestions](/docs/Terragrunt-for-Beginners/Conclusion/Where-to-from-here-Useful-Resources-Guides-and-Suggestions/page.md)
* [Outro Video](/docs/Terragrunt-for-Beginners/Conclusion/Outro-Video/page.md)

## Terragrunt - Basic Concepts

* [What Is Terragrunt](/docs/Terragrunt-for-Beginners/Terragrunt-Basic-Concepts/What-Is-Terragrunt/page.md)
* [What Problems Does Terragrunt Solve](/docs/Terragrunt-for-Beginners/Terragrunt-Basic-Concepts/What-Problems-Does-Terragrunt-Solve/page.md)
* [The DRY Principle](/docs/Terragrunt-for-Beginners/Terragrunt-Basic-Concepts/The-DRY-Principle/page.md)
* [Installing Terragrunt](/docs/Terragrunt-for-Beginners/Terragrunt-Basic-Concepts/Installing-Terragrunt/page.md)
* [Demo of Lab 1](/docs/Terragrunt-for-Beginners/Terragrunt-Basic-Concepts/Demo-of-Lab-1/page.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.