From 61c61abaa96e1ce1eeffc7fe928d1c17f892ef42 Mon Sep 17 00:00:00 2001 From: Kumar Vivek Date: Thu, 16 Jan 2025 18:11:26 +0000 Subject: [PATCH] [PLAT-16481] Fix upgrade paths that don't use YBA latest stable YBC version Summary: There were a few places that still used Universe details based YBC version during upgrade. Fixed them to use latest stable YBC always. Test Plan: Manually checked a couple scenarios More testing to be done by QA as part of feature validation Reviewers: vpatibandla Reviewed By: vpatibandla Subscribers: yugaware Differential Revision: https://phorge.dev.yugabyte.com/D41295 --- .../commissioner/KubernetesUpgradeTaskBase.java | 4 ++-- .../tasks/BackupScheduleBaseKubernetes.java | 2 +- .../tasks/CreateKubernetesUniverse.java | 12 +++++++----- .../tasks/EditKubernetesUniverse.java | 12 ++++++------ .../yw/commissioner/tasks/KubernetesTaskBase.java | 6 ++++-- .../tasks/UniverseDefinitionTaskBase.java | 15 ++++++++++----- .../tasks/UpdateKubernetesDiskSize.java | 3 ++- .../yw/commissioner/tasks/UpgradeYbcGFlags.java | 6 ++---- .../upgrade/CertsRotateKubernetesUpgrade.java | 8 +++++--- .../tasks/upgrade/ConfigureDBApisKubernetes.java | 3 ++- .../tasks/upgrade/GFlagsKubernetesUpgrade.java | 6 ++++-- .../tasks/upgrade/KubernetesOverridesUpgrade.java | 4 +++- .../tasks/upgrade/RollbackKubernetesUpgrade.java | 5 ++++- .../tasks/upgrade/SoftwareKubernetesUpgrade.java | 4 +++- .../upgrade/SoftwareKubernetesUpgradeYB.java | 5 ++++- .../java/com/yugabyte/yw/common/NodeManager.java | 9 +++------ 16 files changed, 62 insertions(+), 42 deletions(-) diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/KubernetesUpgradeTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/KubernetesUpgradeTaskBase.java index 1acec1460436..31b5b167dc08 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/KubernetesUpgradeTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/KubernetesUpgradeTaskBase.java @@ -580,7 +580,7 @@ protected void createNonRestartGflagsUpgradeTask(Universe universe) { UniverseDefinitionTaskParams universeDetails = universe.getUniverseDetails(); Cluster primaryCluster = universeDetails.getPrimaryCluster(); KubernetesGflagsUpgradeCommonParams upgradeParamsPrimary = - new KubernetesGflagsUpgradeCommonParams(universe, primaryCluster); + new KubernetesGflagsUpgradeCommonParams(universe, primaryCluster, confGetter); createSingleKubernetesExecutorTask( universe.getName(), CommandType.POD_INFO, @@ -625,7 +625,7 @@ protected void createNonRestartGflagsUpgradeTask(Universe universe) { if (universeDetails.getReadOnlyClusters().size() != 0) { Cluster readOnlyCluster = universeDetails.getReadOnlyClusters().get(0); KubernetesGflagsUpgradeCommonParams upgradeParamsReadOnly = - new KubernetesGflagsUpgradeCommonParams(universe, readOnlyCluster); + new KubernetesGflagsUpgradeCommonParams(universe, readOnlyCluster, confGetter); PlacementInfo readClusterPlacementInfo = readOnlyCluster.placementInfo; createSingleKubernetesExecutorTask( universe.getName(), diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/BackupScheduleBaseKubernetes.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/BackupScheduleBaseKubernetes.java index de9bb18b7c9c..7d677b10e04c 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/BackupScheduleBaseKubernetes.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/BackupScheduleBaseKubernetes.java @@ -137,7 +137,7 @@ private void maybeConfigureHistoryRetention( List clusters = universe.getUniverseDetails().clusters; for (Cluster cluster : clusters) { KubernetesGflagsUpgradeCommonParams upgradeParams = - new KubernetesGflagsUpgradeCommonParams(universe, cluster); + new KubernetesGflagsUpgradeCommonParams(universe, cluster, confGetter); createSingleKubernetesExecutorTask( universe.getName(), CommandType.POD_INFO, diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/CreateKubernetesUniverse.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/CreateKubernetesUniverse.java index 4d4eeff34ac6..201ac7704f70 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/CreateKubernetesUniverse.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/CreateKubernetesUniverse.java @@ -21,6 +21,7 @@ import com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesCommandExecutor; import com.yugabyte.yw.common.KubernetesUtil; import com.yugabyte.yw.common.PlacementInfoUtil; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdater; import com.yugabyte.yw.common.operator.OperatorStatusUpdater.UniverseState; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; @@ -218,21 +219,22 @@ public void run() { .setSubTaskGroupType(SubTaskGroupType.ConfigureUniverse); // Install YBC on the pods + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); if (taskParams().isEnableYbc()) { installYbcOnThePods( tserversAdded, false, - taskParams().getYbcSoftwareVersion(), + stableYbcVersion, taskParams().getPrimaryCluster().userIntent.ybcFlags); if (readClusters.size() == 1) { installYbcOnThePods( readOnlyTserversAdded, true, - taskParams().getYbcSoftwareVersion(), + stableYbcVersion, taskParams().getReadOnlyClusters().get(0).userIntent.ybcFlags); } createWaitForYbcServerTask(allTserversAdded); - createUpdateYbcTask(taskParams().getYbcSoftwareVersion()) + createUpdateYbcTask(stableYbcVersion) .setSubTaskGroupType(SubTaskGroupType.ConfigureUniverse); } @@ -241,7 +243,7 @@ public void run() { if (KubernetesUtil.isNonRestartGflagsUpgradeSupported( primaryCluster.userIntent.ybSoftwareVersion)) { KubernetesGflagsUpgradeCommonParams gflagsParams = - new KubernetesGflagsUpgradeCommonParams(universe, primaryCluster); + new KubernetesGflagsUpgradeCommonParams(universe, primaryCluster, confGetter); nonRestartMasterGflagUpgrade = () -> upgradePodsNonRestart( @@ -259,7 +261,7 @@ public void run() { // Use taskParams here since updated universe details are not available // during subtasks creation. taskParams().isEnableYbc(), - taskParams().getYbcSoftwareVersion()); + stableYbcVersion); } createConfigureUniverseTasks( diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/EditKubernetesUniverse.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/EditKubernetesUniverse.java index dbf8024688ea..4073c7dece40 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/EditKubernetesUniverse.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/EditKubernetesUniverse.java @@ -350,7 +350,7 @@ private boolean editCluster( isReadOnlyCluster, newNamingStyle, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion(), + ybcManager.getStableYbcVersion(), tserverDiskSizeChanged, masterDiskSizeChanged, supportsNonRestartGflagsUpgrade /* usePreviousGflagsChecksum */); @@ -563,7 +563,7 @@ private boolean editCluster( isReadOnlyCluster, KubernetesCommandExecutor.CommandType.HELM_UPGRADE, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion(), + ybcManager.getStableYbcVersion(), PodUpgradeParams.DEFAULT); upgradePodsTask( @@ -581,7 +581,7 @@ private boolean editCluster( isReadOnlyCluster, KubernetesCommandExecutor.CommandType.HELM_UPGRADE, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion(), + ybcManager.getStableYbcVersion(), PodUpgradeParams.DEFAULT); } else if (instanceTypeChanged) { upgradePodsTask( @@ -599,7 +599,7 @@ private boolean editCluster( isReadOnlyCluster, KubernetesCommandExecutor.CommandType.HELM_UPGRADE, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion(), + ybcManager.getStableYbcVersion(), PodUpgradeParams.DEFAULT); } else if (masterAddressesChanged) { // Update master_addresses flag on Master @@ -760,7 +760,7 @@ public void createMasterAddressesUpdateTask( taskParams().useNewHelmNamingStyle, isReadOnlyCluster, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + ybcManager.getStableYbcVersion()); Set mastersToModify = Stream.concat( @@ -799,7 +799,7 @@ public void createMasterAddressesUpdateTask( taskParams().useNewHelmNamingStyle, isReadOnlyCluster, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + ybcManager.getStableYbcVersion()); // Set flag in memory for tserver createSetFlagInMemoryTasks( diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/KubernetesTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/KubernetesTaskBase.java index d27e40632e8d..b3c22ef530bc 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/KubernetesTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/KubernetesTaskBase.java @@ -18,6 +18,7 @@ import com.yugabyte.yw.common.KubernetesUtil; import com.yugabyte.yw.common.PlacementInfoUtil; import com.yugabyte.yw.common.config.GlobalConfKeys; +import com.yugabyte.yw.common.config.RuntimeConfGetter; import com.yugabyte.yw.common.config.UniverseConfKeys; import com.yugabyte.yw.common.helm.HelmUtils; import com.yugabyte.yw.common.kms.util.EncryptionAtRestUtil; @@ -126,7 +127,8 @@ public static class KubernetesGflagsUpgradeCommonParams { private boolean enableYbc; private String ybcSoftwareVersion; - public KubernetesGflagsUpgradeCommonParams(Universe universe, Cluster cluster) { + public KubernetesGflagsUpgradeCommonParams( + Universe universe, Cluster cluster, RuntimeConfGetter confGetter) { UniverseDefinitionTaskParams universeParams = universe.getUniverseDetails(); Cluster primaryCluster = universeParams.getPrimaryCluster(); KubernetesPlacement primaryClusterPlacement = @@ -157,7 +159,7 @@ public KubernetesGflagsUpgradeCommonParams(Universe universe, Cluster cluster) { ? new KubernetesPlacement(cluster.placementInfo, true /* isReadOnlyCluster */) : primaryClusterPlacement; this.enableYbc = universe.isYbcEnabled(); - this.ybcSoftwareVersion = universe.getUniverseDetails().getYbcSoftwareVersion(); + this.ybcSoftwareVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); } } diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseDefinitionTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseDefinitionTaskBase.java index f5c21f75036b..52a8a786aba1 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseDefinitionTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseDefinitionTaskBase.java @@ -1053,7 +1053,6 @@ public SubTaskGroup createGFlagsOverrideTasks( // The software package to install for this cluster. params.ybSoftwareVersion = userIntent.ybSoftwareVersion; params.setEnableYbc(taskParams().isEnableYbc()); - params.setYbcSoftwareVersion(taskParams().getYbcSoftwareVersion()); params.ybcGflags = userIntent.ybcFlags; // Set the InstanceType params.instanceType = node.cloudInfo.instance_type; @@ -1528,7 +1527,6 @@ public SubTaskGroup createConfigureServerTasks( // The software package to install for this cluster. params.ybSoftwareVersion = userIntent.ybSoftwareVersion; params.setEnableYbc(taskParams().isEnableYbc()); - params.setYbcSoftwareVersion(taskParams().getYbcSoftwareVersion()); params.setYbcInstalled(taskParams().isYbcInstalled()); params.ybcGflags = userIntent.ybcFlags; // Set the InstanceType @@ -2932,6 +2930,9 @@ public void createYbcSoftwareInstallTasks( "AnsibleConfigureServers (%s) for: %s", SubTaskGroupType.InstallingSoftware, taskParams().nodePrefix); SubTaskGroup subTaskGroup = createSubTaskGroup(subGroupDescription); + + // Use stable version for YBC + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); for (NodeDetails node : nodes) { subTaskGroup.addSubTask( getAnsibleConfigureServerTask( @@ -2939,7 +2940,7 @@ public void createYbcSoftwareInstallTasks( ServerType.CONTROLLER, UpgradeTaskSubType.YbcInstall, softwareVersion, - taskParams().getYbcSoftwareVersion())); + stableYbcVersion)); } subTaskGroup.setSubTaskGroupType(subTaskGroupType); getRunnableTask().addSubTaskGroup(subTaskGroup); @@ -3097,7 +3098,11 @@ protected AnsibleConfigureServers getAnsibleConfigureServerTask( UpgradeTaskSubType taskSubType, String softwareVersion) { return getAnsibleConfigureServerTask( - node, processType, taskSubType, softwareVersion, taskParams().getYbcSoftwareVersion()); + node, + processType, + taskSubType, + softwareVersion, + confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion)); } public AnsibleConfigureServers.Params getAnsibleConfigureServerParams( @@ -3132,7 +3137,7 @@ public AnsibleConfigureServers.Params getAnsibleConfigureServerParams( params.setUniverseUUID(taskParams().getUniverseUUID()); params.setEnableYbc(taskParams().isEnableYbc()); - params.setYbcSoftwareVersion(taskParams().getYbcSoftwareVersion()); + params.setYbcSoftwareVersion(confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion)); params.installYbc = taskParams().installYbc; params.setYbcInstalled(taskParams().isYbcInstalled()); params.ybcGflags = userIntent.ybcFlags; diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpdateKubernetesDiskSize.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpdateKubernetesDiskSize.java index 73d1dfa67367..363825af0918 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpdateKubernetesDiskSize.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpdateKubernetesDiskSize.java @@ -16,6 +16,7 @@ import com.yugabyte.yw.common.KubernetesManagerFactory; import com.yugabyte.yw.common.KubernetesUtil; import com.yugabyte.yw.common.backuprestore.ybc.YbcManager; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.ResizeNodeParams; import com.yugabyte.yw.forms.UniverseDefinitionTaskParams; @@ -103,7 +104,7 @@ public void run() { isReadOnlyCluster, taskParams().useNewHelmNamingStyle, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion(), + confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion), tserverDiskSizeChanged, masterDiskSizeChanged, usePreviousGflagsChecksum); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpgradeYbcGFlags.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpgradeYbcGFlags.java index c838850c63b7..027e1145526b 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpgradeYbcGFlags.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UpgradeYbcGFlags.java @@ -69,8 +69,7 @@ public void run() { Set nodeDetailSet = new HashSet<>(universe.getRunningTserversInPrimaryCluster()); - installYbcOnThePods( - nodeDetailSet, false, universeDetails.getYbcSoftwareVersion(), ybcGflagsMap); + installYbcOnThePods(nodeDetailSet, false, ybcManager.getStableYbcVersion(), ybcGflagsMap); performYbcAction(nodeDetailSet, false, "stop"); createWaitForYbcServerTask(nodeDetailSet) .setSubTaskGroupType(SubTaskGroupType.ConfigureUniverse); @@ -78,8 +77,7 @@ public void run() { List readOnlyClusters = universeDetails.getReadOnlyClusters(); if (!readOnlyClusters.isEmpty()) { nodeDetailSet = universeDetails.getTserverNodesInCluster(readOnlyClusters.get(0).uuid); - installYbcOnThePods( - nodeDetailSet, true, universeDetails.getYbcSoftwareVersion(), ybcGflagsMap); + installYbcOnThePods(nodeDetailSet, true, ybcManager.getStableYbcVersion(), ybcGflagsMap); performYbcAction(nodeDetailSet, true, "stop"); createWaitForYbcServerTask(nodeDetailSet) .setSubTaskGroupType(SubTaskGroupType.ConfigureUniverse); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/CertsRotateKubernetesUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/CertsRotateKubernetesUpgrade.java index f1461b80a8c9..0839403e5b20 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/CertsRotateKubernetesUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/CertsRotateKubernetesUpgrade.java @@ -9,6 +9,7 @@ import com.yugabyte.yw.commissioner.tasks.subtasks.UniverseSetTlsParams; import com.yugabyte.yw.commissioner.tasks.subtasks.UniverseUpdateRootCert; import com.yugabyte.yw.commissioner.tasks.subtasks.UniverseUpdateRootCert.UpdateRootCertAction; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.CertsRotateParams; import com.yugabyte.yw.forms.UniverseDefinitionTaskParams.Cluster; @@ -60,13 +61,14 @@ public void run() { // So, generated node certs will still be of old rootCA after this step createUniverseUpdateRootCertTask(UpdateRootCertAction.MultiCert); // Create kubernetes upgrade task to rotate certs + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); createUpgradeTask( getUniverse(), userIntent.ybSoftwareVersion, true /* isMasterChanged */, true /* isTserverChanged */, getUniverse().isYbcEnabled(), - getUniverse().getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); // Now we will change the order of certs: new cert first, followed by old root cert // Also cert key will be pointing to new root cert key @@ -80,7 +82,7 @@ public void run() { true /* isMasterChanged */, true /* isTserverChanged */, getUniverse().isYbcEnabled(), - getUniverse().getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); // Reset the temporary certs and update the universe to use new rootCA createUniverseUpdateRootCertTask(UpdateRootCertAction.Reset); @@ -92,7 +94,7 @@ public void run() { true /* isMasterChanged */, true /* isTserverChanged */, getUniverse().isYbcEnabled(), - getUniverse().getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); }); } diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/ConfigureDBApisKubernetes.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/ConfigureDBApisKubernetes.java index 6621c9265602..48940577f1c9 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/ConfigureDBApisKubernetes.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/ConfigureDBApisKubernetes.java @@ -7,6 +7,7 @@ import com.yugabyte.yw.commissioner.ITask.Abortable; import com.yugabyte.yw.commissioner.KubernetesUpgradeTaskBase; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.ConfigureDBApiParams; import com.yugabyte.yw.forms.UniverseTaskParams; @@ -65,7 +66,7 @@ public void run() { true /* isMasterChanged */, true /* isTserverChanged */, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion)); // Now update Universe state in DB. // Update custom communication ports in universe and node details diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/GFlagsKubernetesUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/GFlagsKubernetesUpgrade.java index 0600eff1192b..ea841af30900 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/GFlagsKubernetesUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/GFlagsKubernetesUpgrade.java @@ -11,6 +11,7 @@ import com.yugabyte.yw.common.KubernetesManagerFactory; import com.yugabyte.yw.common.KubernetesUtil; import com.yugabyte.yw.common.XClusterUniverseService; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.gflags.GFlagsValidation; import com.yugabyte.yw.common.gflags.SpecificGFlags; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; @@ -107,6 +108,7 @@ public void run() { // Helm update will finish without any restarts if there are no updates boolean updateMaster = true; boolean updateTserver = true; + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); switch (taskParams().upgradeOption) { case ROLLING_UPGRADE: @@ -116,7 +118,7 @@ public void run() { updateMaster, updateTserver, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); break; case NON_ROLLING_UPGRADE: createNonRollingGflagUpgradeTask( @@ -125,7 +127,7 @@ public void run() { updateMaster, updateTserver, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); break; case NON_RESTART_UPGRADE: createNonRestartGflagsUpgradeTask(getUniverse()); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/KubernetesOverridesUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/KubernetesOverridesUpgrade.java index ee5bdb48fcc3..7b7dfebaec05 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/KubernetesOverridesUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/KubernetesOverridesUpgrade.java @@ -9,6 +9,7 @@ import com.yugabyte.yw.commissioner.TaskExecutor.SubTaskGroup; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; import com.yugabyte.yw.commissioner.tasks.subtasks.UpdateAndPersistKubernetesOverrides; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.KubernetesOverridesUpgradeParams; import com.yugabyte.yw.forms.UniverseDefinitionTaskParams.Cluster; @@ -51,6 +52,7 @@ public void run() { // Set overrides to primary cluster so that they will be picked up in upgrade tasks. cluster.userIntent.universeOverrides = taskParams().universeOverrides; cluster.userIntent.azOverrides = taskParams().azOverrides; + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); // Create Kubernetes Upgrade Task. createUpgradeTask( @@ -60,7 +62,7 @@ public void run() { /* isMasterChanged */ true, /* isTServerChanged */ true, universe.isYbcEnabled(), - universe.getUniverseDetails().getYbcSoftwareVersion()); + stableYbcVersion); // Remove extra Namespaced scope services. addHandleKubernetesNamespacedServices( false /* readReplicaDelete */, diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackKubernetesUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackKubernetesUpgrade.java index d1a40ec8f38a..999eceba02e3 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackKubernetesUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackKubernetesUpgrade.java @@ -9,6 +9,7 @@ import com.yugabyte.yw.commissioner.KubernetesUpgradeTaskBase; import com.yugabyte.yw.commissioner.UpgradeTaskBase.UpgradeContext; import com.yugabyte.yw.commissioner.UserTaskDetails; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.RollbackUpgradeParams; import com.yugabyte.yw.forms.UniverseDefinitionTaskParams; @@ -78,6 +79,8 @@ public void run() { createRollbackAutoFlagTask(taskParams().getUniverseUUID(), autoFlagConfigVersion); } + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); + // Create Kubernetes Upgrade Task createUpgradeTask( getUniverse(), @@ -85,7 +88,7 @@ public void run() { true, true, taskParams().isEnableYbc(), - taskParams().getYbcSoftwareVersion(), + stableYbcVersion, getRollbackUpgradeContext(newVersion)); // Update Software version diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgrade.java index 68931e5f8402..4466240f7f2f 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgrade.java @@ -8,6 +8,7 @@ import com.yugabyte.yw.commissioner.KubernetesUpgradeTaskBase; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; import com.yugabyte.yw.common.XClusterUniverseService; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.config.UniverseConfKeys; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.SoftwareUpgradeParams; @@ -66,6 +67,7 @@ protected void createPrecheckTasks(Universe universe) { public void run() { runUpgrade( () -> { + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); // Create Kubernetes Upgrade Task createUpgradeTask( @@ -74,7 +76,7 @@ public void run() { true, true, taskParams().isEnableYbc(), - taskParams().getYbcSoftwareVersion()); + stableYbcVersion); if (!confGetter.getConfForScope(getUniverse(), UniverseConfKeys.skipUpgradeFinalize)) { // Promote Auto flags on compatible versions. if (confGetter.getConfForScope(getUniverse(), UniverseConfKeys.promoteAutoFlag) diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgradeYB.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgradeYB.java index f013dcdd8c02..4e143b414951 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgradeYB.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareKubernetesUpgradeYB.java @@ -8,6 +8,7 @@ import com.yugabyte.yw.commissioner.KubernetesUpgradeTaskBase; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; import com.yugabyte.yw.common.PlatformServiceException; +import com.yugabyte.yw.common.config.GlobalConfKeys; import com.yugabyte.yw.common.gflags.AutoFlagUtil; import com.yugabyte.yw.common.operator.OperatorStatusUpdaterFactory; import com.yugabyte.yw.forms.SoftwareUpgradeParams; @@ -84,6 +85,8 @@ public void run() { Status.BAD_REQUEST, "Cannot upgrade to this version with PG15 upgrade enabled"); } + String stableYbcVersion = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); + // Create Kubernetes Upgrade Task createUpgradeTask( getUniverse(), @@ -91,7 +94,7 @@ public void run() { true, true, taskParams().isEnableYbc(), - taskParams().getYbcSoftwareVersion()); + stableYbcVersion); createStoreAutoFlagConfigVersionTask(taskParams().getUniverseUUID()); diff --git a/managed/src/main/java/com/yugabyte/yw/common/NodeManager.java b/managed/src/main/java/com/yugabyte/yw/common/NodeManager.java index 0b733df4a3ab..c2c121185f60 100644 --- a/managed/src/main/java/com/yugabyte/yw/common/NodeManager.java +++ b/managed/src/main/java/com/yugabyte/yw/common/NodeManager.java @@ -951,17 +951,14 @@ private List getConfigureSubCommand( } Pair ybcPackageDetails = Util.getYbcPackageDetailsFromYbServerPackage(ybServerPackage); + String stableYbc = confGetter.getGlobalConf(GlobalConfKeys.ybcStableVersion); ReleaseManager.ReleaseMetadata releaseMetadata = releaseManager.getYbcReleaseByVersion( - taskParam.getYbcSoftwareVersion(), - ybcPackageDetails.getFirst(), - ybcPackageDetails.getSecond()); + stableYbc, ybcPackageDetails.getFirst(), ybcPackageDetails.getSecond()); if (releaseMetadata == null) { throw new RuntimeException( - String.format( - "Ybc package metadata: %s cannot be empty with ybc enabled", - taskParam.getYbcSoftwareVersion())); + String.format("Ybc package metadata: %s cannot be empty with ybc enabled", stableYbc)); } if (arch != null) {