website: plugins section, wip
This commit is contained in:
parent
c7784e44d3
commit
7e6141a1ca
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
layout: "docs"
|
||||||
|
page_title: "Plugins"
|
||||||
|
sidebar_current: "docs-plugins"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Plugins
|
||||||
|
|
||||||
|
Terraform is built on a plugin-based architecture. All providers and
|
||||||
|
provisioners that are used in Terraform configurations are plugins, even
|
||||||
|
the core types such as AWS and Heroku. Users of Terraform are able to
|
||||||
|
write new plugins in order to support new functionality in Terraform.
|
||||||
|
|
||||||
|
This section of the documentation gives a high-level overview of how
|
||||||
|
to write plugins for Terraform. It does not hold your hand through the
|
||||||
|
process, however, and expects a relatively high level of understanding
|
||||||
|
of Go, provider semantics, Unix, etc.
|
||||||
|
|
||||||
|
<div class="alert alert-block alert-warning">
|
||||||
|
<strong>Advanced topic!</strong> Plugin development is a highly advanced
|
||||||
|
topic in Terraform, and is not required knowledge for day-to-day usage.
|
||||||
|
If you don't plan on writing any plugins, we recommend not reading
|
||||||
|
this section of the documentation.
|
||||||
|
</div>
|
|
@ -0,0 +1,41 @@
|
||||||
|
---
|
||||||
|
layout: "docs"
|
||||||
|
page_title: "Provider Plugins"
|
||||||
|
sidebar_current: "docs-plugins-provider"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Provider Plugins
|
||||||
|
|
||||||
|
A provider in Terraform is responsible for the lifecycle of a resource:
|
||||||
|
create, read, update, delete. An example of a provider is AWS, which
|
||||||
|
can manage resources of type `aws_instance`, `aws_eip`, `aws_elb`, etc.
|
||||||
|
|
||||||
|
The primary reasons to care about provider plugins are:
|
||||||
|
|
||||||
|
* You want to add a new resource type to an existing provider.
|
||||||
|
|
||||||
|
* You want to write a completely new provider for managing resource
|
||||||
|
types in a system not yet supported.
|
||||||
|
|
||||||
|
* You want to write a completely new provider for custom, internal
|
||||||
|
systems such as a private inventory management system.
|
||||||
|
|
||||||
|
<div class="alert alert-block alert-warning">
|
||||||
|
<strong>Advanced topic!</strong> Plugin development is a highly advanced
|
||||||
|
topic in Terraform, and is not required knowledge for day-to-day usage.
|
||||||
|
If you don't plan on writing any plugins, we recommend not reading
|
||||||
|
this section of the documentation.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## Coming Soon!
|
||||||
|
|
||||||
|
The documentation for writing custom providers is coming soon. In the
|
||||||
|
mean time, you can look at how our
|
||||||
|
[built-in providers are written](https://github.com/hashicorp/terraform/tree/master/builtin).
|
||||||
|
We recommend copying as much as possible from our providers when working
|
||||||
|
on yours.
|
||||||
|
|
||||||
|
We're also rapidly working on improving the high-level helpers for
|
||||||
|
writing providers. We expect that writing providers will become much
|
||||||
|
easier very shortly, and acknowledge that writing them now is not the
|
||||||
|
easiest thing to do.
|
|
@ -123,6 +123,15 @@
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li<%= sidebar_current("docs-plugins") %>>
|
||||||
|
<a href="/docs/plugins/index.html">Plugins</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li<%= sidebar_current("docs-plugins-provider") %>>
|
||||||
|
<a href="/docs/plugins/provider.html">Provider</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li<%= sidebar_current("docs-internals") %>>
|
<li<%= sidebar_current("docs-internals") %>>
|
||||||
<a href="/docs/internals/index.html">Internals</a>
|
<a href="/docs/internals/index.html">Internals</a>
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
|
|
Loading…
Reference in New Issue