Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tfprotov5+tfprotov6: Initial ephemeral resource type implementation #441

Merged
merged 14 commits into from
Oct 29, 2024

Conversation

SBGoods
Copy link
Contributor

@SBGoods SBGoods commented Oct 28, 2024

The next version of the plugin protocol (5.7/6.7) introduces a new ephemeral resource type with it's own lifecycle. The ephemeral resource lifecycle introduces new RPCs for provider servers to implement including:

  • ValidateEphemeralResourceConfig
  • OpenEphemeralResource
  • RenewEphemeralResource
  • CloseEphemeralResource

This change introduces the initial implementation of that support including:

  • Updated Protocol Buffers definitions
  • Re-generated Protocol Buffers Go code
  • introduces a new EphemeralResourceServer interface in tfprotov5 and tfprotov6 packages that defines the RPCs for the ephemeral resource lifecycle
  • introduces a temporary ServerWithEphemeralResources interface in tfprotov5 and tfprotov6 for provider servers to implement EphemeralResourceServer
  • Initial implementations of tfprotov5/tf5server and tfprotov6/tf6server for the new ValidateEphemeralResourceConfig, OpenEphemeralResource, RenewEphemeralResource, CloseEphemeralResource RPCs

This change will temporarily not require ProviderServer implementations to implement EphemeralResourceServer, however, that requirement and the removal of the ServerWithEphemeralResources interface will occur in a subsequent release.

@SBGoods SBGoods requested a review from a team as a code owner October 28, 2024 20:13
Copy link
Member

@austinvalle austinvalle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! Left some notes on the doc comments (only on protov5, but also applicable to the v6 package docs), but overall LGTM 🚀

Also created #442 for the follow-up release (probably included with write-only support I'd imagine)

tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
tfprotov5/ephemeral_resource.go Outdated Show resolved Hide resolved
@SBGoods SBGoods merged commit 879185f into main Oct 29, 2024
79 checks passed
@SBGoods SBGoods deleted the SBGoods/ephemeral-resources branch October 29, 2024 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants