website: Document consul provider
This commit is contained in:
parent
dc0de63a72
commit
615d724aaa
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
layout: "consul"
|
||||||
|
page_title: "Provider: Consul"
|
||||||
|
sidebar_current: "docs-consul-index"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Consul Provider
|
||||||
|
|
||||||
|
The Consul provider exposes resources used to interact with
|
||||||
|
the Consul catalog. The provider optionally must can be configured with
|
||||||
|
to change default behavior.
|
||||||
|
|
||||||
|
Use the navigation to the left to read about the available resources.
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
# Configure the Consul provider
|
||||||
|
provider "consul" {
|
||||||
|
address = "demo.consul.io:80"
|
||||||
|
datacenter = "nyc1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Access a key in Consul
|
||||||
|
resource "consul_keys" "app" {
|
||||||
|
key {
|
||||||
|
name = "ami"
|
||||||
|
path = "service/app/launch_ami"
|
||||||
|
default = "ami-1234"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use our variable from Consul
|
||||||
|
resource "aws_instance" "app" {
|
||||||
|
ami = "${consul_keys.app.var.ami}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Argument Reference
|
||||||
|
|
||||||
|
The following arguments are supported:
|
||||||
|
|
||||||
|
* `address` - (Optional) The HTP API address of the agent to use. Defaults to "127.0.0.1:8500".
|
||||||
|
* `datacenter` - (Optional) The datacenter to use. Defaults to that of the agent.
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
---
|
||||||
|
layout: "consul"
|
||||||
|
page_title: "Consul: consul_keys"
|
||||||
|
sidebar_current: "docs-consul-resource-keys"
|
||||||
|
---
|
||||||
|
|
||||||
|
# consul\_keys
|
||||||
|
|
||||||
|
Provides access to Key/Value data in Consul. This can be used
|
||||||
|
to both read keys from Consul, but also to set the value of keys
|
||||||
|
in Consul. This is a powerful way dynamically set values in templates,
|
||||||
|
and to expose infrastructure details to clients.
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
resource "consul_keys" "app" {
|
||||||
|
datacenter = "nyc1"
|
||||||
|
|
||||||
|
# Read the launch AMI from Consul
|
||||||
|
key {
|
||||||
|
name = "ami"
|
||||||
|
path = "service/app/launch_ami"
|
||||||
|
default = "ami-1234"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set the CNAME of our load balancer as a key
|
||||||
|
key {
|
||||||
|
name = "elb_cname"
|
||||||
|
path = "service/app/elb_address"
|
||||||
|
value = "${aws_elb.app.dns_name}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start our instance with the dynamic ami value
|
||||||
|
resource "aws_instance" "app" {
|
||||||
|
ami = "${consul_keys.app.var.ami}"
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Argument Reference
|
||||||
|
|
||||||
|
The following arguments are supported:
|
||||||
|
|
||||||
|
* `datacenter` - (Optional) The datacenter to use. This overrides the
|
||||||
|
datacenter in the provider setup and the agent's default datacenter.
|
||||||
|
|
||||||
|
* `key` - (Required) Specifies a key in Consul to be read or written.
|
||||||
|
Supported values documented below.
|
||||||
|
|
||||||
|
The `key` block supports the following:
|
||||||
|
|
||||||
|
* `name` - (Required) This is the name of the key. This value of the
|
||||||
|
key is exposed as `var.<name>`. This is not the path of the key
|
||||||
|
in Consul.
|
||||||
|
|
||||||
|
* `path` - (Required) This is the path in Consul that should be read
|
||||||
|
or written to.
|
||||||
|
|
||||||
|
* `default` - (Optional) This is the default value to set for `var.<name>`
|
||||||
|
if the key does not exist in Consul. Defaults to the empty string.
|
||||||
|
|
||||||
|
* `value` - (Optional) If set, the key will be set to this value.
|
||||||
|
This allows a key to be written to.
|
||||||
|
|
||||||
|
* `delete` - (Optional) If true, then the key will be deleted when
|
||||||
|
the resource is destroyed. Otherwsie, it will be left in Consul.
|
||||||
|
Defaults to false.
|
||||||
|
|
||||||
|
## Attributes Reference
|
||||||
|
|
||||||
|
The following attributes are exported:
|
||||||
|
|
||||||
|
* `datacenter` - The datacenter the keys are being read/written to.
|
||||||
|
* `var.<name>` - For each name given, the corresponding attribute
|
||||||
|
has the value of the key.
|
||||||
|
|
|
@ -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/index.html">« Documentation Home</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-consul-index") %>>
|
||||||
|
<a href="/docs/providers/consul/index.html">Consul Provider</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-consul-resource") %>>
|
||||||
|
<a href="#">Resources</a>
|
||||||
|
<ul class="nav nav-visible">
|
||||||
|
<li<%= sidebar_current("docs-consul-resource-keys") %>>
|
||||||
|
<a href="/docs/providers/consul/r/keys.html">consul_keys</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= yield %>
|
||||||
|
<% end %>
|
|
@ -84,6 +84,10 @@
|
||||||
<a href="/docs/providers/cloudflare/index.html">CloudFlare</a>
|
<a href="/docs/providers/cloudflare/index.html">CloudFlare</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-providers-consul") %>>
|
||||||
|
<a href="/docs/providers/consul/index.html">Consul</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li<%= sidebar_current("docs-providers-do") %>>
|
<li<%= sidebar_current("docs-providers-do") %>>
|
||||||
<a href="/docs/providers/do/index.html">DigitalOcean</a>
|
<a href="/docs/providers/do/index.html">DigitalOcean</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -6,6 +6,7 @@ body.page-sub{
|
||||||
background-color: @light-black;
|
background-color: @light-black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.layout-consul,
|
||||||
body.layout-dnsimple,
|
body.layout-dnsimple,
|
||||||
body.layout-cloudflare,
|
body.layout-cloudflare,
|
||||||
body.layout-heroku,
|
body.layout-heroku,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.rls-l {
|
.rls-l {
|
||||||
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
font-weight: 100;
|
font-weight: 200;
|
||||||
}
|
}
|
||||||
.rls-sb {
|
.rls-sb {
|
||||||
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
@ -1277,6 +1277,7 @@ body.page-home #footer {
|
||||||
body.page-sub {
|
body.page-sub {
|
||||||
background-color: #242424;
|
background-color: #242424;
|
||||||
}
|
}
|
||||||
|
body.layout-consul,
|
||||||
body.layout-dnsimple,
|
body.layout-dnsimple,
|
||||||
body.layout-cloudflare,
|
body.layout-cloudflare,
|
||||||
body.layout-heroku,
|
body.layout-heroku,
|
||||||
|
@ -1287,6 +1288,7 @@ body.layout-inner,
|
||||||
body.layout-intro {
|
body.layout-intro {
|
||||||
background: #242424 url('../images/sidebar-wire.png') left 62px no-repeat;
|
background: #242424 url('../images/sidebar-wire.png') left 62px no-repeat;
|
||||||
}
|
}
|
||||||
|
body.layout-consul > .container .col-md-8[role=main],
|
||||||
body.layout-dnsimple > .container .col-md-8[role=main],
|
body.layout-dnsimple > .container .col-md-8[role=main],
|
||||||
body.layout-cloudflare > .container .col-md-8[role=main],
|
body.layout-cloudflare > .container .col-md-8[role=main],
|
||||||
body.layout-heroku > .container .col-md-8[role=main],
|
body.layout-heroku > .container .col-md-8[role=main],
|
||||||
|
@ -1298,6 +1300,7 @@ body.layout-intro > .container .col-md-8[role=main] {
|
||||||
min-height: 800px;
|
min-height: 800px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
body.layout-consul > .container .col-md-8[role=main] > div,
|
||||||
body.layout-dnsimple > .container .col-md-8[role=main] > div,
|
body.layout-dnsimple > .container .col-md-8[role=main] > div,
|
||||||
body.layout-cloudflare > .container .col-md-8[role=main] > div,
|
body.layout-cloudflare > .container .col-md-8[role=main] > div,
|
||||||
body.layout-heroku > .container .col-md-8[role=main] > div,
|
body.layout-heroku > .container .col-md-8[role=main] > div,
|
||||||
|
|
Loading…
Reference in New Issue