KAFKA-20629: Add ducktape system tests for topology description plugin#22769
Open
lucliu1108 wants to merge 9 commits into
Open
KAFKA-20629: Add ducktape system tests for topology description plugin#22769lucliu1108 wants to merge 9 commits into
lucliu1108 wants to merge 9 commits into
Conversation
…n (1/2)
Introduces the system-test infrastructure for KIP-1331 (Streams Group
Topology Description Plugin):
- New Java driver TopologyDescriptionPluginSystemTest that starts a
small streams app and exits on signal.
- New ducktape suite streams_topology_description_plugin_test with
three scenarios:
* push round-trip succeeds when the plugin is configured and the
client default push is on;
* client opt-out via topology.description.push.enabled=false
prevents the client from ever sending a description;
* no plugin on the broker means no solicitation is issued.
- KafkaService constructor parameter
streams_group_topology_description_plugin_class and matching
config_property constant to propagate
group.streams.topology.description.plugin.class to brokers.
- StreamsTopologyDescriptionPluginService and the supporting
TOPOLOGY_DESCRIPTION_PUSH_ENABLED property constant for the new
driver.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ystem tests (2/2) Wires the InMemoryTopologyDescriptionPlugin into the streams tests that already exercise the streams group protocol, plus a smoke entry in the broker compatibility matrix: - BaseStreamsTest passes the plugin to KafkaService; the plugin is on for every extender, since BaseStreamsTest always uses use_streams_groups=True. - StreamsBrokerBounceTest passes the plugin only when group_protocol='streams', mirroring how use_streams_groups is set. - StreamsBrokerCompatibilityTest adds the plugin class as a raw server_prop_overrides row and appends str(DEV_VERSION) to both broker_version matrices. On the DEV broker, the plugin is loaded at startup; older brokers ignore the unknown config key. The classic-protocol driver does not exercise the push path, so this is a regression smoke that the plugin doesn't break broker startup. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Topology Description Plugin):
TopologyDescriptionPluginSystemTestthat starts a small streams app and exits on signal.streams_topology_description_plugin_testwith 3 scenarios:client default push is on;
group.streams.topology.description.plugin.class=org.apache.kafka.server.streams.InMemoryTopologyDescriptionPlugintoBaseStreamsTestandStreamsBrokerBounceTest(when use_streams_groups=True). The plugin jar is already on the broker classpath via the server module.streams_broker_compatibility_testfor DEV_VERSION.