Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hashicorp/terraform-cdk
Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform
https://github.com/hashicorp/terraform-cdk
cdk cdktf hack infrastructure-as-code terraform
Last synced: 11 days ago
JSON representation
Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform
- Host: GitHub
- URL: https://github.com/hashicorp/terraform-cdk
- Owner: hashicorp
- License: mpl-2.0
- Created: 2020-01-08T16:13:45.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-07T08:30:47.000Z (about 1 month ago)
- Last Synced: 2024-10-14T00:33:25.534Z (26 days ago)
- Topics: cdk, cdktf, hack, infrastructure-as-code, terraform
- Language: TypeScript
- Homepage: https://www.terraform.io/cdktf
- Size: 121 MB
- Stars: 4,854
- Watchers: 61
- Forks: 451
- Open Issues: 339
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Support: .github/SUPPORT.md
Awesome Lists containing this project
- awesome-github-repos - hashicorp/terraform-cdk - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform (TypeScript)
- awesome-repositories - hashicorp/terraform-cdk - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform (TypeScript)
- awesome-list - terraform-cdk
- awesome-cdk - cdktf - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform. (Related Projects / Multi-accounts setup)
- awesome-tf - terraform-cdk - CDK (Cloud Development Kit) for Terraform allows developers to use familiar programming languages to define cloud infrastructure and provision it through HashiCorp Terraform. (Tools / Community providers)
- awesome-cdk - cdktf - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform. (Related Projects / Multi-accounts setup)
README
![](https://github.com/hashicorp/terraform-cdk/workflows/Release/badge.svg)
[![npm version](https://badge.fury.io/js/cdktf.svg)](https://badge.fury.io/js/cdktf)
[![PyPI version](https://badge.fury.io/py/cdktf.svg)](https://badge.fury.io/py/cdktf)
[![NuGet version](https://badge.fury.io/nu/HashiCorp.Cdktf.svg)](https://badge.fury.io/nu/HashiCorp.Cdktf)
[![Maven Central](https://img.shields.io/maven-central/v/com.hashicorp/cdktf?color=brightgreen)](https://search.maven.org/artifact/com.hashicorp/cdktf)# CDK for Terraform
Cloud Development Kit for Terraform (CDKTF) allows you to use familiar
programming languages to define cloud infrastructure and provision it through
HashiCorp Terraform. This gives you access to the entire Terraform ecosystem without learning HashiCorp Configuration Language (HCL) and lets you leverage the power of your existing toolchain for testing, dependency management, etc.We currently support TypeScript, Python, Java, C#, and Go.
![terraform platform](./docs/terraform-platform.png)
CDKTF includes two packages:
- [cdktf-cli](./packages/cdktf-cli) - A CLI that allows users to run commands to initialize, import, and synthesize CDK for Terraform applications.
- [cdktf](./packages/cdktf) - A library for defining Terraform resources using programming constructs.## Get Started
Choose a language:
- [TypeScript](https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-build?in=terraform%2Fcdktf&variants=cdk-language%3Atypescript)
- [Python](https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-build?in=terraform%2Fcdktf&variants=cdk-language%3Apython)
- [Java](https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-build?in=terraform%2Fcdktf&variants=cdk-language%3Ajava)
- [C#](https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-build?in=terraform%2Fcdktf&variants=cdk-language%3Acsharp)
- [Go](https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-build?in=terraform%2Fcdktf&variants=cdk-language%3Ago)> **Hands-on:** Try the tutorials in the [CDK for Terraform](https://learn.hashicorp.com/collections/terraform/cdktf) collection on HashiCorp Learn.
## Documentation
Refer to the [CDKTF documentation](https://developer.hashicorp.com/terraform/cdktf) for more detail about how to build and manage CDKTF applications, including:
- [Application Architecture](https://developer.hashicorp.com/terraform/cdktf/concepts/cdktf-architecture): Learn the tools and processes that CDKTF uses to leverage the Terraform ecosystem and convert code into Terraform configuration files. It also explains the major components of a CDKTF application and how those pieces fit together.
- [Project Setup](https://developer.hashicorp.com/terraform/cdktf/create-and-deploy/project-setup): Learn how to create a new CDKTF project from a pre-built or custom template. Also learn how to convert an existing HCL project into a CDKTF application.
- [Unit Tests](https://developer.hashicorp.com/terraform/cdktf/test/unit-tests): Learn how to test your application in Typescript with jest.
- [Examples](https://developer.hashicorp.com/terraform/cdktf/examples-and-guides/examples): Reference example projects in every supported language and review explanatory videos and other resources.
## Community
The development team would love your feedback to help guide the project.
- Contribute using the [CONTRIBUTING.md](./CONTRIBUTING.md) guide.
- Ask a question on the HashiCorp [Discuss](https://discuss.hashicorp.com/) using the [terraform-cdk](https://discuss.hashicorp.com/c/terraform-core/cdk-for-terraform/) category.
- Report a [bug](https://github.com/hashicorp/terraform-cdk/issues/new?assignees=&labels=bug&template=bug-report.md&title=) or request a new [feature](https://github.com/hashicorp/terraform-cdk/issues/new?assignees=&labels=enhancement&template=feature-request.md&title=).
- Browse all [open issues](https://github.com/hashicorp/terraform-cdk/issues).## Build
About prerequisites, refer the [followings](./CONTRIBUTING.md#prerequisites).
Clone the project repository.
```bash
git clone https://github.com/hashicorp/terraform-cdk.git
```Download dependencies.
```bash
cd terraform-cdk/
yarn install
```Build the project and packages.
```bash
yarn build
```