website: plugins section, wip

This commit is contained in:
Mitchell Hashimoto 2014-07-27 17:03:31 -07:00
parent c7784e44d3
commit 7e6141a1ca
3 changed files with 74 additions and 0 deletions

View File

@ -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>

View File

@ -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.

View File

@ -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">