public Future<KafkaVersionChange> reconcile()    {
        return getVersionFromController()
                .compose(i -> getPods())
                .compose(this::detectToAndFromVersions)
                .compose(i -> prepareVersionChange());
    }
@Test
    public void testUpgradeWithKubernetesResourcesWithoutVersions(VertxTestContext context) {
        String kafkaVersion = VERSIONS.defaultVersion().version();
        String interBrokerProtocolVersion = VERSIONS.defaultVersion().protocolVersion();
        String logMessageFormatVersion = VERSIONS.defaultVersion().messageVersion();

        VersionChangeCreator vcc = mockVersionChangeCreator(
                mockKafka(kafkaVersion, interBrokerProtocolVersion, logMessageFormatVersion),
                mockNewCluster(
                        null,
                        mockSps(null),
                        mockUniformPods(null, null, null)
                )
        );

        Checkpoint async = context.checkpoint();
        vcc.reconcile().onComplete(context.failing(c -> context.verify(() -> {
            assertThat(c.getClass(), is(KafkaUpgradeException.class));
            assertThat(c.getMessage(), is("Kafka Pods or StrimziPodSet exist, but do not contain the strimzi.io/kafka-version annotation to detect their version. Kafka upgrade cannot be detected."));

            async.flag();
        })));
    }