-
Bug
-
Resolution: Not a Bug
-
Major
-
None
-
4.18.z
-
None
-
Quality / Stability / Reliability
-
False
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
According to this PR: https://github.com/openshift/machine-config-operator/pull/4822 . Cluster should not get upgraded to later versions when Upgradable=False, but it is getting upgraded with force command.
Version-Release number of selected component (if applicable):
How reproducible:
Steps to Reproduce:
1. Install 4.18 cluster
2. For 4.18 the default cgroup version is cgroupv2 so upgradable is set to True:
$ oc debug node/ip-10-0-19-184.us-east-2.compute.internal
Starting pod/ip-10-0-19-184us-east-2computeinternal-debug-fl7pq ...
To use host binaries, run `chroot /host`
Pod IP: 10.0.19.184
If you don't see a command prompt, try pressing enter.
sh-5.1# chroot /host
sh-5.1# stat -c %T -f /sys/fs/cgroup
cgroup2fs
oc get co machine-config -o=jsonpath='{.status.conditions[?(@.type=="Upgradeable")].status}'
True
3. Check for the updates:
oc patch clusterversion/version --patch '{"spec":{"upstream":"https://amd64.ocp.releases.ci.openshift.org/graph"}}' --type=merge
clusterversion.config.openshift.io/version patched
$ oc adm upgrade
Cluster version is 4.18.6
Upstream: https://amd64.ocp.releases.ci.openshift.org/graph
Channel: stable-4.18
Recommended updates:
VERSION IMAGE
4.18.7 registry.ci.openshift.org/ocp/release@sha256:91037938dc2ebc2732e7baa6eb4192fa4376abab19f0f545848a87ab7c91931d
4. Now change the cgroup version from cgroupv2 to cgroupv1 in nodes.config . It will change upgradable=Flase.
$ oc edit nodes.config/cluster
node.config.openshift.io/cluster edited
5. Wait for mcp to finish roll up then check the status:
$ oc get co machine-config -o=jsonpath='{.status.conditions[?(@.type=="Upgradeable")].status}'
False
6. $ oc adm upgrade
Cluster version is 4.18.6
Upgradeable=False
Reason: ClusterOnCgroupV1
Message: Cluster operator machine-config should not be upgraded between minor versions: Cluster is using deprecated cgroup v1, which is removed in 4.19. Please update the `CgroupMode` in the `nodes.config.openshift.io` object to 'v2'. This can be changed back to 'v1' while on 4.18, but must be 'v2' before you update to 4.19. Once updated to 4.19, cgroup v1 is no longer an option
Upstream: https://amd64.ocp.releases.ci.openshift.org/graph
Channel: stable-4.18
MCO error message will come
7. Now try upgrading it with force command:
$ oc adm upgrade --to-image=registry.ci.openshift.org/ocp/release:4.19.0-0.nightly-2025-04-02-170034 --force --allow-explicit-upgrade
warning: Using by-tag pull specs is dangerous, and while we still allow it in combination with --force for backward compatibility, it would be much safer to pass a by-digest pull spec instead
warning: The requested upgrade image is not one of the available updates. You have used --allow-explicit-upgrade for the update to proceed anyway
warning: --force overrides cluster verification of your supplied release image and waives any update precondition failures.
Requested update to release image registry.ci.openshift.org/ocp/release:4.19.0-0.nightly-2025-04-02-170034
$ oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.19.0-0.nightly-2025-04-02-170034 True False 18m Cluster version is 4.19.0-0.nightly-2025-04-02-170034
Actual results:
Cluster got upgraded
Expected results:
It should not
Additional info: