golang: add callback method for http plugin config destruction (fixes #38557) #38767
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commit Message: [#38557] golang: add callback method for http plugin config destruction
Additional Description:
This enables fine grained control over the lifecycle of golang filter config in sync with C++.
Some use cases store states and resources in the config object that needs to be cleaned when config is deleted or renewed.
The current design breaks the config parser API by introducing a Destroy function in StreamFilterConfigParser. A PassThroughStreamFilterConfigParser is available to help code adaptation.
Given an existing parser
The new one just needs to compose with the passthrough
Risk Level: Low
Testing: A test in config_test.cc was added to ensure Destroy function is being called on the config instance.
Docs Changes: none
Release Notes:
added http golang filter config destroy callback. When a config gets deleted from envoy, the go plugin calls the
Destroy function on the config parser instance. This introduces a breaking change in the golang parser interface.
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]