Announcing v2.0.0 of the Plugin SDK

Hello Terraform Provider developers,

We’re excited to announce the general availability of version 2.0.0 of the Terraform Plugin SDK! We’ve been hard at work for a while now on this upgrade, and you all have helped us test it through the two release candidates in the last few months, so we’re excited to share that it’s ready for production use in your providers.

Improved Errors and Warnings Through Diagnostics

Version 2.0.0 of the SDK brings a new Diagnostics type, and new versions of the CRUD functions you’re used to that return this Diagnostics type. This allows providers to return more accurate error information to users, surfacing the exact field in a resource that prompted an error, or returning multiple errors or even warnings at once. A new diags package helps work with this new Diagnostics type.

More Accurate Timeouts

In addition to returning Diagnostics, our new CRUD functions now accept context.Contexts, which are used for more accurate timeout and cancellation within your provider code. You can upgrade to this enhanced version of the provider interface for a more reliable timeout experience.

More Accurate Test Runs

Our test framework has been reworked from the ground up to be more accurate and useful, without sacrificing any of its power. Test configurations are now applied by an actual Terraform binary, meaning what you see in tests is going to match what your users see in production much more closely. And test coverage and debuggers still work with the test framework.

Getting Started

In addition to these features, version 2.0.0 brings bug fixes, clears up ambiguities, and helps make programming errors clearer. Version 2.0.0 is a more robust, accurate, and communicative SDK.

To get started in upgrading your provider, please see the upgrade guide. As always, the Terraform Plugin SDK team at HashiCorp is happy to answer any questions here in the forums, and we appreciate bug reports for any bugs you may encounter in the issue tracker. And finally, the HashiCorp Learn team recently created a brand new Learn track on building custom Providers, that uses this new SDK.

Happy Terraforming!