42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
---
|
|
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.
|