diff --git a/systemtest/src/test/java/io/strimzi/systemtest/upgrade/regular/StrimziUpgradeST.java b/systemtest/src/test/java/io/strimzi/systemtest/upgrade/regular/StrimziUpgradeST.java index daae82dfc0..cbf6f00eca 100644 --- a/systemtest/src/test/java/io/strimzi/systemtest/upgrade/regular/StrimziUpgradeST.java +++ b/systemtest/src/test/java/io/strimzi/systemtest/upgrade/regular/StrimziUpgradeST.java @@ -109,54 +109,19 @@ void testUpgradeAcrossVersionsWithUnsupportedKafkaVersion() throws IOException { final TestStorage testStorage = new TestStorage(ResourceManager.getTestContext()); UpgradeKafkaVersion upgradeKafkaVersion = UpgradeKafkaVersion.getKafkaWithVersionFromUrl(acrossUpgradeData.getFromKafkaVersionsUrl(), acrossUpgradeData.getStartingKafkaVersion()); - // Setup env setupEnvAndUpgradeClusterOperator(acrossUpgradeData, testStorage, upgradeKafkaVersion, TestConstants.CO_NAMESPACE); - - // Make snapshots of all Pods makeSnapshots(); - // Check if UTO is used before changing the CO -> used for check for KafkaTopics - boolean wasUTOUsedBefore = StUtils.isUnidirectionalTopicOperatorUsed(TestConstants.CO_NAMESPACE, eoSelector); - - // Upgrade CO - changeClusterOperator(acrossUpgradeData, TestConstants.CO_NAMESPACE); - logPodImages(TestConstants.CO_NAMESPACE); - // Upgrade kafka - changeKafkaAndLogFormatVersion(acrossUpgradeData); - logPodImages(TestConstants.CO_NAMESPACE); - checkAllImages(acrossUpgradeData, TestConstants.CO_NAMESPACE); - // Verify that Pods are stable - PodUtils.verifyThatRunningPodsAreStable(TestConstants.CO_NAMESPACE, clusterName); - // Verify upgrade - verifyProcedure(acrossUpgradeData, testStorage.getContinuousProducerName(), testStorage.getContinuousConsumerName(), TestConstants.CO_NAMESPACE, wasUTOUsedBefore); + performUpgradeAcrossVersions(testStorage); } @Test void testUpgradeAcrossVersionsWithNoKafkaVersion() throws IOException { final TestStorage testStorage = new TestStorage(ResourceManager.getTestContext()); - // Setup env - setupEnvAndUpgradeClusterOperator(acrossUpgradeData, testStorage, null, TestConstants.CO_NAMESPACE); - - // Check if UTO is used before changing the CO -> used for check for KafkaTopics - boolean wasUTOUsedBefore = StUtils.isUnidirectionalTopicOperatorUsed(TestConstants.CO_NAMESPACE, eoSelector); - // Upgrade CO - changeClusterOperator(acrossUpgradeData, TestConstants.CO_NAMESPACE); - // Wait till first upgrade finished - controllerPods = RollingUpdateUtils.waitTillComponentHasRolledAndPodsReady(TestConstants.CO_NAMESPACE, controllerSelector, 3, controllerPods); - brokerPods = RollingUpdateUtils.waitTillComponentHasRolledAndPodsReady(TestConstants.CO_NAMESPACE, brokerSelector, 3, brokerPods); - eoPods = DeploymentUtils.waitTillDepHasRolled(TestConstants.CO_NAMESPACE, KafkaResources.entityOperatorDeploymentName(clusterName), 1, eoPods); + setupEnvAndUpgradeClusterOperator(acrossUpgradeData, testStorage, null, TestConstants.CO_NAMESPACE); - LOGGER.info("Rolling to new images has finished!"); - logPodImages(TestConstants.CO_NAMESPACE); - // Upgrade kafka - changeKafkaAndLogFormatVersion(acrossUpgradeData); - logPodImages(TestConstants.CO_NAMESPACE); - checkAllImages(acrossUpgradeData, TestConstants.CO_NAMESPACE); - // Verify that Pods are stable - PodUtils.verifyThatRunningPodsAreStable(TestConstants.CO_NAMESPACE, clusterName); - // Verify upgrade - verifyProcedure(acrossUpgradeData, testStorage.getContinuousProducerName(), testStorage.getContinuousConsumerName(), TestConstants.CO_NAMESPACE, wasUTOUsedBefore); + performUpgradeAcrossVersions(testStorage); } @MicroShiftNotSupported("Due to lack of Kafka Connect build feature") @@ -201,6 +166,32 @@ private void performUpgrade(BundleVersionModificationData upgradeData) throws IO verifyProcedure(upgradeData, testStorage.getContinuousProducerName(), testStorage.getContinuousConsumerName(), TestConstants.CO_NAMESPACE, wasUTOUsedBefore); } + private void performUpgradeAcrossVersions(TestStorage testStorage) throws IOException { + // Check if UTO is used before changing the CO -> used for check for KafkaTopics + boolean wasUTOUsedBefore = StUtils.isUnidirectionalTopicOperatorUsed(TestConstants.CO_NAMESPACE, eoSelector); + + // Upgrade CO + changeClusterOperator(acrossUpgradeData, TestConstants.CO_NAMESPACE); + + // Wait till first upgrade finished + controllerPods = RollingUpdateUtils.waitTillComponentHasRolledAndPodsReady(TestConstants.CO_NAMESPACE, controllerSelector, 3, controllerPods); + brokerPods = RollingUpdateUtils.waitTillComponentHasRolledAndPodsReady(TestConstants.CO_NAMESPACE, brokerSelector, 3, brokerPods); + eoPods = DeploymentUtils.waitTillDepHasRolled(TestConstants.CO_NAMESPACE, KafkaResources.entityOperatorDeploymentName(clusterName), 1, eoPods); + + LOGGER.info("Rolling to new images has finished!"); + logPodImages(TestConstants.CO_NAMESPACE); + + // Upgrade kafka + changeKafkaAndLogFormatVersion(acrossUpgradeData); + logPodImages(TestConstants.CO_NAMESPACE); + checkAllImages(acrossUpgradeData, TestConstants.CO_NAMESPACE); + + // Verify that Pods are stable + PodUtils.verifyThatRunningPodsAreStable(TestConstants.CO_NAMESPACE, clusterName); + // Verify upgrade + verifyProcedure(acrossUpgradeData, testStorage.getContinuousProducerName(), testStorage.getContinuousConsumerName(), TestConstants.CO_NAMESPACE, wasUTOUsedBefore); + } + @BeforeEach void setupEnvironment() { NamespaceManager.getInstance().createNamespaceAndPrepare(CO_NAMESPACE);