canonical / canonical/cloud-init
OracleLinux8 is not listed as a variant of RHEL8. Network renderer does not work
- Dominant language
- Python
- Stars
- 3.8k
- Forks
- 1.1k
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 22
Description
This bug was originally filed in Launchpad as [LP: #1960845](https://bugs.launchpad.net/cloud-init/+bug/1960845)
Launchpad details
affected_projects = []
assignee = None
assignee_name = None
date_closed = None
date_created = 2022-02-14T17:04:04.440996+00:00
date_fix_committed = None
date_fix_released = None
id = 1960845
importance = wishlist
is_complete = False
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1960845
milestone = None
owner = bcrowe306
owner_name = Brandon Crowe
private = False
status = confirmed
submitter = bcrowe306
submitter_name = Brandon Crowe
tags = []
duplicates = []
_Launchpad user **Brandon Crowe(bcrowe306)** wrote on 2022-02-14T17:04:04.440996+00:00_
When trying to render network config for Oracle Linux 8, cloud-init fails because the distro is not listed as a variant, and because of this, it selects the wrong renderer.
Cloud-init V 21.4
OS: Oracle Linux 8.5
Cloud: VSphere
Datasource: VMware
Metadata:
# cloud-init
instance-id: ITD-TerraformTest-01
local-hostname: ITD-TerraformTest-01
network:
renderers: ['sysconfig'] # attempt to force renderer
version: 1
config:
- type: physical
name: ens192
subnets:
- type: static
address: "192.168.20.57/24"
gateway: "192.168.20.254"
dns_nameservers:
- "192.168.20.104"
- "8.8.8.8"
dns_search:
- "fairwarning.com"
userdata:
system_info:
network:
renderers: ['sysconfig']
bootcmd:
- ifdown ens192
- sed -i 's/NM_CONTROLLED=no/NM_CONTROLLED=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens192
- nmcli connection reload
- ifup ens192
CLoud-init log failure:
KeyError: "getpwnam(): name not found: 'systemd-network'"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/cmd/main.py", line 689, in status_wrapper
ret = functor(name, args)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/cmd/main.py", line 398, in main_init
init.apply_network_config(bring_up=bring_up_interfaces)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/stages.py", line 836, in apply_network_config
netcfg, bring_up=bring_up)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/distros/__init__.py", line 222, in apply_netwo rk_config
self._write_network_state(network_state)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/distros/__init__.py", line 125, in _write_netw ork_state
renderer.render_network_state(network_state)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/net/networkd.py", line 226, in render_network_ state
self.create_network_file(k, v, fp_nwkd)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/net/networkd.py", line 215, in create_network_ file
util.chownbyname(net_fn, net_fn_owner, net_fn_owner)
File "/usr/local/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg/cloudinit/util.py", line 1434, in chownbyname
raise OSError("Unknown user or group: %s" % (e)) from e
OSError: Unknown user or group: "getpwnam(): name not found: 'systemd-network'"
Contributor guide
Research direction
Start with cloudinit/distros/__init__.py and the renderer paths shown in cloudinit/net/networkd.py and cloudinit/util.py; trace how Oracle Linux 8 is classified and how the network renderer is selected. Reproduce the reported Oracle Linux 8 failure, then verify that the intended renderer no longer looks up the missing systemd-network user and that network configuration completes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python
- Domain
- networking, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100