

Terraform Plugins are external single static binaries. "Terraform Core" is the actual Terraform project on GitHub. Terraform relies heavily on modern graph theory for managing dependencies and adhering to ordering. Terraform's Core is responsible for reading configuration and building the dependency graph. Before writing our own plugin, we need to better understand how Terraform Core interacts with Terraform Plugins. With more recent versions of the plugin system, there is a vibrant ecosystem of HashiCorp-maintained and third-party Terraform Plugins. Terraform has always had a plugin system, but early releases of Terraform were very limited. In order to comprehend both the importance and extensibility of Terraform Plugins, it is important to understand Terraform's architecture.

While the previous post focused on why users might leverage Terraform to manage GitHub, this post focuses on how users can extend Terraform with custom extensions. As an added bonus, most humans understand calendars, and this shared foundational knowledge provides common ground for a discussion on extending Terraform with a custom Terraform Provider. Managing Google Calendar with Terraform provides the same benefits. By capturing infrastructure requirements and dependencies as code, users can codify, version, automate, audit, reuse, and release changes. The benefits of managing Infrastructure as Code are fairly straightforward. This post explores extending Terraform even further by writing our own custom extension for managing events on Google Calendar. Earlier this year, we showcased how Terraform pushes the boundaries on the traditional definition of "infrastructure", enabling users to Manage GitHub Teams and Permissions with Terraform. Terraform is an open source tool for managing Infrastructure as Code. We also have a tutorial on managing Google Workspaces with Terraform that is kept up to date. Update: This tutorial is now out of date.
