Welcome to the Basic Terraform Infrastructure Template repository! π This repo provides a foundational template for creating Terraform configurations that instantiate and manage infrastructure using reusable modules. π―
- π Pre-organized structure for defining environments and instantiating Terraform modules.
- π οΈ Includes examples for integrating modules, variables, and outputs.
- π§ Follows Terraform best practices for scalability and maintainability.
- π Compatible with various cloud providers and modular setups.
- Teams and individuals setting up new infrastructure projects quickly βοΈ
- Learning Terraform through a practical, modular approach π
- Standardizing infrastructure deployments with reusable templates π
Start building your infrastructure with ease and confidence! π€
To use this repository template, simply fork the repo.
gh repo fork --fork-name <FORK_NAME> --org <ORG_NAME>
Update the repository settings:
gh repo edit --add-topic devops,reliability-engineering,axes \
--add-topic infrastructure-as-code,viking,mosher-labs \
--delete-branch-on-merge --enable-discussions=false \
--enable-issues=false --enable-merge-commit=false \
--enable-projects=false --enable-rebase-merge=false \
--enable-wiki=false --add-topic terraform
Create a ruleset for the default branch.
- Ruleset Name: Default branch
- Enforcement status: Active
- Target Branches: Default
- β Restrict deletions
- β Require linear history
- β Require signed commits
- β Require a pull request before merging
- β Dismiss stale pull request approvals when new commits are pushed
- β Require conversation resolution before merging
- β Request pull request review from Copilot
- Allowed merge methods: "Squash"
- β Require status checks to pass
- β Require branches to be up to date before merging
- β Do not require status checks on creation
- Status checks that are required:
pre-commit/pre-commit
andterraform/terraform
- β Block force pushes
- β Require code scanning results
Enable Dependabot.
- In Github UI, navigate to the repositories Settings > Code security
- Enable Dependabot security updates
- Enable Grouped security updates
- Enable Dependabot version updates
- Enable Dependabot on Actions runners
- CodeQL analysis > Set up > Default
- Enable Secret scanning
- Enable Push protection
Update the templated information:
- Replace
basic-terraform-infrastructure-template
with your<FORK_NAME>
- Update the "Introduction" section
- Update the "Usage" section
- Update the "Contributing" section
Upon first clone, install the pre-commit hooks.
pre-commit install
To run pre-commit hooks locally, without a git commit.
pre-commit run -a --all-files
To update pre-commit hooks, this ideally should be ran before a pull request is merged.
pre-commit autoupdate
Name | Version |
---|---|
terraform | 1.10.4 |
null | ~> 3 |
random | ~> 3 |
Name | Version |
---|---|
null | 3.2.3 |
random | 3.6.3 |
No modules.
Name | Type |
---|---|
null_resource.this | resource |
random_string.random | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
config | The config for creating this infrastructure. | object({ name = string }) |
n/a | yes |
Name | Description |
---|---|
name | The name created and used. |