Changes to support Kafka 3.9 made in a backwardly compatible fashion.
Use Formatter to prepare KRaft storage on 3.9. On <3.9, it continues to use StorageTool.
For 3.9, KRaft controllers advertise their listeners (like as brokers do).
Reflection is used so that, at runtime, the user of the Extension may provide an alternative (earlier) version of Kafka on the classpath. You can show this using these commands (we ought to add this to a CI matrix).
The new tests in KafkaClusterTest test the ability to connect to the controllers' endpoint. This currently supports only the IN_VM use-case. Supporting CONTAINER requires a deeper change (controller ports need to be exposed to the host whilst maintaining the ability of the brokers to dial the controllers within the Docker network), so I'd rather do this as a separate PR. I'd like to get feedback on this PR and merge before going further.
Changes to support Kafka 3.9 made in a backwardly compatible fashion.
Formatter
to prepare KRaft storage on 3.9. On <3.9, it continues to useStorageTool
.Reflection is used so that, at runtime, the user of the Extension may provide an alternative (earlier) version of Kafka on the classpath. You can show this using these commands (we ought to add this to a CI matrix).
The new tests in
KafkaClusterTest
test the ability to connect to the controllers' endpoint. This currently supports only theIN_VM
use-case. SupportingCONTAINER
requires a deeper change (controller ports need to be exposed to the host whilst maintaining the ability of the brokers to dial the controllers within the Docker network), so I'd rather do this as a separate PR. I'd like to get feedback on this PR and merge before going further.