Skip to content

Introduce Protocol Server Capability for Optional GetProviderSchema RPC #310

Description

@bflad

terraform-plugin-go version

v0.18.0

Use cases

Terraform core is working on optimizing their overall memory utilization by supporting the ability to cache provider schemas per-type, rather than per-instance. This should cause a statistically significant drop in maximum resident size in Terraform environments running configurations with multiple provider aliases for larger providers, such as hashicorp/aws. The challenge is that not all provider implementations support all RPC operations without the historically upfront GetProviderSchema RPC, such as older versions of terraform-plugin-framework, which used the GetProviderSchema RPC to cache supported resource types for other RPCs.

Proposal

Update the plugin protocol to 5.4 and 6.4 with a new server capability to signal that the GetProviderSchema RPC is optional/skippable. Initial testing shows that terraform-plugin-sdk/v2@v2.27.0 and terraform-plugin-framework@v1.3.2 should be able to enable this capability once its exposed by this Go module. In terraform-plugin-mux, it should be able to front each existing RPC with a logic to call GetProviderSchema first if necessary for the underlying provider server.

References

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions