canonical / canonical/cloud-init

OracleLinux8 is not listed as a variant of RHEL8. Network renderer does not work

Open
#3,947 1 comment 0 reactions 0 assignees View on GitHub
enhancement launchpad
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.