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
⌘+⇧+P
to open the command palette - Type
Developer: Reload Window
in 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
- tfenv
- 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
│ ├── 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
├── .dockerignore
├── .gitignore
├── .pre-commit-config.yaml
├── .tflint.hcl
└── README.md