This is a clone of issue OCPBUGS-12901. The following is the description of the original issue:
—
Description of problem:
When a (recommended/conditional) release image is provided with --to-image='', the specified image name is not preserved in the ClusterVersion object.
Version-Release number of selected component (if applicable):
How reproducible:
100% with oc >4.9
Steps to Reproduce:
$ oc version
Client Version: 4.12.2
Kustomize Version: v4.5.7
Server Version: 4.12.2
Kubernetes Version: v1.25.4+a34b9e9
$ oc get clusterversion/version -o jsonpath='{.status.desired}'|jq
{
"channels": [
"candidate-4.12",
"candidate-4.13",
"eus-4.12",
"fast-4.12",
"stable-4.12"
],
"image": "quay.io/openshift-release-dev/ocp-release@sha256:31c7741fc7bb73ff752ba43f5acf014b8fadd69196fc522241302de918066cb1",
"url": "https://access.redhat.com/errata/RHSA-2023:0569",
"version": "4.12.2"
}
$ oc adm release info 4.12.3 -o jsonpath='{.image}'
quay.io/openshift-release-dev/ocp-release@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36
$ skopeo copy docker://quay.io/openshift-release-dev/ocp-release@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36 docker://quay.example.com/playground/release-images
Getting image source signatures
Copying blob 64096b96a7b0 done
Copying blob 0e0550faf8e0 done
Copying blob 97da74cc6d8f skipped: already exists
Copying blob d8190195889e skipped: already exists
Copying blob 17997438bedb done
Copying blob fdbb043b48dc done
Copying config b49bc8b603 done
Writing manifest to image destination
Storing signatures
$ skopeo inspect docker://quay.example.com/playground/release-images@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36|jq '.Name,.Digest'
"quay.example.com/playground/release-images"
"sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36"
$ oc adm upgrade --to-image=quay.example.com/playground/release-images@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36 Requesting update to 4.12.3
Actual results:
$ oc get clusterversion/version -o jsonpath='{.status.desired}'|jq
{
"channels": [
"candidate-4.12",
"candidate-4.13",
"eus-4.12",
"fast-4.12",
"stable-4.12"
],
"image": "quay.io/openshift-release-dev/ocp-release@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36", <--- not quay.example.com
"url": "https://access.redhat.com/errata/RHSA-2023:0728",
"version": "4.12.3"
}
$ oc get clusterversion/version -o jsonpath='{.status.history}'|jq
[
{
"completionTime": null,
"image": "quay.io/openshift-release-dev/ocp-release@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36", <--- not quay.example.com
"startedTime": "2023-04-28T07:39:11Z",
"state": "Partial",
"verified": true,
"version": "4.12.3"
},
{
"completionTime": "2023-04-27T14:48:06Z",
"image": "quay.io/openshift-release-dev/ocp-release@sha256:31c7741fc7bb73ff752ba43f5acf014b8fadd69196fc522241302de918066cb1",
"startedTime": "2023-04-27T14:24:29Z",
"state": "Completed",
"verified": false,
"version": "4.12.2"
}
]
Expected results:
$ oc get clusterversion/version -o jsonpath='{.status.desired}'|jq
{
"channels": [
"candidate-4.12",
"candidate-4.13",
"eus-4.12",
"fast-4.12",
"stable-4.12"
],
"image": "quay.example.com/playground/release-images@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36 ",
"url": "https://access.redhat.com/errata/RHSA-2023:0728",
"version": "4.12.3"
}$ oc get clusterversion/version -o jsonpath='{.status.history}'|jq
[
{
"completionTime": null,
"image": "quay.example.com/playground/release-images@sha256:382f271581b9b907484d552bd145e9a5678e9366330059d31b007f4445d99e36 ",
"startedTime": "2023-04-28T07:39:11Z",
"state": "Partial",
"verified": true,
"version": "4.12.3"
},
{
"completionTime": "2023-04-27T14:48:06Z",
"image": "quay.io/openshift-release-dev/ocp-release@sha256:31c7741fc7bb73ff752ba43f5acf014b8fadd69196fc522241302de918066cb1",
"startedTime": "2023-04-27T14:24:29Z",
"state": "Completed",
"verified": false,
"version": "4.12.2"
}
]
Additional info:
While in earlier versions (<4.10) we used to preserve the specified image [1], we now (as of 4.10) store the public image as the desired version [2]. [1] https://github.com/openshift/oc/blob/88cfeb4aa2d74ee5f5598c571661622c0034081b/pkg/cli/admin/upgrade/upgrade.go#L278 [2] https://github.com/openshift/oc/blob/5711859fac135177edf07161615bdabe3527e659/pkg/cli/admin/upgrade/upgrade.go#L278
- blocks
-
OCPBUGS-14385 oc does not preserve a speficic release image provided with --to-image=''
-
- Closed
-
- clones
-
OCPBUGS-12901 oc does not preserve a speficic release image provided with --to-image=''
-
- Closed
-
- is blocked by
-
OCPBUGS-12901 oc does not preserve a speficic release image provided with --to-image=''
-
- Closed
-
- is cloned by
-
OCPBUGS-14385 oc does not preserve a speficic release image provided with --to-image=''
-
- Closed
-
- links to