-
Notifications
You must be signed in to change notification settings - Fork 242
Description
SDK version
v2.28.0
Use-cases
Terraform 1.6 is introducing new functionality which can greatly reduce memory utilization when there are multiple instances of same provider type, by only calling the GetProviderSchema RPC against one provider instance. This can be accomplished by the provider signaling to core that the GetProviderSchema RPC is not required before other RPCs. To support this enhancement with terraform-plugin-mux use cases, a lighter-weight GetMetadata RPC is being introduced which only returns server capabilities and resource type names.
Proposal
Update terraform-plugin-go dependency with protocol version 5.4 changes. Enable GetProviderSchemaOptional server capability, as none of the functionality of this SDK is reliant on RPC ordering, and implement the GetMetadata RPC.
It is anticipated that providers needing the memory usage improvements will upgrade these Go module dependencies at once:
- terraform-plugin-go (targeting v0.19.0)
- terraform-plugin-framework (targeting v1.4.0)
- terraform-plugin-sdk (targeting v2.29.0)
- terraform-plugin-mux (targeting v0.12.0)
References
- enable schema caching and add
get_provider_schema_optionalserver capability terraform#33486 - Add GetMetadata RPC to provider protocol terraform#33739
- Introduce Protocol Server Capability for Optional GetProviderSchema RPC terraform-plugin-go#310
- all: Updates for Protocol Version 5.4 and 6.4 terraform-plugin-mux#185
- Updates for Protocol Versions 5.4 and 6.4 terraform-plugin-framework#828