-
Bug
-
Resolution: Unresolved
-
Normal
-
None
-
4.19.z, 4.20.z, 4.21.0
Description of problem:
Could update the image-overrides annotation to another image, but not reflect after removed the annotation in 4.21.
Couldn't update or remove the annotation in 4.19 hcp, the operation will be ignored
Version-Release number of selected component (if applicable):
4.21.0-0.nightly-2025-11-20-233928
How reproducible:
always
Steps to Reproduce:
1.Create hcp with hypershift.openshift.io/image-overrides: cluster-version-operator annotation
$oc get hc -A -o yaml | grep override
hypershift.openshift.io/image-overrides: cluster-version-operator=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:375787ef71d48bb1babe7a669e0dc1732ecced830d51b0d17fd15d10feb67f48
$ oc get pods control-plane-operator-7d8bf9757c-rffwc -o yaml | grep override -A 2
- --registry-overrides==
- --image-overrides
- cluster-version-operator=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:375787ef71d48bb1babe7a669e0dc1732ecced830d51b0d17fd15d10feb67f48
$oc get pods -l app=cluster-version-operator -o jsonpath='{.items[0].spec.containers[0].image}'
quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:375787ef71d48bb1babe7a669e0dc1732ecced830d51b0d17fd15d10feb67f48%
2. Update the annotation to another image
$oc adm release info quay.io/openshift-release-dev/ocp-release:4.21.0-ec.0-x86_64 -o=json | jq -r '.references.spec.tags[] | select(.name=="cluster-version-operator") | .from.name' quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63 $oc annotate hostedcluster xiuwang-aks-hc-21-oidc -n clusters \ hypershift.openshift.io/image-overrides=cluster-version-operator=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63 \ --overwrite hostedcluster.hypershift.openshift.io/xiuwang-aks-hc-21-oidc annotated
3. Check the image update
oc get hc -A -o yaml | grep override
hypershift.openshift.io/image-overrides: cluster-version-operator=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63
hypershift.openshift.io/pod-security-admission-label-override: baseline
oc get pods -l app=control-plane-operator
NAME READY STATUS RESTARTS AGE
control-plane-operator-69db6f69c4-6ktnx 1/1 Running 0 52s
$oc get pods control-plane-operator-69db6f69c4-6ktnx -o yaml | grep -i override -A 2
- --registry-overrides==
- --image-overrides
- cluster-version-operator=quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63
$oc get pods -l app=cluster-version-operator -o jsonpath='{.items[0].spec.containers[0].image}'
quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63
4. Remove the annotation from hc
$oc annotate hostedcluster xiuwang-aks-hc-21-oidc -n clusters \
hypershift.openshift.io/image-overrides-
hostedcluster.hypershift.openshift.io/xiuwang-aks-hc-21-oidc annotated
$ oc get hc -A -o yaml | grep override
hypershift.openshift.io/pod-security-admission-label-override: baseline
$ oc get pods -l app=control-plane-operator -w
NAME READY STATUS RESTARTS AGE
control-plane-operator-69db6f69c4-6ktnx 1/1 Running 0 11m
^C% $oc get pods -l app=cluster-version-operator -o jsonpath='{.items[0].spec.containers[0].image}'
quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b694023143beb0fed27a9ac97b519134190e21337f5e06518ac5ad44586d9f63%
Actual results:
The annotation updating could take effect, but removing the annotation will be ignored
Expected results:
Could update and remove annotation
Additional info: