Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 2 additions & 17 deletions cluster-service/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,7 @@ deploy:
--set csDeploymentStrategy.rollingUpdate.maxSurge=${CS_DEPLOYMENT_ROLLINGUPDATE_MAX_SURGE} \
--set csDeploymentStrategy.rollingUpdate.maxUnavailable=${CS_DEPLOYMENT_ROLLINGUPDATE_MAX_UNAVAILABLE} \
--set provisionShardClusterLimit=${PROVISION_SHARD_CLUSTER_LIMIT} \
--set ocpVersions.defaultVersion.version=${OCP_VERSIONS_DEFAULT_VERSION_VERSION} \
--set ocpVersions.channelGroups.stable.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MIN_VERSION} \
--set ocpVersions.channelGroups.stable.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MAX_VERSION} \
--set ocpVersions.channelGroups.candidate.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MIN_VERSION} \
--set ocpVersions.channelGroups.candidate.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MAX_VERSION} \
--set ocpVersions.channelGroups.nightly.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MIN_VERSION} \
--set ocpVersions.channelGroups.nightly.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MAX_VERSION} \
--set ocpVersionsConfigFile=${OCP_VERSIONS_CONFIG_FILE} \
--set azureOperatorsMI.roleSetName=${OPERATOR_ROLE_SET_NAME} \
--set deployment.zoneCount=${AVAILABILITY_ZONE_COUNT}

Expand Down Expand Up @@ -173,16 +167,7 @@ local-azure-operators-managed-identities-config:
.PHONY: local-azure-operators-managed-identities-config

local-aro-hcp-ocp-versions-config:
helm template helm-charts/cluster-service \
--set ocpVersions.defaultVersion.version=${OCP_VERSIONS_DEFAULT_VERSION_VERSION} \
--set ocpVersions.channelGroups.stable.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MIN_VERSION} \
--set ocpVersions.channelGroups.stable.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MAX_VERSION} \
--set ocpVersions.channelGroups.candidate.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MIN_VERSION} \
--set ocpVersions.channelGroups.candidate.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MAX_VERSION} \
--set ocpVersions.channelGroups.nightly.minVersion=${OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MIN_VERSION} \
--set ocpVersions.channelGroups.nightly.maxVersion=${OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MAX_VERSION} \
--set azureOperatorsMI.roleSetName=${OPERATOR_ROLE_SET_NAME} \
-s templates/aro-hcp-ocp-versions-config.configmap.yaml | yq '.data["aro-hcp-ocp-versions-config.yaml"]' > local/aro-hcp-ocp-versions-config.yaml
@cat helm-charts/cluster-service/static-configs/${OCP_VERSIONS_CONFIG_FILE} | yq > local/aro-hcp-ocp-versions-config.yaml
.PHONY: local-aro-hcp-ocp-versions-config

#
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
defaultVersion:
channelGroupName: stable
version: "4.20.8"
channelGroups:
- url: "https://api.openshift.com/api/upgrades_info/graph"
channelGroupName: stable
minVersion: "4.19.0"
maxVersion: "4.20.9"
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
defaultVersion:
channelGroupName: stable
version: "4.20.8"
channelGroups:
- url: "https://api.openshift.com/api/upgrades_info/graph"
channelGroupName: stable
minVersion: "4.19.0"
maxVersion: "4.20.9"
minorVersionsConfiguration:
- name: "4.19"
zStreamUpgradeConfig:
enabled: true
targetVersion: "4.19.21"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really seems like the backend should be in charge of this and CS should just accept an explicit, opaque value to install and deal with it. Why are we adding more logic to CS for this when we're just going to have to migrate it later?

Copy link
Collaborator Author

@machi1990 machi1990 Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really seems like the backend should be in charge of this and CS should just accept an explicit, opaque value to install and deal with it.

I agree. However...

Why are we adding more logic to CS for this when we're just going to have to migrate it later?

By the time the decision to move CS to the RP, some features were already at work (in progress) and this was one of them. At that time, it was agreed (with leadership) that we'll continue to work on those features as is in CS and when the migration is fully ongoing, we'll migrate everything including new code. The motivation for this message was so that the migration doesn't slow feature development.

cc @davidffrench @deads2k to chime in for additional insights

Copy link
Collaborator

@davidffrench davidffrench Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to @machi1990 comment, the implementation was already in progress. I would like us to ensure successful delivery of managed z stream upgrades as early as possible

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when the migration is fully ongoing, we'll migrate everything including new code

I see a good half-dozen open PRs by Miguel in this repo right now - by what metric is the migration not fully ongoing?

Copy link
Collaborator

@davidffrench davidffrench Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should continue to ask everytime if it something should be added to CS or the backend directly, as time passes, the answer will increasingly become more weighted to the RP.

