GithubHelp home page GithubHelp logo

isabella232 / terraform-cdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hashicorp/terraform-cdk

0.0 0.0 0.0 56.97 MB

Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform

Home Page: https://www.terraform.io/cdktf

License: Mozilla Public License 2.0

TypeScript 93.20% Shell 0.47% JavaScript 2.08% Dockerfile 0.09% Python 1.28% Batchfile 0.12% Java 0.96% C# 0.88% Go 0.75% HCL 0.09% Makefile 0.09%

terraform-cdk's Introduction

npm version PyPI version NuGet version Maven Central homebrew

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 (experimental).

terraform platform

CDKTF includes two packages:

  • cdktf-cli - A CLI that allows users to run commands to initialize, import, and synthesize CDK for Terraform applications.
  • cdktf - A library for defining Terraform resources using programming constructs.

Note: CDK for Terraform is under active development, and we are still iterating on key workflows and best practices. Learn more about the project's maturity below.

Get Started

Choose a language:

Hands-on: Try the tutorials in the CDK for Terraform collection on HashiCorp Learn.

Documentation

Refer to the CDKTF documentation for more detail about how to build and manage CDKTF applications, including:

  • Application 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: 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: Learn how to test your application in Typescript with jest.

  • Examples: Reference example projects in every supported language and review explanatory videos and other resources.

Project Maturity

CDK for Terraform is under active development; we’re still working out key workflows and best practices. We’re iterating fast and are likely to introduce breaking changes to existing APIs to improve the overall user experience of the product. Like other HashiCorp pre-1.0 tools, some early-adopter users are already using CDK for Terraform in production, and we are working with those users to validate and improve workflows.

Early adopters of CDK for Terraform should expect to encounter and work around bugs occasionally, may need to refactor their codebase with each major release, and will intermittently need to use HCL and understand how JSON Terraform configurations are generated, for example to use overrides to use Terraform functionality that cannot currently be expressed using CDK for Terraform. Our goal is to provide a user experience where this is an exceptional edge case. If you’re comfortable with this level of troubleshooting, we’re very interested in your feedback and practical experience.

These caveats apply to CDK for Terraform itself, which generates Terraform configurations. Generated Terraform configurations are applied using Terraform Core, a well established / mature tool to provision infrastructure.

Community

The development team would love your feedback to help guide the project.

Build

Clone the project repository.

git clone https://github.com/hashicorp/terraform-cdk.git

Download dependencies.

cd terraform-cdk/
yarn install

Build the project and packages.

yarn build

terraform-cdk's People

Contributors

abarbare avatar ansgarm avatar anubhavmishra avatar bollohz avatar brkalow avatar bverhoeve avatar cmclaughlin avatar danieldreier avatar danielmschmidt avatar dependabot[bot] avatar dstaley avatar eladb avatar jescalan avatar joatmon08 avatar jsteinich avatar laurapacilio avatar marcoferrer avatar neilkuan avatar phinze avatar pmrz00 avatar redeux avatar rirze avatar schersh avatar sergeyzenchenko avatar skorfmann avatar smalltown avatar team-tf-cdk avatar thiskevinwang avatar topfunky avatar yufeiminds avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.