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

ironic-machine-os-downloader image is missing virt-* tools in OCP 4.12 nightlies

XMLWordPrintable

    • Critical
    • None
    • 1
    • Metal Platform 223, Metal Platform 224, Metal Platform 225, Metal Platform 226, Metal Platform 227
    • 5
    • Approved
    • False
    • Hide

      None

      Show
      None

      Hi,

      Description of problem

      Bare Metal IPI provisioning is failing to provision the worker nodes. The metal3-machine-os-downloader InitContainer is getting in CrashLoopBackOff state because it cannot find virt-* commands in the container image.

      > oc -n openshift-machine-api get pods | grep -v Running
      NAME                       READY   STATUS
      metal3-fc66f5846-gtq9m     0/7     Init:CrashLoopBackOff
      metal3-image-cache-d4qcz   0/1     Init:1/2
      metal3-image-cache-djzcf   0/1     Init:1/2
      metal3-image-cache-p5mwg   0/1     Init:1/2
      
      > oc -n openshift-machine-api logs deployment/metal3 -c metal3-machine-os-downloader
      [omitted]
      ++ LIBGUESTFS_BACKEND=direct
      ++ virt-filesystems -a rhcos-412.86.202207142104-0-openstack.x86_64.qcow2 -l
      /usr/local/bin/get-resource.sh: line 88: virt-filesystems: command not found
      ++ grep boot
      ++ cut -f1 '-d '
      + BOOT_DISK=
      ++ LIBGUESTFS_BACKEND=direct
      ++ virt-ls -a rhcos-412.86.202207142104-0-openstack.x86_64.qcow2 -m '' /boot/loader/entries
      /usr/local/bin/get-resource.sh: line 90: virt-ls: command not found
      + BOOT_ENTRIES=
      + rm -fr /shared/tmp/tmp.CnCd2E3kxN
      
      Version-Release number of selected component (if applicable):

      OpenShift 4.12.0-ec.0+

      Analysis

      Since https://github.com/openshift/ocp-build-data/pull/1757, the ironic-machine-os-downloader container image is built using RHEL9 repositories.

      However, following upstream move of guestfs tools to a dedicated repository [1], the libguestfs packaging differs between RHEL8 and RHEL9:

      • the libguestfs-tools-c package containing most virt-* commands is now provided by the guestfs-tools package
      • the libguestfs-tools package is now provided by the virt-win-reg package which does not require the libguestfs-tools-c package anymore

      Since the Dockerfile specifies only the libguestfs-tools package, the virt-* commands are not installed when using RHEL9 repositories.

      A trivial fix is to update the Dockerfile to install the guestfs-tools package instead of the libguestfs-tools package.

      Regards,

      Denis

              rpittau@redhat.com Riccardo Pittau
              dollierp@redhat.com Denis Ollier Pinas
              Jad Haj Yahya Jad Haj Yahya
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: