» Extending Terraform
Terraform can be extended to allow users to manage more infrastructure providers with Providers (containing Resources and/or Data Sources), more options to store Terraform state with Backends and more options to provision instance with Provisioners. Providers and Provisioners are collectively categorized as "Plugins".
This is an advanced section! If you are looking for information on using Terraform with any of the existing Plugins, please refer to the Docs section of this website.
The Extending Terraform section contains content for users who wish to extend Terraform. The intended audience is anyone wanting to add or edit source code (“developers”) for either Terraform itself or a Terraform Plugin. The content assumes you have basic operating knowledge or experience using Terraform.
Below is a brief description of each section. The content is organized from simplest to most complex — developers new to writing code for Terraform should start at the top.
High level overview of how the Terraform tool works. Learn about the logical components of Terraform (Core vs. Plugins) and the basics of how they interact.
Learn about the different types of Terraform plugins — Providers and Provisioners.
A step by step guide for writing, compiling, and executing an example Terraform Provider.
The Schema package is a high-level framework for easily writing Plugins for Terraform. Providers (with Resources and/or Data Sources), and Provisioners are all defined in terms of the Schema package, which includes builtin types and methods for developers to use when writing plugins.
Terraform is a mature project with a growing community. There are active, dedicated people willing to help you through various mediums.