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.
Setup
Node.js
Run yarn add @cdktf/tf-module-stack
(or npm install --save @cdktf/tf-module-stack
) to install the package.
Python
Run pip install cdktf-tf-module-stack
to install the package.
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-1.1.1.tar.gz
.
File metadata
- Download URL: cdktf-tf-module-stack-1.1.1.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9025235451f657d67351ade354918ca6ac028e68cb86cecbe2dd2b312d58b2f2 |
|
MD5 | d86f5ce00d69c50b603525672ade7278 |
|
BLAKE2b-256 | cb32fea557fdd0b425688ecc41342888830d16a9b7b61ec8a9de6cfdf9f951df |
File details
Details for the file cdktf_tf_module_stack-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: cdktf_tf_module_stack-1.1.1-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f604d74ff889ac3ac5847fa39fa1f30aaf6faf04d216b6ffcb9c42cacd873cb |
|
MD5 | 417f0b182919371ede55099df97eacdb |
|
BLAKE2b-256 | 47c09149fbb5aaf8a61daa14e9ced18620e88f3406588eaeb70fe786cd2638ea |