Bug 1212151 - Cloud Snapshot 20230605 images do not perform dhcp with cloud-init
Summary: Cloud Snapshot 20230605 images do not perform dhcp with cloud-init
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Patterns (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: Dominique Leuenberger
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-09 01:19 UTC by William Brown
Modified: 2023-08-02 15:53 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William Brown 2023-06-09 01:19:23 UTC
openSUSE-Tumbleweed-Minimal-VM.x86_64-1.0.0-Cloud-Snapshot20230605.qcow2 does not attempt dhcp on machine boot. This changes the previous behaviour where dhcp/dhcp6 was requested. 

This appears to be a fault in cloud-init with the following message:

Jun 09 11:10:45 nettest cloud-init[662]: 2023-06-09 01:10:45,140 - util.py[WARNING]: failed stage init-local
Jun 09 11:10:45 nettest cloud-init[662]: failed run of stage init-local
Jun 09 11:10:45 nettest cloud-init[662]: ------------------------------------------------------------
Jun 09 11:10:45 nettest cloud-init[662]: Traceback (most recent call last):
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/util.py", line 1608, in chownbyname
Jun 09 11:10:45 nettest cloud-init[662]:     uid = pwd.getpwnam(user).pw_uid
Jun 09 11:10:45 nettest cloud-init[662]: KeyError: "getpwnam(): name not found: 'systemd-network'"
Jun 09 11:10:45 nettest cloud-init[662]: The above exception was the direct cause of the following exception:
Jun 09 11:10:45 nettest cloud-init[662]: Traceback (most recent call last):
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/cmd/main.py", line 767, in status_wrapper
Jun 09 11:10:45 nettest cloud-init[662]:     ret = functor(name, args)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/cmd/main.py", line 433, in main_init
Jun 09 11:10:45 nettest cloud-init[662]:     init.apply_network_config(bring_up=bring_up_interfaces)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/stages.py", line 939, in apply_network_config
Jun 09 11:10:45 nettest cloud-init[662]:     return self.distro.apply_network_config(
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/distros/__init__.py", line 278, in apply_network_config
Jun 09 11:10:45 nettest cloud-init[662]:     self._write_network_state(network_state, renderer)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/distros/__init__.py", line 167, in _write_network_state
Jun 09 11:10:45 nettest cloud-init[662]:     renderer.render_network_state(network_state)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/net/networkd.py", line 306, in render_network_state
Jun 09 11:10:45 nettest cloud-init[662]:     self.create_network_file(k, v, network_dir)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/net/networkd.py", line 290, in create_network_file
Jun 09 11:10:45 nettest cloud-init[662]:     util.chownbyname(net_fn, net_fn_owner, net_fn_owner)
Jun 09 11:10:45 nettest cloud-init[662]:   File "/usr/lib/python3.10/site-packages/cloudinit/util.py", line 1612, in chownbyname
Jun 09 11:10:45 nettest cloud-init[662]:     raise OSError("Unknown user or group: %s" % (e)) from e
Jun 09 11:10:45 nettest cloud-init[662]: OSError: Unknown user or group: "getpwnam(): name not found: 'systemd-network'"


It appears that there are no network management packages installed:

nettest:/home/admin # rpm -qa | grep -i wick
nettest:/home/admin # rpm -qa | grep -i network
nettest:/home/admin #

Given the trend toward NetworkManager within SUSE, it is likely that NetworkManager should be the preferred backend here.
Comment 1 Robert Schweikert 2023-06-09 12:49:25 UTC
NetworkManager does not have an independent way to make a dhcp request, as such cloud-init still needs dhcp-client which should be installed as the package has

Requires:       dhcp-client

therefore the cloud-init code itself will work w.r.t. retrieving the initial configuration and making the dhcp request.

After this initial stage, where cloud-init makes a dhcp request it is expected that the system network stack starts. That used to be wicked and cloud-init used to have an unconditional

Requires:       wicked-service

directive. This was changed to

%if 0%{?suse_version} && 0%{?suse_version} <= 1500
Requires:       wicked-service
%endif

As such it is now the responsibility of those that set up the image build to include a network stack tool of their choice. Meaning most likely a

<package name="NetworkManager">

is missing in the image description for the TW image build.

I do not know who maintains the build descriptions or where they are maintained. As such I will set this to "Other" as the images are not built in the Cloud:Images project