private boolean isControllerQuorumReadyForMigration() {
        Optional<String> notReadyMsg = this.quorumFeatures.reasonAllControllersZkMigrationNotReady(
                image.features().metadataVersion(), image.cluster().controllers());
        if (notReadyMsg.isPresent()) {
            log.warn("Still waiting for all controller nodes ready to begin the migration. Not ready due to:" + notReadyMsg.get());
            return false;
        }
        return true;
    }
A callback for when the migration state has been recovered from ZK. This is used to delay the installation of this
MetadataPublisher with MetadataLoader.
metadata/src/main/java/org/apache/kafka/metadata/migration/KRaftMigrationDriver.java