Source of truth for all the infrastructure as code deployed in the cloud providers I own.
This repository serves as a working example on creating a fully functional infrastructure for different types of projects, some of them examples, some of them actual infrastructure.
It attempts to compare and provide insight on how different cloud providers manage resources.
It provides:
- Modular stack
- Dependency management. Import and export dependencies using
terragrunt
'sdependency
block - Terraform state and lock configuration and management
- Costs breakdown with
infracosts
The source code is shared under the BSD 2-Clause license.
Different providers have its own folders within the terraform
folder.
There are 2 main environments: prod and non-prod.
Terragrunt will be used to orchestrate all terraform
/ tofu
code.
├── non-prod
│ ├── account.hcl
│ └── eu-west-1
│ ├── dev
│ │ ├── common_vars.yaml
│ │ ├── env.hcl
│ │ ├── mailserver
│ │ │ └── terragrunt.hcl
│ │ ├── network
│ │ │ ├── outputs.tf
│ │ │ ├── sg.tf
│ │ │ └── terragrunt.hcl
│ │ ├── s3_cdn
│ │ │ └── terragrunt.hcl
│ │ └── s3_website
│ │ └── terragrunt.hcl
│ ├── region.hcl
│ └── sandbox
│ ├── common_vars.yaml
│ ├── env.hcl
│ ├── mailserver
│ │ └── terragrunt.hcl
│ └── network
│ ├── outputs.tf
│ ├── sg.tf
│ └── terragrunt.hcl
├── prod
└── terragrunt.hcl
Modules must work with both tf and tofu.
To import a module from the library, use:
terragrunt catalog https://github.com/asajaroff/tofu-aws-modules//
Yet to be completed.
Yet to be completed.
Yet to be completed.