Terraform module bank for Grid Platform — the open-source infrastructure orchestration stack.
This repository is the public source of truth for Grid’s cloud modules. The Grid CLI copies the modules your config needs into a generated workspace (archive/…/modules/ under grid-config, or any grid generate output). You can also compose these modules from your own root Terraform without Grid.
Open modules, no lock-in. Every path here is plain Terraform. Fork it, pin it, or vendor copies into your desired-state
archive/— the stack stays operable if Grid is removed.
| Component | Role |
|---|---|
| grid-terraform (this repo) | Reusable modules per cloud / product |
| grid-config | Desired-state JSON + generated archive/ |
| grid-cli | Maps Grid JSON → modules here → Terraform |
| grid-core | API that runs generate / plan / apply |
| grid-ui | Console |
Website: gridplatform.org · Docs: grid-docs · Community: Discord
- One folder = one module = one cloud product (or a clearly scoped building block).
- Callers compose modules and wire dependencies; a module should not silently create resources that belong to another product.
- Provider requirements live in each module’s
versions.tf. The repo-rootversions.tfpins providers for workspaces that compose many modules from this bank.
grid-terraform/
├── aws/
├── gcp/
├── azure/
├── oracle/
├── ibm/
├── alibaba/
├── tencent/
├── huawei/
├── ovh/
├── deutsche-telekom/
├── ctrls/
├── yotta/
├── rancher/
├── openshift/
├── redis-enterprise/
├── confluent-cloud/
└── versions.tf
- Author Grid JSON (
provider+resources) in grid-config (or any config root). - Run
grid generate— CLI resolvestype→modulePathand copies modules from this bank. - Generated
main.tfreferences./modules/…so apply works from the copied tree alone. - Override the bank with
GRID_MODULE_BANK— a git URL (cloned to cache) or a local path.
# Remote (default for Grid Core)
export GRID_MODULE_BANK=https://github.com/gridplatform/grid-terraform.git
export GRID_MODULE_BANK_REF=main
# Or a local checkout while developing modules
export GRID_MODULE_BANK=/path/to/grid-terraform| Provider folder | Modules |
|---|---|
aws |
219 |
gcp |
126 |
azure |
133 |
oracle |
98 |
ibm |
65 |
alibaba |
84 |
tencent |
61 |
huawei |
108 |
ovh |
42 |
deutsche-telekom |
48 |
ctrls |
30 |
yotta |
30 |
rancher |
40 |
openshift |
29 |
Counts = directories under each provider folder. Many modules are scaffolds (coming_soon / planned in the CLI catalog); hyperscaler AWS/GCP paths are the most mature for real apply today.
| Cloud | Modules |
|---|---|
| AWS | aws/cloudwatch |
| GCP | gcp/monitoring, gcp/cloud-logging, … |
| Azure | azure/monitor, azure/log-analytics, … |
Community modules and fixes make Grid better for everyone. See CONTRIBUTING.md for structure, formatting, and PR expectations.
High level:
- One concern per module folder
- Declare providers in
versions.tf; expose inputs invariables.tf - Prefer idempotent, composable interfaces over opinionated “god” modules
- Do not commit credentials or customer-specific state
Issues: github.com/gridplatform/grid-terraform/issues
MIT — see LICENSE. Part of the Grid Platform open-source project.
Built with ❤️ for the community