Skip to content

Commit 9cc9d78

Browse files
authored
generate kdm rke2 generation now supports latest releases (rke2rN) (#780)
* kdm rke2 generation now supports latest releases (rke2rN) * fix returned error
1 parent 771be61 commit 9cc9d78

1 file changed

Lines changed: 27 additions & 9 deletions

File tree

release/kdm/rke2.go

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,19 @@ func (u *RKE2ChannelsUpdater) getPreviousVersion(version string) (string, error)
181181
return "", err
182182
}
183183

184-
for i := release; i > 1; i-- {
185-
prevVersion := fmt.Sprintf(rke2VersionTemplate, major, minor, patch, i)
186-
_, err := u.previousReleasePos(prevVersion)
187-
if err != nil {
188-
if i == 1 {
189-
return "", err
184+
// for +rke2r2 and forward
185+
if release > 1 {
186+
for i := release; i > 1; i-- {
187+
prevVersion := fmt.Sprintf(rke2VersionTemplate, major, minor, patch, i)
188+
_, err := u.previousReleasePos(prevVersion)
189+
if err != nil {
190+
if i == 1 {
191+
return "", err
192+
}
193+
continue
190194
}
191-
continue
195+
return prevVersion, nil
192196
}
193-
return prevVersion, nil
194197
}
195198

196199
// when the patch number is 0, e.g "v1.33.0+rke2r1" we need
@@ -203,7 +206,22 @@ func (u *RKE2ChannelsUpdater) getPreviousVersion(version string) (string, error)
203206
return prevVersion, nil
204207
}
205208

206-
return fmt.Sprintf(rke2VersionTemplate, major, minor, patch-1, 1), nil
209+
// checking the previous
210+
prevVersion := ""
211+
for i := 1; i < 10; i++ {
212+
// this version may exists, so we first store it in a separate variable
213+
// and if the version exists it is assigned to prevVersion
214+
v := fmt.Sprintf(rke2VersionTemplate, major, minor, patch-1, i)
215+
if _, err := u.previousReleasePos(v); err != nil {
216+
if prevVersion == "" {
217+
return "", err
218+
}
219+
} else {
220+
prevVersion = v
221+
}
222+
}
223+
224+
return prevVersion, nil
207225
}
208226

209227
func (u *RKE2ChannelsUpdater) rke2LatestMinor(major, minor int) (string, error) {

0 commit comments

Comments
 (0)