TerraConstructs is a library of classes and interfaces inspired by AWS CDK, but designed to leverage the power and flexibility of Terraform. Built using CDKTF, TerraConstructs enables developers to define cloud infrastructure using familiar object-oriented programming patterns, while taking advantage of Terraform/OpenTofu's broad provider ecosystem and efficient state management.
With TerraConstructs, you can write infrastructure as code that is intuitive, modular, and maintainable. It combines the ease of high-level constructs with the powerful capabilities of Terraform providers, offering an exceptional developer experience for defining and managing cloud resources.
- Object-Oriented Constructs: Simplify infrastructure definition with reusable, high-level constructs that abstract complexity.
- Terraform Integration: Use the extensive Terraform provider ecosystem for multi-cloud and hybrid-cloud deployments.
- Inspired by AWS CDK: Enjoy similar patterns and abstractions with the flexibility to go beyond AWS.
For detailed documentation, examples, and to learn more about the project, visit our website: 👉 terraconstructs.dev
To get started contributing to TerraConstructs:
-
Clone the Repository
git clone https://github.com/terraconstructs/base.git cd base
-
Install Dependencies Ensure you have Node.js (
>=18.18.0
) installed along with the pnpm (9.9.0
) package manager. Then run:pnpm install
This will set up the workspace and install all required dependencies.
Correct tool versions can be controlled using mise.
# view requested config
mise ls
# install tool versions required
mise install
TerraConstructs are validated using gruntwork-io/terratest.
Refer to integ/ for further details.