From 76fb7693b5a2714e63546d807a3eae4140717c33 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Sun, 1 May 2016 16:05:54 -0700 Subject: [PATCH] provider/terraform: remote state resource becomes a data source As a first example of a real-world data source, the pre-existing terraform_remote_state resource is adapted to be a data source. The original resource is shimmed to wrap the data source for backward compatibility. --- {r => d}/remote_state.html.md | 6 +++--- index.html.markdown | 17 +++++------------ 2 files changed, 8 insertions(+), 15 deletions(-) rename {r => d}/remote_state.html.md (84%) diff --git a/r/remote_state.html.md b/d/remote_state.html.md similarity index 84% rename from r/remote_state.html.md rename to d/remote_state.html.md index dbe19fd312..683ba264e3 100644 --- a/r/remote_state.html.md +++ b/d/remote_state.html.md @@ -1,7 +1,7 @@ --- layout: "terraform" page_title: "Terraform: terraform_remote_state" -sidebar_current: "docs-terraform-resource-remote-state" +sidebar_current: "docs-terraform-datasource-remote-state" description: |- Accesses state meta data from a remote backend. --- @@ -13,7 +13,7 @@ Retrieves state meta data from a remote backend ## Example Usage ``` -resource "terraform_remote_state" "vpc" { +data "terraform_remote_state" "vpc" { backend = "atlas" config { name = "hashicorp/vpc-prod" @@ -22,7 +22,7 @@ resource "terraform_remote_state" "vpc" { resource "aws_instance" "foo" { # ... - subnet_id = "${terraform_remote_state.vpc.output.subnet_id}" + subnet_id = "${data.terraform_remote_state.vpc.output.subnet_id}" } ``` diff --git a/index.html.markdown b/index.html.markdown index e5ccbff59e..20a9dfee3c 100644 --- a/index.html.markdown +++ b/index.html.markdown @@ -8,23 +8,16 @@ description: |- # Terraform Provider -The terraform provider exposes resources to access state meta data -for Terraform outputs from shared infrastructure. +The terraform provider provides access to outputs from the Terraform state +of shared infrastructure. -The terraform provider is what we call a _logical provider_. This has no -impact on how it behaves, but conceptually it is important to understand. -The terraform provider doesn't manage any _physical_ resources; it isn't -creating servers, writing files, etc. It is used to access the outputs -of other Terraform states to be used as inputs for resources. -Examples will explain this best. - -Use the navigation to the left to read about the available resources. +Use the navigation to the left to read about the available data sources. ## Example Usage ``` # Shared infrastructure state stored in Atlas -resource "terraform_remote_state" "vpc" { +data "terraform_remote_state" "vpc" { backend = "atlas" config { path = "hashicorp/vpc-prod" @@ -33,6 +26,6 @@ resource "terraform_remote_state" "vpc" { resource "aws_instance" "foo" { # ... - subnet_id = "${terraform_remote_state.vpc.output.subnet_id}" + subnet_id = "${data.terraform_remote_state.vpc.output.subnet_id}" } ```