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.0

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.0.tar.gz (47.3 kB view details)

Uploaded Source

Built Distribution

cdktf_tf_module_stack-1.1.0-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

Details for the file cdktf-tf-module-stack-1.1.0.tar.gz.

File metadata

  • Download URL: cdktf-tf-module-stack-1.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 8360a175eb40edd8d18f706de2a0cc6aeaa0ae7f4b60d46c3d9563f86ff7c201
MD5 1a51bf306dfaebbdd88c571e85f43cd3
BLAKE2b-256 5a68018d0694665a7482587ab22b6a4ab09d7402badebd5077896c345219ed9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cdktf_tf_module_stack-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 104a6187d51abcd0d4a752ef23770959ff31341777206dce2a975d55d1929217
MD5 0419cde5e67f72a020dc885d20e96b37
BLAKE2b-256 4c54658d7775095be5afc644294a5197b928bc9b4919c91215556e8c233d3e2c

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