Skip to content

Commit b3c6ccd

Browse files
Merge pull request #722 from bradmwilliams/5-stable-updates
Adding support for OpenShift version 5
2 parents b4b6158 + c59f55a commit b3c6ccd

5 files changed

Lines changed: 20 additions & 12 deletions

File tree

cmd/release-controller-api/http_compare.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func (c *Controller) httpDashboardCompare(w http.ResponseWriter, req *http.Reque
9191
if err != nil || !ok {
9292
continue
9393
}
94-
if r.Config.Name == "4-stable" {
94+
if r.Config.Name == "4-stable" || r.Config.Name == "5-stable" {
9595
s := ReleaseStream{
9696
Release: r,
9797
Tags: releasecontroller.SortedReleaseTags(r),

cmd/release-controller-api/static/releaseDashboardPage.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<div class="row">
1010
<div class="col">
1111
{{ range .Streams }}
12-
{{ if and (ne .Release.Config.Name "4-stable") (ne .Release.Config.Name "4-dev-preview") }}
12+
{{ if and (ne .Release.Config.Name "4-stable") (ne .Release.Config.Name "5-stable") (ne .Release.Config.Name "4-dev-preview") (ne .Release.Config.Name "5-dev-preview") }}
1313
<h2 title="From image stream {{ .Release.Source.Namespace }}/{{ .Release.Source.Name }}"><a id="{{ .Release.Config.Name }}" href="#{{ .Release.Config.Name }}" class="text-dark">{{ .Release.Config.Name }}</a></h2>
1414
{{ publishDescription . }}
1515
{{ $upgrades := .Upgrades }}

cmd/release-controller/jira.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ func getNonVerifiedTagsJira(acceptedTags []*v1.TagReference) (current, previous
7878
// from the previous minor version to use as the previousReleaseTag for nightly releases.
7979
// For example, for "4.20.0-0.nightly", it would look for "4.19.0-rc.0" or "4.19.0-fc.0"
8080
//
81-
// Special test case: The 5.0 -> 4.22 mapping serves as a test case for hardcoding a previous release
81+
// Special test case: The 6.0 -> 5.55 mapping serves as a test case for hardcoding a previous release
8282
// when the normal calculation logic would not work. Used 5.0 as it is not a planned OpenShift release.
8383
// If a major version transition requires a specific previous release mapping, follow this pattern.
8484
func (c *Controller) calculatePreviousReleaseTagForNightly(currentVersion semver.Version) (*releasecontroller.VerifyIssuesTagInfo, error) {
85-
// Get all stable releases (includes both 4-stable and 4-dev-preview streams)
85+
// Get all stable releases (includes 4-stable, 4-dev-preview, 5-stable, and 5-dev-preview streams)
8686
stableReleases, err := releasecontroller.GetStableReleases(c.parsedReleaseConfigCache, c.eventRecorder, c.releaseLister)
8787
if err != nil {
8888
return nil, fmt.Errorf("unable to get stable releases: %w", err)
@@ -91,14 +91,14 @@ func (c *Controller) calculatePreviousReleaseTagForNightly(currentVersion semver
9191
// Calculate the target minor version (previous minor)
9292
var targetMajor, targetMinor uint64
9393

94-
// Special case: 5.0 uses 4.22 as a test case for hardcoded previous release logic.
94+
// Special case: 6.0 uses 5.55 as a test case for hardcoded previous release logic.
9595
// This demonstrates how to handle major version transitions that require a specific
96-
// previous release rather than calculated previous minor. Using 5.0 as this is not
97-
// a planned release.
98-
if currentVersion.Major == 5 && currentVersion.Minor == 0 {
99-
targetMajor = 4
100-
targetMinor = 22
101-
klog.V(4).Infof("jira: special case for version 5.0, using hardcoded previous version 4.22 (test case)")
96+
// previous release rather than calculated previous minor. Using 6.0 as this is not
97+
// a planned release at this time.
98+
if currentVersion.Major == 6 && currentVersion.Minor == 0 {
99+
targetMajor = 5
100+
targetMinor = 55
101+
klog.V(4).Infof("jira: special case for version 6.0, using hardcoded previous version 5.55 (test case)")
102102
} else if currentVersion.Minor == 0 {
103103
return nil, fmt.Errorf("cannot calculate previous minor version for %d.%d", currentVersion.Major, currentVersion.Minor)
104104
} else {

cmd/release-controller/sync_verify.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ func (c *Controller) resolveUpgradeRelease(upgradeRelease *releasecontroller.Upg
209209
if err != nil {
210210
return "", "", fmt.Errorf("invalid semver range `%s`: %w", upgradeRelease.Prerelease.VersionBounds.Query(), err)
211211
}
212+
//TODO: Right now, nothing relies on the "prerelease" stanza that would trigger this logic. If it is ever used, we are going to need to handle "4-stable" and "5-stable"...
212213
r, latest, err := releasecontroller.LatestForStream(c.parsedReleaseConfigCache, c.eventRecorder, c.releaseLister, "4-stable", semverRange, 0, "")
213214
if err != nil {
214215
return "", "", fmt.Errorf("failed to get latest tag in 4-stable stream: %w", err)

pkg/release-controller/release_info.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1406,8 +1406,15 @@ class FileServer(handler):
14061406
release_cache_dir = os.path.join(CACHE_DIR, release)
14071407
14081408
release_imagestream_name = 'release'
1409+
major = int(parts[0])
1410+
if major > 4:
1411+
release_imagestream_name = f'release-{major}'
1412+
14091413
if '-ec.' in release:
1410-
release_imagestream_name = '4-dev-preview'
1414+
if major > 4:
1415+
release_imagestream_name = f'{major}-dev-preview'
1416+
else:
1417+
release_imagestream_name = '4-dev-preview'
14111418
14121419
if os.path.isfile(os.path.join(release_cache_dir, "sha256sum.txt")) or os.path.isfile(os.path.join(release_cache_dir, "FAILED.md")):
14131420
handler.do_GET(self)

0 commit comments

Comments
 (0)