Skip to main content

A Pulumi package for consuming Terraform Remote State resources.

Project description

Pulumi Terraform Provider

The Terraform resource provider for Pulumi lets you consume the outputs contained in Terraform state files from your Pulumi programs. The package provides a RemoteStateReference resource which acts like a native Pulumi StackReference.

To use this package, please install the Pulumi CLI first.

Installing

Node.js (JavaScript/TypeScript)

To use from JavaScript or TypeScript in Node.js, install using either npm:

$ npm install @pulumi/terraform

or yarn:

$ yarn add @pulumi/terraform

Python

To use from Python, install using pip:

$ pip install pulumi-terraform

Concepts

The @pulumi/terraform package provides a resource named RemoteStateReference which is used to read outputs from a Terraform state file stored in one of the supported Terraform remote state backends.

Examples

S3

The following program will read a Terraform state file stored in S3:

import * as tf from "@pulumi/terraform";

const remoteState = new tf.state.RemoteStateReference("s3state", {
    backendType: "s3",
    bucket: "pulumi-terraform-state-test",
    key: "test/terraform.tfstate",
    region: "us-west-2"
});

// Use the getOutput function on the resource to access root outputs
const vpcId= remoteState.getOutput("vpc_id");

Local file

The following program will read a Terraform state file stored locally in the filesystem:

import * as tf from "@pulumi/terraform";

const remotestate = new tf.state.RemoteStateReference("localstate", {
   backendType: "local",
   path: path.join(__dirname, "terraform.tfstate"),
});

// Use the getOutput function on the resource to access root outputs
const vpcId= remoteState.getOutput("vpc_id");

Terraform Enterprise

For state stored in Terraform Enterprise, the authentication token must be set via the Pulumi configuration system - for example, using:

pulumi config set --secret terraformEnterpriseToken <value>

The following program will read a Terraform state file stored in Terraform Enterprise, using the value of terraformEnterpriseToken from above:

import * as pulumi from "@pulumi/pulumi";
import * as tf from "@pulumi/terraform";

const config = new pulumi.Config();

const ref = new tf.state.RemoteStateReference("remote", {
    backendType: "remote",
    organization: "pulumi",
    token: config.requireSecret("terraformEnterpriseToken"),
    workspaces: {
        name: "test-state-file"
    }
});

// Use the getOutput function on the resource to access root outputs
const vpcId= remoteState.getOutput("vpc_id");

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

pulumi_terraform-1.2.0a1588355816.tar.gz (11.2 kB view details)

Uploaded Source

File details

Details for the file pulumi_terraform-1.2.0a1588355816.tar.gz.

File metadata

  • Download URL: pulumi_terraform-1.2.0a1588355816.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7

File hashes

Hashes for pulumi_terraform-1.2.0a1588355816.tar.gz
Algorithm Hash digest
SHA256 0aa82ef50186939984efdb224303c7314a56012e3ea124b64ada05105a02e905
MD5 abac4d7b88a59964b7e11e595b04e3bf
BLAKE2b-256 44177e9bb2c1b1b47d2aa941e60f7c2b99418fa7c5ebb44e279e82ff4dad07cf

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