Skip to content

Commit 1813ad1

Browse files
sbueringerk8s-infra-cherrypick-robot
authored andcommitted
Fix upgradePlan computation in GetUpgradePlanFromClusterClassVersions
Signed-off-by: Stefan Büringer buringerst@vmware.com
1 parent 5b278fb commit 1813ad1

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

exp/topology/desiredstate/upgrade_plan.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,9 +393,19 @@ func GetUpgradePlanFromClusterClassVersions(clusterClassVersions []string) func(
393393
}
394394
}
395395

396+
if len(upgradePlan) == 0 {
397+
return upgradePlan, nil, nil
398+
}
399+
396400
// In case there is more than one version for one minor, drop all the versions for one minor except the last.
397401
simplifiedUpgradePlan := []string{}
398402
currentMinor := currentControlPlaneSemVer.Minor
403+
404+
// Note: Add the current minor version if the upgradePlan only upgrades patch versions.
405+
// In this case the `semV.Minor > currentMinor` check below would not add the minor.
406+
if currentMinor == desiredSemVer.Minor {
407+
simplifiedUpgradePlan = append(simplifiedUpgradePlan, upgradePlan[0])
408+
}
399409
for _, v := range upgradePlan {
400410
semV, err := semver.ParseTolerant(v)
401411
if err != nil {

exp/topology/desiredstate/upgrade_plan_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,6 +1054,33 @@ func TestGetUpgradePlanFromClusterClassVersions(t *testing.T) {
10541054
wantWorkersUpgradePlan: nil,
10551055
wantErr: false,
10561056
},
1057+
{
1058+
name: "upgrade between patch version",
1059+
clusterClassVersions: []string{"v1.35.1", "v1.35.2"},
1060+
desiredVersion: "v1.35.2",
1061+
currentControlPlaneVersion: "v1.35.1",
1062+
wantControlPlaneUpgradePlan: []string{"v1.35.2"},
1063+
wantWorkersUpgradePlan: nil,
1064+
wantErr: false,
1065+
},
1066+
{
1067+
name: "upgrade between patch version",
1068+
clusterClassVersions: []string{"v1.35.1", "v1.35.2", "v1.35.3"},
1069+
desiredVersion: "v1.35.3",
1070+
currentControlPlaneVersion: "v1.35.1",
1071+
wantControlPlaneUpgradePlan: []string{"v1.35.3"},
1072+
wantWorkersUpgradePlan: nil,
1073+
wantErr: false,
1074+
},
1075+
{
1076+
name: "upgrade between patch version",
1077+
clusterClassVersions: []string{"v1.35.1", "v1.35.2", "v1.35.3"},
1078+
desiredVersion: "v1.35.2",
1079+
currentControlPlaneVersion: "v1.35.1",
1080+
wantControlPlaneUpgradePlan: []string{"v1.35.2"},
1081+
wantWorkersUpgradePlan: nil,
1082+
wantErr: false,
1083+
},
10571084
{
10581085
name: "return control plane upgrade plan for more than one minor",
10591086
clusterClassVersions: []string{"v1.31.0", "v1.32.0", "v1.33.0"},

0 commit comments

Comments
 (0)