Add Terraform/Remote State documentation to provider/resource section.
Issue #2074
This commit is contained in:
parent
8eb65bec95
commit
b6788479de
|
@ -35,6 +35,7 @@ body.layout-vsphere,
|
||||||
body.layout-docs,
|
body.layout-docs,
|
||||||
body.layout-downloads,
|
body.layout-downloads,
|
||||||
body.layout-inner,
|
body.layout-inner,
|
||||||
|
body.layout-terraform,
|
||||||
body.layout-intro{
|
body.layout-intro{
|
||||||
background: $light-black image-url('sidebar-wire.png') left 62px no-repeat;
|
background: $light-black image-url('sidebar-wire.png') left 62px no-repeat;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
layout: "terraform"
|
||||||
|
page_title: "Provider: Terraform"
|
||||||
|
sidebar_current: "docs-terraform-index"
|
||||||
|
description: |-
|
||||||
|
The Terraform provider is used to access meta data from shared infrastructure.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Terraform Provider
|
||||||
|
|
||||||
|
The terraform provider exposes resources to access state meta data
|
||||||
|
for Terraform outputs from 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.
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
# Shared infrastructure state stored in Atlas
|
||||||
|
resource "terraform_remote_state" "vpc" {
|
||||||
|
backend = "atlas"
|
||||||
|
config {
|
||||||
|
path = "hashicorp/vpc-prod"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "foo" {
|
||||||
|
# ...
|
||||||
|
subnet_id = "${terraform_remote_state.vpc.output.subnet_id}"
|
||||||
|
}
|
||||||
|
```
|
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
layout: "terraform"
|
||||||
|
page_title: "Terraform: terraform_remote_state"
|
||||||
|
sidebar_current: "docs-terraform-resource-remote-state"
|
||||||
|
description: |-
|
||||||
|
Accesses state meta data from a remote backend.
|
||||||
|
---
|
||||||
|
|
||||||
|
# remote\_state
|
||||||
|
|
||||||
|
Retrieves state meta data from a remote backend
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
resource "terraform_remote_state" "vpc" {
|
||||||
|
backend = "atlas"
|
||||||
|
config {
|
||||||
|
path = "hashicorp/vpc-prod"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "foo" {
|
||||||
|
# ...
|
||||||
|
subnet_id = "${terraform_remote_state.vpc.output.subnet_id}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Argument Reference
|
||||||
|
|
||||||
|
The following arguments are supported:
|
||||||
|
|
||||||
|
* `backend` - (Required) The remote backend to use.
|
||||||
|
* `config` - (Optional) The configuration of the remote backend.
|
||||||
|
|
||||||
|
## Attributes Reference
|
||||||
|
|
||||||
|
The following attributes are exported:
|
||||||
|
|
||||||
|
* `backend` - See Argument Reference above.
|
||||||
|
* `config` - See Argument Reference above.
|
||||||
|
* `output` - The values of the configured `outputs` for the root module referenced by the remote state.
|
|
@ -41,24 +41,7 @@ teams to run their own infrastructure. As a more specific example with AWS:
|
||||||
you can expose things such as VPC IDs, subnets, NAT instance IDs, etc. through
|
you can expose things such as VPC IDs, subnets, NAT instance IDs, etc. through
|
||||||
remote state and have other Terraform states consume that.
|
remote state and have other Terraform states consume that.
|
||||||
|
|
||||||
An example is shown below:
|
For example usage see the [terraform_remote_state](/docs/providers/terraform/r/remote_state.html) resource.
|
||||||
|
|
||||||
```
|
|
||||||
resource "terraform_remote_state" "vpc" {
|
|
||||||
backend = "atlas"
|
|
||||||
config {
|
|
||||||
name = "hashicorp/vpc-prod"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "aws_instance" "foo" {
|
|
||||||
# ...
|
|
||||||
subnet_id = "${terraform_remote_state.vpc.output.subnet_id}"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
This makes teamwork and componentization of infrastructure frictionless
|
|
||||||
within your infrastructure.
|
|
||||||
|
|
||||||
## Locking and Teamwork
|
## Locking and Teamwork
|
||||||
|
|
||||||
|
@ -73,4 +56,3 @@ locking for you.
|
||||||
In the future, we'd like to extend the remote state system to allow some
|
In the future, we'd like to extend the remote state system to allow some
|
||||||
minimal locking functionality, but it is a difficult problem without a
|
minimal locking functionality, but it is a difficult problem without a
|
||||||
central system that we currently aren't focused on solving.
|
central system that we currently aren't focused on solving.
|
||||||
|
|
||||||
|
|
|
@ -213,6 +213,10 @@
|
||||||
<a href="/docs/providers/template/index.html">Template</a>
|
<a href="/docs/providers/template/index.html">Template</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-providers-terraform") %>>
|
||||||
|
<a href="/docs/providers/terraform/index.html">Terraform</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li<%= sidebar_current("docs-providers-tls") %>>
|
<li<%= sidebar_current("docs-providers-tls") %>>
|
||||||
<a href="/docs/providers/tls/index.html">TLS</a>
|
<a href="/docs/providers/tls/index.html">TLS</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<% wrap_layout :inner do %>
|
||||||
|
<% content_for :sidebar do %>
|
||||||
|
<div class="docs-sidebar hidden-print affix-top" role="complementary">
|
||||||
|
<ul class="nav docs-sidenav">
|
||||||
|
<li<%= sidebar_current("docs-home") %>>
|
||||||
|
<a href="/docs/providers/index.html">« Documentation Home</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-terraform-index") %>>
|
||||||
|
<a href="/docs/providers/terraform/index.html">Terraform Provider</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current(/^docs-terraform-resource/) %>>
|
||||||
|
<a href="#">Resources</a>
|
||||||
|
<ul class="nav nav-visible">
|
||||||
|
<li<%= sidebar_current("docs-terraform-resource-remote-state") %>>
|
||||||
|
<a href="/docs/providers/terraform/r/remote_state.html">terraform_remote_state</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= yield %>
|
||||||
|
<% end %>
|
Loading…
Reference in New Issue