{"id":47184453,"url":"https://github.com/a5chin/terraform-template","last_synced_at":"2026-03-13T08:36:26.553Z","repository":{"id":261933985,"uuid":"874006205","full_name":"a5chin/terraform-template","owner":"a5chin","description":"This repository contains configurations to set up a Terraform development environment using VSCode's Dev Container feature. The environment includes terraform-docs.","archived":false,"fork":false,"pushed_at":"2026-03-07T01:57:15.000Z","size":2702,"stargazers_count":5,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-07T09:28:34.193Z","etag":null,"topics":["devcontainer","google-cloud","google-cloud-platform","googlecloud","googlecloudplatform","tenv","terraform","terraform-docs","vscode"],"latest_commit_sha":null,"homepage":"https://zenn.dev/dena/articles/terraform_with_devcontainer","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a5chin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-17T05:13:50.000Z","updated_at":"2026-01-24T11:01:02.000Z","dependencies_parsed_at":"2025-02-07T15:23:30.138Z","dependency_job_id":"d8025b7d-a715-44be-90c5-03dbd8805c78","html_url":"https://github.com/a5chin/terraform-template","commit_stats":null,"previous_names":["a5chin/terraform-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/a5chin/terraform-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a5chin%2Fterraform-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a5chin%2Fterraform-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a5chin%2Fterraform-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a5chin%2Fterraform-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a5chin","download_url":"https://codeload.github.com/a5chin/terraform-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a5chin%2Fterraform-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30462530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T06:34:02.089Z","status":"ssl_error","status_checked_at":"2026-03-13T06:33:49.182Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devcontainer","google-cloud","google-cloud-platform","googlecloud","googlecloudplatform","tenv","terraform","terraform-docs","vscode"],"created_at":"2026-03-13T08:36:25.845Z","updated_at":"2026-03-13T08:36:26.546Z","avatar_url":"https://github.com/a5chin.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Development with VSCode Dev Container\n\n\u003cdiv align=\"center\"\u003e\n\n[![Terraform](https://img.shields.io/badge/Terraform-7B42BC?style=flat\u0026logo=terraform\u0026logoColor=white)](https://github.com/hashicorp/terraform)\n\n[![Docker](https://github.com/a5chin/terraform-template/actions/workflows/docker.yml/badge.svg)](https://github.com/a5chin/terraform-template/actions/workflows/docker.yml)\n[![Terraform](https://github.com/a5chin/terraform-template/actions/workflows/terraform.yml/badge.svg)](https://github.com/a5chin/terraform-template/actions/workflows/terraform.yml)\n\n\u003c/div\u003e\n\n## Overview\nThis repository contains configurations to set up a Terraform development environment using VSCode's Dev Container feature.\n\n![demo](assets/gif/tfmt.gif)\n\nIf the Terraform format does not work, try reloading the VS Code window.\nSpecifically, you can solve this problem by following the steps below.\n\n1. Type `⌘+⇧+P` to open the command palette\n2. Type `Developer: Reload Window` in the command palette to reload the window\n\n### Contents\n- [Terraform Development with VSCode Dev Container](#terraform-development-with-vscode-dev-container)\n  - [Overview](#overview)\n    - [Contents](#contents)\n  - [Settings](#settings)\n  - [Dev Container](#dev-container)\n  - [GitHub Actions](#github-actions)\n  - [pre-commit](#pre-commit)\n  - [Appendix](#appendix)\n    - [The structure of this repository](#the-structure-of-this-repository)\n\n## Settings\n- files.insertFinalNewline\n- files.trimTrailingWhitespace\n- editor.formatOnSave\n  - dockercompose\n  - dockerfile\n  - github-actions-workflow\n  - json, jsonc\n  - terraform\n  - yaml\n\n## Dev Container\n- `devcontainer.json`\n  - features\n    - hadolint\n    - pre-commit\n    - terraform-docs\n  - extentions\n    - [aquasecurityofficial.trivy-vulnerability-scanner](https://marketplace.visualstudio.com/items?itemName=aquasecurityofficial.trivy-vulnerability-scanner)\n    - [codezombiech.gitignore](https://marketplace.visualstudio.com/items?itemName=codezombiech.gitignore)\n    - [eamodio.gitlens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)\n    - [exiasr.hadolint](https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint)\n    - [hashicorp.terraform](https://marketplace.visualstudio.com/items?itemName=hashicorp.terraform)\n    - [mosapride.zenkaku](https://marketplace.visualstudio.com/items?itemName=mosapride.zenkaku)\n    - [ms-azuretools.vscode-docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)\n    - [ms-vscode-remote.remote-containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)\n    - [oderwat.indent-rainbow](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow)\n    - [pkief.material-icon-theme](https://marketplace.visualstudio.com/items?itemName=pkief.material-icon-theme)\n    - [redhat.vscode-yaml](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml)\n    - [shardulm94.trailing-spaces](https://marketplace.visualstudio.com/items?itemName=shardulm94.trailing-spaces)\n    - [usernamehw.errorlens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens)\n    - [yzhang.markdown-all-in-one](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)\n- `Dockerfile`\n    - tenv\n    - trivy\n    - google cloud\n\n## GitHub Actions\n- `docker.yml`\n  - Workflow to check if you can build with Docker\n- `terraform.yml`\n  - Workflow to check\n    - format\n    - lint\n    - test\n    - validation\n\n## pre-commit\nThe `.pre-commit-config.yaml` file can contain scripts to be executed before commit.\n\n```sh\n# Terraform Formatter\nterraform fmt .\n\n# Terraform Linter\ntflint --recursive\n\n# Terraform Docs\nterraform-docs markdown table --output-file README.md --output-mode inject /path/to/module\n```\n\n## Appendix\n\n### The structure of this repository\n```\n.\n├── .devcontainer\n│   ├── devcontainer.json\n│   └── Dockerfile\n├── .github\n│   └── workflows\n│       └── terraform.yml\n├── .vscode\n│   ├── extensions.json\n│   └── settings.json\n├── environments\n│   ├── dev\n│   │   ├── .terraform-version\n│   │   ├── backend.tf\n│   │   ├── main.tf\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   └── versions.tf\n│   ├── prod\n│   │   ├── .terraform-version\n│   │   ├── backend.tf\n│   │   ├── main.tf\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   └── versions.tf\n│   └── stg\n│       ├── .terraform-version\n│       ├── backend.tf\n│       ├── main.tf\n│       ├── outputs.tf\n│       ├── provider.tf\n│       └── versions.tf\n└── modules\n│   ├── functions_scheduler\n│   │   ├── README.md\n│   │   ├── architecture.drawio.svg\n│   │   ├── functions.tf\n│   │   ├── main.tf\n│   │   ├── main.tftest.hcl\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   ├── scheduler.tf\n│   │   ├── src\n│   │   │   ├── main.py\n│   │   │   └── requirements.txt\n│   │   └── variables.tf\n│   ├── gcs2spanner\n│   │   ├── README.md\n│   │   ├── architecture.drawio.svg\n│   │   ├── functoins.tf\n│   │   ├── main.tf\n│   │   ├── main.tftest.hcl\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   ├── scheduler.tf\n│   │   ├── src\n│   │   │   ├── main.py\n│   │   │   └── requirements.txt\n│   │   ├── variables.tf\n│   ├── gcs2spanner\n│   │   ├── README.md\n│   │   ├── architecture.drawio.svg\n│   │   ├── dataflow.tf\n│   │   ├── functoins.tf\n│   │   ├── gcs.tf\n│   │   ├── main.tf\n│   │   ├── main.tftest.hcl\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   ├── sa.tf\n│   │   ├── src\n│   │   │   ├── authz.py\n│   │   │   ├── extract.py\n│   │   │   ├── logger.py\n│   │   │   ├── main.py\n│   │   │   ├── requirements.txt\n│   │   │   └── tests\n│   │   │       └── test_extract.py\n│   │   ├── variables.tf\n│   │   └── vpc.tf\n│   ├── log2bq\n│   │   ├── README.md\n│   │   ├── bigquery.tf\n│   │   ├── logging.tf\n│   │   ├── main.tf\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   └── variables.tf\n│   ├── microservices\n│   │   ├── README.md\n│   │   ├── architecture.drawio.svg\n│   │   ├── backend.tf\n│   │   ├── db.tf\n│   │   ├── frontend.tf\n│   │   ├── main.tf\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   ├── variables.tf\n│   │   └── vpc.tf\n│   ├── monitoring-tools\n│   │   ├── README.md\n│   │   ├── alert.tf\n│   │   ├── channel.tf\n│   │   ├── main.tf\n│   │   ├── main.tftest.hcl\n│   │   ├── outputs.tf\n│   │   ├── provider.tf\n│   │   └── variables.tf\n│   └── workload-identity\n│       ├── README.md\n│       ├── main.tf\n│       ├── main.tftest.hcl\n│       ├── outputs.tf\n│       ├── pool.tf\n│       ├── pool_provider.tf\n│       ├── provider.tf\n│       ├── sa.tf\n│       └── variables.tf\n├── .dockerignore\n├── .gitignore\n├── .pre-commit-config.yaml\n├── .tflint.hcl\n├── .tool-versions\n└── README.md\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa5chin%2Fterraform-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa5chin%2Fterraform-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa5chin%2Fterraform-template/lists"}