KAFKA-19648: KIP-1170 Unify cluster metadata bootstrapping
KIP-1170: Unify cluster metadata bootstrapping. Currently the zero checkpoint (00000000000000000000-0000000000.checkpoint) contains the starting state for KRaft while bootstrap.checkpoint contains the starting state for the cluster metadata. This KIP/PR unifies these two checkpoints by moving the starting metadata from bootstrap.checkpoint to the zero checkpoint.
Formatter.java was changed to add metadata records into the zero checkpoint.
StorageTool.scala now checks to see if we the role is Controller before formatting metadata
Implementations of RaftClient.handleLoadSnapshot were adjusting to now account for the presence of metadata records within in the zero checkpoint
BootstrapDirectory was converted into an interface with two implementations. LegacyBootstrapDirectory to allow for continued processing of bootstrap.checkpoint and TestBootstrapDirectory to allow for the testing framework to continue to work with the new location of the metadata records.
KafkaClusterTestKit.java was also adjusted to allow for feature overrides for tests to be passed into the metadata .