Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-66242

OpenShift Virtualization upgrade, installed with OLM v0, can't be upgraded with OLM v1

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 4.21.0
    • OLM
    • None
    • False
    • Hide

      None

      Show
      None
    • 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:

      1. Install OpenShift Virtualization version 4.19.6 (or any non-latest version) from the catalog.
      2. Create the HyperConverged CR as suggested in the UI; wait for the HyperConverged CR's "Available" condition to be "True".
      3. 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 
      

              rh-ee-cchantse Catherine Chan-Tse
              nunnatsa Nahshon Unna Tsameret
              None
              None
              Jian Zhang Jian Zhang
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: