A drop-in replacement for cdktf.TerraformStack that let's you define Terraform modules as construct
Project description
cdktf-tf-module-stack
A drop-in replacement for cdktf.TerraformStack that let's you define Terraform modules as construct.
Available Packages
NPM
The npm package is available at https://www.npmjs.com/package/@cdktf/tf-module-stack.
npm install @cdktf/tf-module-stack
PyPI
The PyPI package is available at https://pypi.org/project/cdktf-tf-module-stack.
pipenv install cdktf-tf-module-stack
Nuget
The Nuget package is available at https://www.nuget.org/packages/HashiCorp.Cdktf.TfModuleStack.
dotnet add package HashiCorp.Cdktf.TfModuleStack
Maven
The Maven package is available at https://mvnrepository.com/artifact/com.hashicorp/cdktf-tf-module-stack.
<dependency>
<groupId>com.hashicorp</groupId>
<artifactId>cdktf-tf-module-stack</artifactId>
<version>[REPLACE WITH DESIRED VERSION]</version>
</dependency>
Go
The go package is generated into the github.com/cdktf/cdktf-tf-module-stack-go
package.
go get github.com/cdktf/cdktf-tf-module-stack-go/tfmodulestack
Usage
Typescript
import { App } from "cdktf";
import {
TFModuleStack,
TFModuleVariable,
TFModuleOutput,
ProviderRequirement,
} from "cdktf-tf-module-stack";
import { Resource } from "@cdktf/provider-null";
class MyAwesomeModule extends TFModuleStack {
constructor(scope: Construct, id: string) {
super(scope, id);
new ProviderRequirement(this, "null", "~> 2.0");
const resource = new Resource(this, "resource");
new TFModuleVariable(this, "my_var", {
type: "string",
description: "A variable",
default: "default",
});
new TFModuleOutput(this, "my_output", {
value: resource.id,
});
}
}
const app = new App();
new MyAwesomeModule(app, "my-awesome-module");
app.synth();
Python
from constructs import Construct
from cdktf import App, TerraformStack
from imports.null.resource import Resource
from cdktf_tf_module_stack import TFModuleStack, TFModuleVariable, TFModuleOutput, ProviderRequirement
class MyAwesomeModule(TFModuleStack):
def __init__(self, scope: Construct, ns: str):
super().__init__(scope, ns)
ProviderRequirement(self, "null", provider_version_constraint="~> 2.0")
TFModuleVariable(self, "my_var", type="string", description="A variable", default="default")
resource = Resource(self, "resource")
TFModuleOutput(self, "my_output", value=resource.id)
app = App()
MyAwesomeModule(app, "my-awesome-module")
app.synth()
This will synthesize a Terraform JSON file that looks like this:
{
"output": {
"my_output": [
{
"value": "${null_resource.resource.id}"
}
]
},
"resource": {
"null_resource": {
"resource": {}
}
},
"terraform": {
"required_providers": {
"null": {
"source": "null",
"version": "~> 2.0"
}
},
"variable": {
"my_var": {
"default": "default",
"description": "A variable",
"type": "string"
}
}
}
}
Please note that the provider section is missing, so that the Terraform Workspace using the generated module can be used with any provider matching the version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdktf-tf-module-stack-2.0.0.tar.gz
.
File metadata
- Download URL: cdktf-tf-module-stack-2.0.0.tar.gz
- Upload date:
- Size: 49.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 461376b75e88f2aa908a06b29da4dbbe2a9ed50d1ce11f4c793366372107e34f |
|
MD5 | 570b0d20dc43852650dc117187c6f219 |
|
BLAKE2b-256 | 78341435230a658c9f416798db4c7eb79c31e0d800ff50686f0d81fc1570c251 |
File details
Details for the file cdktf_tf_module_stack-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: cdktf_tf_module_stack-2.0.0-py3-none-any.whl
- Upload date:
- Size: 47.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 860e69cc1e04440613d79e03ba42399f0e0f0805a065de57d1a23dc9e9374c37 |
|
MD5 | cd9f74fe21b84d9c2ac458187b0d4b93 |
|
BLAKE2b-256 | d753391b4f8f226ba962614ff55cac5d0b9024815ebe6e54d64a0e0da4cdd9a1 |