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-downloads,
|
||||
body.layout-inner,
|
||||
body.layout-terraform,
|
||||
body.layout-intro{
|
||||
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
|
||||
remote state and have other Terraform states consume that.
|
||||
|
||||
An example is shown below:
|
||||
|
||||
```
|
||||
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.
|
||||
For example usage see the [terraform_remote_state](/docs/providers/terraform/r/remote_state.html) resource.
|
||||
|
||||
## 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
|
||||
minimal locking functionality, but it is a difficult problem without a
|
||||
central system that we currently aren't focused on solving.
|
||||
|
||||
|
|
|
@ -213,6 +213,10 @@
|
|||
<a href="/docs/providers/template/index.html">Template</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-providers-terraform") %>>
|
||||
<a href="/docs/providers/terraform/index.html">Terraform</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-providers-tls") %>>
|
||||
<a href="/docs/providers/tls/index.html">TLS</a>
|
||||
</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