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>
|
||||
</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") %>>
|
||||
<a href="/docs/internals/index.html">Internals</a>
|
||||
<ul class="nav">
|
||||
|
|
Loading…
Reference in New Issue