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
File details
Details for the file pulumi_terraform-5.7.0a1660649424.tar.gz
.
File metadata
- Download URL: pulumi_terraform-5.7.0a1660649424.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 810111b214c7601c02fc89ec642a6cb5ed4423ca26e0cf24f8b58da5ea9d8cd0 |
|
MD5 | 00be35b9cf2e2199cfe1eb74cfad9ba8 |
|
BLAKE2b-256 | 2dd2c62ecdfd50bf975b7cff3f5b269ab4b1272a215538375cf4ffea139b81f5 |