User impact due to Plugin migration from SDKv2 to Plugin Framework and plugin protocol change

We are investigating migrating our TF Plugin from SDK v2 to Plugin Framework.
I understand that muxing enables us to migrate resources iteratively such that two plugin providers (old implemented with SDKv2 and new one implemented with Plugin Framework) can co-exist.
I want to get clarity on muxing and Plugin Protocols in terms of our existing end-user impact:

Q1: Let’s say I migrate a resource A from Plugin SDKv2 to Plugin Framework. I assume this requires me to completely remove resource A SDKv2 implementation for end-users to be able to use resource A?

Q2: As part of muxing, if I upgrade from Plugin Protocol version 5 to 6, one impact would be that our existing end-users will be forced to use Terraform version >1.0. Is this correct?

Q3: As part of muxing, if I upgrade from Plugin Protocol version 5 to 6, will there be any impact for our existing users if I choose to not use NestedAttributes in our existing resources? Asking this because I believe the most prevalent difference between the two protocol versions is this additional functionality in terms of impact.

Q4: Are there any end-user impact considerations we should be aware of when choosing to upgrade from Plugin protocol version 5 to 6 or downgrade 6 to 5? Is there any other end user impact overall from the migration that we should be aware of?

Hi @maastha :wave:

Q1: Correct. An individual resource or data source can only be implemented using either the Plugin Framework or SDKv2 when using a muxed provider. The migration guide contains some information relating to muxing.

Q2: Correct. Plugin Protocol version 6 is compatible with Terraform CLI 1.0 and later.

Q3: If you do not use nested attributes then there should be no configuration changes required by practitioners that are using your provider. The only difference in this case will be that Terraform CLI 1.0 or later will be required. We recommend Testing Migration to verify that there are no changes in the behaviour of your resources and data sources as you migrate from SDKv2 to the Plugin Framework.

Q4: The end-user/practitioner impact when choosing which plugin protocol to use primarily relates to the version of Terraform that can be used and potential changes to Terraform configuration depending upon the usage of nested attributes.

The benefits derived from using the Plugin Framework rather than SDKv2 are outlined in the migration guide.

2 Likes