canonical / cloud-init

Official upstream for the cloud-init: cloud instance initialization

Home Page:https://cloud-init.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Azure: ubuntu minimal images getting warnings due to missing gdisk (/usr/sbin/sgdisk)

blackboxsw opened this issue · comments

Bug report

Ubuntu Minimal Azure images do not contain gdisk package (and resulting sgdisk), resulting in failure to partition /dev/sda.
This results in a warning in cloud-init logs Failed to partitioning operation and the inability to partition /dev/sda.

Steps to reproduce the problem

Environment details

  • Cloud-init version: 24.1~
  • Operating System Distribution: Ubuntu Noble minimal
  • Cloud provider, platform or installer type: Azure

cloud-init logs

2024-02-19 03:16:07,680 - cc_disk_setup.py[DEBUG]: Checking if device layout matches
2024-02-19 03:16:07,680 - subp.py[DEBUG]: Running command [None, '-p', '/dev/sda'] with allowed return codes [0] (shell=False, capture=True)
2024-02-19 03:16:07,680 - util.py[DEBUG]: Creating partition on /dev/disk/cloud/azure_resource took 0.022 seconds
2024-02-19 03:16:07,680 - util.py[WARNING]: Failed partitioning operation
Error running partition command on /dev/sda
'NoneType' object has no attribute 'encode'
2024-02-19 03:16:07,684 - util.py[DEBUG]: Failed partitioning operation
Error running partition command on /dev/sda
'NoneType' object has no attribute 'encode'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/cloudinit/config/cc_disk_setup.py", line 491, in check_partition_gpt_layout
    out, _err = subp.subp(prt_cmd, update_env=LANG_C_ENV)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/subp.py", line 244, in subp
    bytes_args = [
                 ^
  File "/usr/lib/python3/dist-packages/cloudinit/subp.py", line 245, in <listcomp>
    x if isinstance(x, bytes) else x.encode("utf-8") for x in args
                                   ^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'encode'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/cloudinit/config/cc_disk_setup.py", line 136, in handle
    util.log_time(
  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 2838, in log_time
    ret = func(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/config/cc_disk_setup.py", line 829, in mkpart
    if check_partition_layout(table_type, device, layout):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/config/cc_disk_setup.py", line 538, in check_partition_layout
    found_layout = check_partition_gpt_layout(device, layout)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/config/cc_disk_setup.py", line 493, in check_partition_gpt_layout
    raise RuntimeError(
RuntimeError: Error running partition command on /dev/sda
'NoneType' object has no attribute 'encode'
2024-02-19 03:16:07,687 - cc_disk_setup.py[DEBUG]: setting up filesystems: [{'filesystem': 'ext4', 'device': 'ephemeral0.1'}]
2024-02-19 03:16:07,687 - cc_disk_setup.py[DEBUG]: ephemeral0.1 is mapped to disk=/dev/disk/cloud/azure_resource part=1
2024-02-19 03:16:07,687 - cc_disk_setup.py[DEBUG]: Creating new filesystem.