I see a good half-dozen open PRs by Miguel in this repo right now - by what metric is the migration not fully ongoing?

You are correct. A different phrasing of Manyandas comment is that we decided to implement this functionality in CS when it started in December as it would allow us to support this in production the fastest, and this logic in CS will be a part of the migration effort over the coming months.

- name: "4.20"
zStreamUpgradeConfig:
enabled: true
targetVersion: "4.20.8"
- url: "https://api.openshift.com/api/upgrades_info/graph"
channelGroupName: candidate
minVersion: "4.19.7"
maxVersion: ""
minorVersionsConfiguration:
- name: "4.19"
zStreamUpgradeConfig:
enabled: true
targetVersion: "4.19.22"
- name: "4.20"
zStreamUpgradeConfig:
enabled: true
targetVersion: "4.20.10"
- url: "https://multi.ocp.releases.ci.openshift.org/graph"
channelGroupName: nightly
minVersion: "4.19.0-0.nightly-20200101"
maxVersion: ""
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,4 @@ metadata:
namespace: '{{ .Release.Namespace }}'
data:
aro-hcp-ocp-versions-config.yaml: |
defaultVersion:
channelGroupName: stable
version: {{ .Values.ocpVersions.defaultVersion.version }}
channelGroups:
- url: https://api.openshift.com/api/upgrades_info/graph
channelGroupName: stable
minVersion: {{ .Values.ocpVersions.channelGroups.stable.minVersion }}
{{- if .Values.ocpVersions.channelGroups.stable.maxVersion }}
maxVersion: {{ .Values.ocpVersions.channelGroups.stable.maxVersion }}
{{- end }}
{{- if .Values.ocpVersions.channelGroups.candidate.minVersion }}
- url: https://api.openshift.com/api/upgrades_info/graph
channelGroupName: candidate
minVersion: {{ .Values.ocpVersions.channelGroups.candidate.minVersion }}
{{- if .Values.ocpVersions.channelGroups.candidate.maxVersion }}
maxVersion: {{ .Values.ocpVersions.channelGroups.candidate.maxVersion }}
{{- end }}
{{- end }}
{{- if .Values.ocpVersions.channelGroups.nightly.minVersion }}
- url: https://multi.ocp.releases.ci.openshift.org/graph
channelGroupName: nightly
minVersion: {{ .Values.ocpVersions.channelGroups.nightly.minVersion }}
{{- if .Values.ocpVersions.channelGroups.nightly.maxVersion }}
maxVersion: {{ .Values.ocpVersions.channelGroups.nightly.maxVersion }}
{{- end }}
{{- end }}
{{- .Files.Get (printf "static-configs/%s" .Values.ocpVersionsConfigFile) | nindent 4 }}
20 changes: 4 additions & 16 deletions cluster-service/helm-charts/cluster-service/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -308,22 +308,10 @@ csDeploymentStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
ocpVersions:
defaultVersion:
version: ""
channelGroups:
stable:
url: ""
minVersion: ""
maxVersion: ""
candidate:
url: ""
minVersion: ""
maxVersion: ""
nightly:
url: ""
minVersion: ""
maxVersion: ""
# OCP versions configuration is loaded from static config files in:
# cluster-service/helm-charts/cluster-service/static-configs/
# The ocpVersionsConfigFile value (from config.yaml) specifies which file to load
ocpVersionsConfigFile: "ocp-versions-current.yaml"
deployment:
zoneCount: ""
# controls if a debug job is deployed to the cluster.
17 changes: 3 additions & 14 deletions cluster-service/pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -161,20 +161,9 @@ resourceGroups:
name: ocpAcrLoginServer
- name: PROVISION_SHARD_CLUSTER_LIMIT
configRef: clustersService.provisionShardClusterLimit
- name: OCP_VERSIONS_DEFAULT_VERSION_VERSION
configRef: clustersService.ocpVersions.defaultVersion.version
- name: OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MIN_VERSION
configRef: clustersService.ocpVersions.channelGroups.stable.minVersion
- name: OCP_VERSIONS_CHANNEL_GROUPS_STABLE_MAX_VERSION
configRef: clustersService.ocpVersions.channelGroups.stable.maxVersion
- name: OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MIN_VERSION
configRef: clustersService.ocpVersions.channelGroups.candidate.minVersion
- name: OCP_VERSIONS_CHANNEL_GROUPS_CANDIDATE_MAX_VERSION
configRef: clustersService.ocpVersions.channelGroups.candidate.maxVersion
- name: OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MIN_VERSION
configRef: clustersService.ocpVersions.channelGroups.nightly.minVersion
- name: OCP_VERSIONS_CHANNEL_GROUPS_NIGHTLY_MAX_VERSION
configRef: clustersService.ocpVersions.channelGroups.nightly.maxVersion
# OCP versions configuration now provided via static Helm values files
- name: OCP_VERSIONS_CONFIG_FILE
configRef: clustersService.ocpVersionsConfigFile
# this is maestro consumer registration stuff
# this goes away when we have a real registration process
- name: CONSUMER_NAME
Expand Down
7 changes: 6 additions & 1 deletion config/config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1235,6 +1235,11 @@
"channelGroups"
],
"additionalProperties": false
},
"ocpVersionsConfigFile": {
"type": "string",
"pattern": "^ocp-versions-[a-z0-9]+(-[a-z0-9]+)*\\.yaml$",
"description": "The filename of the static OCP versions configuration file to use for this environment. File must exist in cluster-service/helm-charts/cluster-service/static-configs/"
}
},
"additionalProperties": false,
Expand All @@ -1248,7 +1253,7 @@
"postgres",
"tracing",
"azureRuntimeConfig",
"ocpVersions"
"ocpVersionsConfigFile"
]
},
"cxKeyVault": {
Expand Down
10 changes: 4 additions & 6 deletions config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,8 @@ defaults:
azureRuntimeConfig:
tlsCertificatesIssuer: OneCertV2-PublicCA
# OCP Versions configuration
# Static config file path: cluster-service/helm-charts/cluster-service/static-configs/
ocpVersionsConfigFile: "ocp-versions-current.yaml"
ocpVersions:
defaultVersion:
version: 4.20.8
Expand Down Expand Up @@ -920,12 +922,8 @@ clouds:
azureRuntimeConfig:
tlsCertificatesIssuer: Self
# OCP Versions configuration
ocpVersions:
channelGroups:
candidate:
minVersion: 4.19.7
nightly:
minVersion: 4.19.0-0.nightly-20200101
# Static config file path: cluster-service/helm-charts/cluster-service/static-configs/
ocpVersionsConfigFile: "ocp-versions-next.yaml"
# Hypershift Operator
hypershift:
image:
Expand Down
12 changes: 6 additions & 6 deletions config/dev.digests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ clouds:
environments:
cspr:
regions:
westus3: 8674c688fcff1393ae35b0b1102914fc0681f4f087e449a336e55041abc05877
westus3: d22db86fcbd49e84f823864569f0a1278bef8e08b86984107952cb3316988e34
dev:
regions:
westus3: 75f82a2dfb11ebda98044ec1e72eaf8dfe9fd8220416a033ff8e8a3fdadf55c9
westus3: 567f672687c324bd26dbaef9ed5c730e30a1980632a4cf979bd08dadbe50f9d6
perf:
regions:
westus3: 4594cac19e139a410bb712b846094a047da510b0e25ab53b56bde8222adeefb1
westus3: f450009c74dfefe172328bbced4d095a94e062c4e1cdd21e8d6c07d7234414e7
pers:
regions:
westus3: 6212e673b5ecb245029d12c1a34d41557e575f66e90112778d2fb705e53d69f7
westus3: 9a5cc3f2da4a185bd7c4d0365355e68d414cf44e24577c5c4842735b4a9cb74d
prow:
regions:
westus3: d703201afa2752b41e5fc97c0b90b803b858bad8e66be23b526fd4ef731fb93d
westus3: ee57549a0fc202f4da4e89f6e62599813719021129cbb23548c377d95aa8775e
swft:
regions:
uksouth: b6a3a6ef34d8af6bc7a315cd8dc0d5d77783309f50ac6a8f8718925da1ffb4cf
uksouth: 506c9c77c9ed19db058fad30472f6e5cc07d18e7f35a292479be4cc61fd5da69
5 changes: 3 additions & 2 deletions config/rendered/dev/cspr/westus3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down
5 changes: 3 additions & 2 deletions config/rendered/dev/dev/westus3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down
5 changes: 3 additions & 2 deletions config/rendered/dev/perf/westus3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down
5 changes: 3 additions & 2 deletions config/rendered/dev/pers/westus3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down
5 changes: 3 additions & 2 deletions config/rendered/dev/prow/westus3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down
5 changes: 3 additions & 2 deletions config/rendered/dev/swft/uksouth.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,16 @@ clustersService:
channelGroups:
candidate:
maxVersion: ""
minVersion: 4.19.7
minVersion: ""
nightly:
maxVersion: ""
minVersion: 4.19.0-0.nightly-20200101
minVersion: ""
stable:
maxVersion: 4.20.9
minVersion: 4.19.0
defaultVersion:
version: 4.20.8
ocpVersionsConfigFile: ocp-versions-next.yaml
postgres:
backupRetentionDays: 7
containerizedDb:
Expand Down