terraform/website/source/docs/plugins/provider.html.md

1.5 KiB

layout page_title sidebar_current
docs Provider Plugins 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.

Advanced topic! 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.

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