This repository contains configurations to set up a Terraform development environment using VSCode's Dev Container feature.
If the Terraform format does not work, try reloading the VS Code window. Specifically, you can solve this problem by following the steps below.
- Type
⌘+⇧+Pto open the command palette - Type
Developer: Reload Windowin the command palette to reload the window
- files.insertFinalNewline
- files.trimTrailingWhitespace
- editor.formatOnSave
- dockercompose
- dockerfile
- github-actions-workflow
- json, jsonc
- terraform
- yaml
devcontainer.json- features
- hadolint
- pre-commit
- terraform-docs
- extentions
- aquasecurityofficial.trivy-vulnerability-scanner
- codezombiech.gitignore
- eamodio.gitlens
- exiasr.hadolint
- hashicorp.terraform
- mosapride.zenkaku
- ms-azuretools.vscode-docker
- ms-vscode-remote.remote-containers
- oderwat.indent-rainbow
- pkief.material-icon-theme
- redhat.vscode-yaml
- shardulm94.trailing-spaces
- usernamehw.errorlens
- yzhang.markdown-all-in-one
- features
Dockerfile- tenv
- trivy
- google cloud
docker.yml- Workflow to check if you can build with Docker
terraform.yml- Workflow to check
- format
- lint
- test
- validation
- Workflow to check
The .pre-commit-config.yaml file can contain scripts to be executed before commit.
# Terraform Formatter
terraform fmt .
# Terraform Linter
tflint --recursive
# Terraform Docs
terraform-docs markdown table --output-file README.md --output-mode inject /path/to/module.
├── .devcontainer
│ ├── devcontainer.json
│ └── Dockerfile
├── .github
│ └── workflows
│ └── terraform.yml
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── environments
│ ├── dev
│ │ ├── .terraform-version
│ │ ├── backend.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ └── versions.tf
│ ├── prod
│ │ ├── .terraform-version
│ │ ├── backend.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ └── versions.tf
│ └── stg
│ ├── .terraform-version
│ ├── backend.tf
│ ├── main.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── versions.tf
└── modules
│ ├── functions_scheduler
│ │ ├── README.md
│ │ ├── architecture.drawio.svg
│ │ ├── functions.tf
│ │ ├── main.tf
│ │ ├── main.tftest.hcl
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ ├── scheduler.tf
│ │ ├── src
│ │ │ ├── main.py
│ │ │ └── requirements.txt
│ │ └── variables.tf
│ ├── gcs2spanner
│ │ ├── README.md
│ │ ├── architecture.drawio.svg
│ │ ├── functoins.tf
│ │ ├── main.tf
│ │ ├── main.tftest.hcl
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ ├── scheduler.tf
│ │ ├── src
│ │ │ ├── main.py
│ │ │ └── requirements.txt
│ │ ├── variables.tf
│ ├── gcs2spanner
│ │ ├── README.md
│ │ ├── architecture.drawio.svg
│ │ ├── dataflow.tf
│ │ ├── functoins.tf
│ │ ├── gcs.tf
│ │ ├── main.tf
│ │ ├── main.tftest.hcl
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ ├── sa.tf
│ │ ├── src
│ │ │ ├── authz.py
│ │ │ ├── extract.py
│ │ │ ├── logger.py
│ │ │ ├── main.py
│ │ │ ├── requirements.txt
│ │ │ └── tests
│ │ │ └── test_extract.py
│ │ ├── variables.tf
│ │ └── vpc.tf
│ ├── log2bq
│ │ ├── README.md
│ │ ├── bigquery.tf
│ │ ├── logging.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ └── variables.tf
│ ├── microservices
│ │ ├── README.md
│ │ ├── architecture.drawio.svg
│ │ ├── backend.tf
│ │ ├── db.tf
│ │ ├── frontend.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ ├── variables.tf
│ │ └── vpc.tf
│ ├── monitoring-tools
│ │ ├── README.md
│ │ ├── alert.tf
│ │ ├── channel.tf
│ │ ├── main.tf
│ │ ├── main.tftest.hcl
│ │ ├── outputs.tf
│ │ ├── provider.tf
│ │ └── variables.tf
│ └── workload-identity
│ ├── README.md
│ ├── main.tf
│ ├── main.tftest.hcl
│ ├── outputs.tf
│ ├── pool.tf
│ ├── pool_provider.tf
│ ├── provider.tf
│ ├── sa.tf
│ └── variables.tf
├── .dockerignore
├── .gitignore
├── .pre-commit-config.yaml
├── .tflint.hcl
├── .tool-versions
└── README.md
