-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
4.21.0
-
None
-
False
-
-
None
-
None
-
None
-
None
-
None
-
Proposed
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
Trying to upgrade OpenShift Virtualization, that was installed with OLM v0, using OLM v1's ClusterExtension. The upgrade failed.
How reproducible:
Install a previous version of OpenShift Virtualization, from UI. Then create a ClusterExtension CR.
Steps to Reproduce:
- Install OpenShift Virtualization version 4.19.6 (or any non-latest version) from the catalog.
- Create the HyperConverged CR as suggested in the UI; wait for the HyperConverged CR's "Available" condition to be "True".
- Create the ClusterExtension CR
--- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubevirt-hyperconverged-installer-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubevirt-hyperconverged-installer namespace: openshift-cnv --- apiVersion: olm.operatorframework.io/v1 kind: ClusterExtension metadata: name: kubevirt-hyperconverged spec: namespace: openshift-cnv serviceAccount: name: kubevirt-hyperconverged-installer config: configType: Inline inline: watchNamespace: openshift-cnv source: sourceType: Catalog catalog: packageName: kubevirt-hyperconverged channels: - stable
Actual results:
- No pod in the openshift-cnv rollovered
- The version field in the HyperConverged CR status is still 4.19.6
- Bottom line: the upgrade didn't even start
Expected results:OpenShift Virtualization is upgraded to the latest version (currently, 4.20.1), all the pods rollovered. The version field in the HyperConverged CR status is with the right (latest) version.
Additional info:
The ClusterExtension is now:
apiVersion: olm.operatorframework.io/v1 kind: ClusterExtension metadata: creationTimestamp: "2025-12-02T11:52:54Z" finalizers: - olm.operatorframework.io/cleanup-unpack-cache - olm.operatorframework.io/cleanup-contentmanager-cache generation: 1 name: kubevirt-hyperconverged resourceVersion: "143503" uid: 09c079c5-c2e2-434e-b899-34d188e91d2a spec: config: configType: Inline inline: watchNamespace: openshift-cnv namespace: openshift-cnv serviceAccount: name: kubevirt-hyperconverged-installer source: catalog: channels: - stable packageName: kubevirt-hyperconverged upgradeConstraintPolicy: CatalogProvided sourceType: Catalog status: conditions: - lastTransitionTime: "2025-12-02T11:52:54Z" message: "" observedGeneration: 1 reason: Deprecated status: "False" type: Deprecated - lastTransitionTime: "2025-12-02T11:52:54Z" message: "" observedGeneration: 1 reason: Deprecated status: "False" type: PackageDeprecated - lastTransitionTime: "2025-12-02T11:52:54Z" message: "" observedGeneration: 1 reason: Deprecated status: "False" type: ChannelDeprecated - lastTransitionTime: "2025-12-02T11:52:54Z" message: "" observedGeneration: 1 reason: Deprecated status: "False" type: BundleDeprecated - lastTransitionTime: "2025-12-02T11:52:58Z" message: No bundle installed observedGeneration: 1 reason: Failed status: "False" type: Installed - lastTransitionTime: "2025-12-02T11:52:58Z" message: 'error for resolved bundle "kubevirt-hyperconverged-operator.v4.20.1" with version "4.20.1": failed to get release state using server-side dry-run: ServiceAccount ''hostpath-provisioner-operator'' already exists in namespace ''openshift-cnv'' and cannot be managed by operator-controller' observedGeneration: 1 reason: Retrying status: "True" type: Progressing
The assumption is that the error about the hostpath-provisioner-operator ServiceAccount is just the first issue, and many resources are in the same status, where they are owned by the CSV. Anyway, here is its yaml:
apiVersion: v1 imagePullSecrets: - name: hostpath-provisioner-operator-dockercfg-k6dr4 kind: ServiceAccount metadata: annotations: openshift.io/internal-registry-pull-secret-ref: hostpath-provisioner-operator-dockercfg-k6dr4 creationTimestamp: "2025-12-02T11:46:25Z" labels: olm.managed: "true" operators.coreos.com/kubevirt-hyperconverged.openshift-cnv: "" name: hostpath-provisioner-operator namespace: openshift-cnv ownerReferences: - apiVersion: operators.coreos.com/v1alpha1 blockOwnerDeletion: false controller: false kind: ClusterServiceVersion name: kubevirt-hyperconverged-operator.v4.19.6 uid: fa79a1b1-5738-47d1-8ff3-090db5d3e4ce resourceVersion: "136945" uid: a444cced-2816-4b95-8527-31681bbb0202 secrets: - name: hostpath-provisioner-operator-dockercfg-k6dr4