Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-82185

[Epic]: "Make sure required packages are installed' task fails because Blivet requires the kmod-kvdo package, which is no longer available on RHEL-10

    • [Epic]: "Make sure required packages are installed' task fails because Blivet requires the kmod-kvdo package, which is no longer available on RHEL-10
    • Critical
    • Red Hat Enterprise Linux
    • 0% To Do, 0% In Progress, 100% Done
    • rhel-sst-system-roles
    • False
    • Hide

      None

      Show
      None
    • No
    • Dev ack
    • Unspecified
    • Unspecified
    • Unspecified

      What were you trying to do that didn't work?

      The Ansible task for installing required packages in rhel-system-roles.storage fails because kmod-kvdo is no longer available on RHEL-10. However, blivet still lists kmod-kvdo as a required package https://github.com/linux-system-roles/storage/blob/main/library/blivet.py#L607C3-L607C50.

      What is the impact of this issue to you?

      Unable to create an lvmvdo volume on RHEL-10 using rhel-system-roles unless the 'Make sure required packages are installed' task is skipped.

      Please provide the package NVR for which the bug is seen:

      rhel-system-roles-1.95.5-0.1

      How reproducible is this bug?:

      always

      Steps to reproduce

      1. Run an Ansible playbook that includes rhel-system-roles.storage and attempts to create an lvmvdo volume with compression and deduplication enabled on a RHEL-10 system.
      ---
      - name: Manage local storage
        hosts: all
        become: true
        tasks:          
          - name: Create LVM-VDO volume under volume group 'myvg'
            ansible.builtin.include_role:
              name: rhel-system-roles.storage
            vars:
              storage_pools:
                - name: myvg
                  disks:
                    - /dev/sda
                  volumes:
                    - name: mylv1
                      compression: true
                      deduplication: true
                      vdo_pool_size: 10 GiB
                      size: 30 GiB
                      mount_point: /mnt/app/shared

      Expected results

      The Ansible playbook should successfully create an lvmvdo volume with compression and deduplication enabled.

      Actual results

       

      ansible-playbook -vv -i /root/inventory /root/playbook.yml 
      ansible-playbook [core 2.14.18]
        config file = /etc/ansible/ansible.cfg
        configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
        ansible python module location = /usr/lib/python3.9/site-packages/ansible
        ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
        executable location = /usr/bin/ansible-playbook
        python version = 3.9.21 (main, Feb 10 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3)
        jinja version = 3.1.2
        libyaml = True
      Using /etc/ansible/ansible.cfg as config file
      Skipping callback 'default', as we already have a stdout callback.
      Skipping callback 'minimal', as we already have a stdout callback.
      Skipping callback 'oneline', as we already have a stdout callback.
      PLAYBOOK: playbook.yml *********************************************************
      1 plays in /root/playbook.yml
      PLAY [Manage local storage] ****************************************************
      TASK [Gathering Facts] *********************************************************
      task path: /root/playbook.yml:2
      ok: [storageqe-76.lab.eng.brq2.redhat.com]
      TASK [Create LVM-VDO volume under volume group 'myvg'] *************************
      task path: /root/playbook.yml:6
      TASK [rhel-system-roles.storage : Set platform/version specific variables] *****
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main.yml:2
      included: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/set_vars.yml for storageqe-76.lab.eng.brq2.redhat.com
      TASK [rhel-system-roles.storage : Ensure ansible_facts used by role] ***********
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/set_vars.yml:2
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "skip_reason": "Conditional result was False"}
      TASK [rhel-system-roles.storage : Set platform/version specific variables] *****
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/set_vars.yml:8
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => (item=RedHat.yml)  => {"ansible_loop_var": "item", "changed": false, "item": "RedHat.yml", "skip_reason": "Conditional result was False"}
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => (item=RedHat.yml)  => {"ansible_loop_var": "item", "changed": false, "item": "RedHat.yml", "skip_reason": "Conditional result was False"}
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => (item=RedHat_10.yml) => {"ansible_facts": {"blivet_package_list": ["python3-blivet", "libblockdev-crypto", "libblockdev-dm", "libblockdev-fs", "libblockdev-lvm", "libblockdev-mdraid", "libblockdev-swap", "xfsprogs", "stratisd", "stratis-cli", "{{ 'libblockdev-s390' if ansible_architecture == 's390x' else 'libblockdev' }}", "vdo"]}, "ansible_included_var_files": ["/usr/share/ansible/roles/rhel-system-roles.storage/vars/RedHat_10.yml"], "ansible_loop_var": "item", "changed": false, "item": "RedHat_10.yml"}
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => (item=RedHat_10.0.yml)  => {"ansible_loop_var": "item", "changed": false, "item": "RedHat_10.0.yml", "skip_reason": "Conditional result was False"}
      TASK [rhel-system-roles.storage : Check if system is ostree] *******************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/set_vars.yml:26
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "stat": {"exists": false}}
      TASK [rhel-system-roles.storage : Set flag to indicate system is ostree] *******
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/set_vars.yml:31
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"ansible_facts": {"__storage_is_ostree": false}, "changed": false}
      TASK [rhel-system-roles.storage : Define an empty list of pools to be used in testing] ***
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main.yml:5
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"ansible_facts": {"_storage_pools_list": []}, "changed": false}
      TASK [rhel-system-roles.storage : Define an empty list of volumes to be used in testing] ***
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main.yml:9
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"ansible_facts": {"_storage_volumes_list": []}, "changed": false}
      TASK [rhel-system-roles.storage : Include the appropriate provider tasks] ******
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main.yml:13
      included: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml for storageqe-76.lab.eng.brq2.redhat.com
      TASK [rhel-system-roles.storage : Make sure blivet is available] ***************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:2
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "msg": "Nothing to do", "rc": 0, "results": []}
      TASK [rhel-system-roles.storage : Show storage_pools] **************************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:11
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {
          "storage_pools": [
              {
                  "disks": [
                      "/dev/sda"
                  ],
                  "name": "myvg",
                  "volumes": [
                      {
                          "compression": true,
                          "deduplication": true,
                          "mount_point": "/mnt/app/shared",
                          "name": "mylv1",
                          "size": "30 GiB",
                          "vdo_pool_size": "10 GiB"
                      }
                  ]
              }
          ]
      }
      TASK [rhel-system-roles.storage : Show storage_volumes] ************************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:16
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {
          "storage_volumes": "VARIABLE IS NOT DEFINED!: 'storage_volumes' is undefined. 'storage_volumes' is undefined"
      }
      TASK [rhel-system-roles.storage : Get required packages] ***********************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:21
      [WARNING]: Module invocation had junk after the JSON data: sys:1:
      DeprecationWarning: builtin type swigvarlink has no __module__ attribute
      ok: [storageqe-76.lab.eng.brq2.redhat.com] => {"actions": [], "changed": false, "crypts": [], "leaves": [], "mounts": [], "packages": ["kmod-kvdo", "lvm2", "vdo"], "pools": [], "volumes": []}
      TASK [rhel-system-roles.storage : Enable copr repositories if needed] **********
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:34
      included: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/enable_coprs.yml for storageqe-76.lab.eng.brq2.redhat.com
      TASK [rhel-system-roles.storage : Check if the COPR support packages should be installed] ***
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/enable_coprs.yml:2
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "skipped_reason": "No items in the list"}
      TASK [rhel-system-roles.storage : Make sure COPR support packages are present] ***
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/enable_coprs.yml:13
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "skip_reason": "Conditional result was False"}
      TASK [rhel-system-roles.storage : Enable COPRs] ********************************
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/enable_coprs.yml:20
      skipping: [storageqe-76.lab.eng.brq2.redhat.com] => {"changed": false, "skipped_reason": "No items in the list"}
      TASK [rhel-system-roles.storage : Make sure required packages are installed] ***
      task path: /usr/share/ansible/roles/rhel-system-roles.storage/tasks/main-blivet.yml:41
      fatal: [storageqe-76.lab.eng.brq2.redhat.com]: FAILED! => {"changed": false, "failures": ["No package kmod-kvdo available."], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
      PLAY RECAP *********************************************************************
      storageqe-76.lab.eng.brq2.redhat.com : ok=13   changed=0    unreachable=0    failed=1    skipped=4    rescued=0    ignored=0  
      

       

              rmeggins@redhat.com Richard Megginson
              rmeggins@redhat.com Richard Megginson
              Richard Megginson Richard Megginson
              David Jez David Jez
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated: