Skip to content

Commit

Permalink
Make StrimziUpgradeST.testUpgradeAcrossVersionsWithUnsupportedKafkaVe…
Browse files Browse the repository at this point in the history
…rsion more robust
  • Loading branch information
egyedt committed Aug 26, 2024
1 parent bfe081c commit 3cd49a8
Showing 1 changed file with 29 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 3cd49a8

Please sign in to comment.