Skip to main content

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

This version

1.1.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdktf-tf-module-stack-1.1.1.tar.gz (47.3 kB view details)

Uploaded Source

Built Distribution

cdktf_tf_module_stack-1.1.1-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

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

Hashes for cdktf-tf-module-stack-1.1.1.tar.gz
Algorithm Hash digest
SHA256 9025235451f657d67351ade354918ca6ac028e68cb86cecbe2dd2b312d58b2f2
MD5 d86f5ce00d69c50b603525672ade7278
BLAKE2b-256 cb32fea557fdd0b425688ecc41342888830d16a9b7b61ec8a9de6cfdf9f951df

See more details on using hashes here.

File details

Details for the file cdktf_tf_module_stack-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cdktf_tf_module_stack-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f604d74ff889ac3ac5847fa39fa1f30aaf6faf04d216b6ffcb9c42cacd873cb
MD5 417f0b182919371ede55099df97eacdb
BLAKE2b-256 47c09149fbb5aaf8a61daa14e9ced18620e88f3406588eaeb70fe786cd2638ea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page