Thanks for the logs. What is see is: 1) cloud-init generates a fallback networking config 'dhcp on eth0' which is rendered as sysconfig: 2019-09-10 20:00:38,606 - stages.py[INFO]: Applying network configuration from fallback bringup=False: {'config': [{'type': 'physical', 'name': 'eth0', 'mac_address': '02:00:52:bc:00:0c', 'subnets': [{'type': 'dhcp'}]}], 'version': 1} 2019-09-10 20:00:38,607 - __init__.py[DEBUG]: Selected renderer 'sysconfig' from priority list: None 2019-09-10 20:00:38,610 - util.py[DEBUG]: Writing to /etc/sysconfig/network-scripts/ifcfg-eth0 - wb: [644] 159 bytes 2019-09-10 20:00:38,613 - util.py[DEBUG]: Restoring selinux mode for /etc/sysconfig/network-scripts/ifcfg-eth0 (recursive=False) 2) When cloud-init init runs after networking is supposed to be up, there is no DHCP lease in the NetworkManager path 2019-09-10 20:00:40,692 - handlers.py[DEBUG]: start: init-network/search-CloudStack: searching for network data from DataSourceCloudStack 2019-09-10 20:00:40,692 - __init__.py[DEBUG]: Seeing if we can get any data from 2019-09-10 20:00:40,693 - DataSourceCloudStack.py[DEBUG]: Using /var/lib/NetworkManager lease directory 2019-09-10 20:00:40,693 - DataSourceCloudStack.py[DEBUG]: No DHCP found, using default gateway LOoking at the journal, I can see that NetworkManager is loading the ifcfg-rh plugin which is supposed to support reading sysconfig files: Sep 10 16:00:39.274968 centos-host NetworkManager[687]: [1568145639.2746] settings: Loaded settings plugin: SettingsPluginIfcfg ("/usr/lib64/NetworkManager/1.14.0-14.el8/libnm-settings-plugin-ifcfg-rh.so") And NetworkManager brings up eth0 with DHCP: ep 10 16:00:39.277538 centos-host NetworkManager[687]: [1568145639.2775] settings: Loaded settings plugin: NMSIbftPlugin ("/usr/lib64/NetworkManager/1.14.0-14.el8/libnm-settings-plugin-ibft.so") Sep 10 16:00:39.277571 centos-host NetworkManager[687]: [1568145639.2775] settings: Loaded settings plugin: NMSKeyfilePlugin (internal) Sep 10 16:00:39.281007 centos-host NetworkManager[687]: [1568145639.2809] ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-eth0 (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03,"System eth0") Sep 10 16:00:39.291088 centos-host NetworkManager[687]: [1568145639.2910] manager: rfkill: WiFi enabled by radio killswitch; enabled by state file Sep 10 16:00:39.291721 centos-host NetworkManager[687]: [1568145639.2917] manager: rfkill: WWAN enabled by radio killswitch; enabled by state file Sep 10 16:00:39.292362 centos-host NetworkManager[687]: [1568145639.2923] manager: Networking is enabled by state file Sep 10 16:00:39.293807 centos-host NetworkManager[687]: [1568145639.2937] dhcp-init: Using DHCP client 'internal' Sep 10 16:00:39.294565 centos-host nm-dispatcher[698]: req:1 'hostname': new request (3 scripts) Sep 10 16:00:39.294577 centos-host nm-dispatcher[698]: req:1 'hostname': start running ordered scripts... Sep 10 16:00:39.303417 centos-host NetworkManager[687]: [1568145639.3033] Loaded device plugin: NMTeamFactory (/usr/lib64/NetworkManager/1.14.0-14.el8/libnm-device-plugin-team.so) Sep 10 16:00:39.305390 centos-host NetworkManager[687]: [1568145639.3053] device (lo): carrier: link connected Sep 10 16:00:39.308939 centos-host NetworkManager[687]: [1568145639.3089] manager: (lo): new Generic device (/org/freedesktop/NetworkManager/Devices/1) Sep 10 16:00:39.317583 centos-host NetworkManager[687]: [1568145639.3175] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2) Sep 10 16:00:39.326544 centos-host NetworkManager[687]: [1568145639.3265] device (eth0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external') Sep 10 16:00:39.332100 centos-host kernel: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Sep 10 16:00:39.354714 centos-host NetworkManager[687]: [1568145639.3546] device (eth0): carrier: link connected Sep 10 16:00:39.374751 centos-host nm-dispatcher[698]: req:2 'connectivity-change': new request (3 scripts) Sep 10 16:00:39.393401 centos-host nm-dispatcher[698]: req:2 'connectivity-change': start running ordered scripts... Sep 10 16:00:39.412391 centos-host NetworkManager[687]: [1568145639.4123] device (eth0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:39.419201 centos-host NetworkManager[687]: [1568145639.4191] policy: auto-activating connection 'System eth0' (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03) Sep 10 16:00:39.425537 centos-host NetworkManager[687]: [1568145639.4255] device (eth0): Activation: starting connection 'System eth0' (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03) Sep 10 16:00:39.426215 centos-host NetworkManager[687]: [1568145639.4262] device (eth0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:39.431216 centos-host NetworkManager[687]: [1568145639.4311] manager: NetworkManager state is now CONNECTING Sep 10 16:00:39.433561 centos-host NetworkManager[687]: [1568145639.4335] device (eth0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:39.439138 centos-host NetworkManager[687]: [1568145639.4391] device (eth0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:39.442551 centos-host NetworkManager[687]: [1568145639.4425] dhcp4 (eth0): activation: beginning transaction (timeout in 45 seconds) However, dhcp doesn't come up soon enough for cloud-init.service Sep 10 16:00:40.694458 centos-host cloud-init[691]: Cloud-init v. 18.2 running 'init' at Tue, 10 Sep 2019 20:00:40 +0000. Up 12.46 seconds. Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: +++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++ Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: +--------+------+-----------+-----------+-------+-------------------+ Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: +--------+------+-----------+-----------+-------+-------------------+ Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: | eth0: | True | . | . | . | 02:00:52:bc:00:0c | Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: | eth0: | True | . | . | d | 02:00:52:bc:00:0c | Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: | lo: | True | 127.0.0.1 | 255.0.0.0 | . | . | Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: | lo: | True | . | . | d | . | Sep 10 16:00:40.694458 centos-host cloud-init[691]: ci-info: +--------+------+-----------+-----------+-------+-------------------+ Sep 10 16:00:40.694458 centos-host cloud-init[691]: 2019-09-10 20:00:40,694 - util.py[WARNING]: Getting data from failed Sep 10 16:00:40.804222 centos-host cloud-init[691]: 2019-09-10 20:00:40,803 - util.py[WARNING]: No instance datasource found! Likely bad things to come! and shortly later DHCP responds: Sep 10 16:00:41.981347 centos-host NetworkManager[687]: [1568145641.9808] dhcp4 (eth0): address 10.210.129.219 Sep 10 16:00:41.981385 centos-host NetworkManager[687]: [1568145641.9813] dhcp4 (eth0): plen 24 Sep 10 16:00:41.981403 centos-host NetworkManager[687]: [1568145641.9813] dhcp4 (eth0): expires in 2638800 seconds Sep 10 16:00:41.981437 centos-host NetworkManager[687]: [1568145641.9814] dhcp4 (eth0): nameserver '10.210.129.1' Sep 10 16:00:41.981452 centos-host NetworkManager[687]: [1568145641.9814] dhcp4 (eth0): nameserver '8.8.8.8' Sep 10 16:00:41.981467 centos-host NetworkManager[687]: [1568145641.9814] dhcp4 (eth0): nameserver '8.8.4.4' Sep 10 16:00:41.981483 centos-host NetworkManager[687]: [1568145641.9814] dhcp4 (eth0): domain name 'cs1f53cloud.internal' Sep 10 16:00:41.981498 centos-host NetworkManager[687]: [1568145641.9814] dhcp4 (eth0): hostname 'rhel8-broken' Sep 10 16:00:41.981510 centos-host NetworkManager[687]: [1568145641.9815] dhcp4 (eth0): gateway 10.210.129.1 Sep 10 16:00:41.982066 centos-host NetworkManager[687]: [1568145641.9820] dhcp4 (eth0): state changed unknown -> bound Sep 10 16:00:41.983435 centos-host NetworkManager[687]: [1568145641.9834] device (eth0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:41.984327 centos-host NetworkManager[687]: [1568145641.9843] device (eth0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:41.984581 centos-host NetworkManager[687]: [1568145641.9845] device (eth0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed') Sep 10 16:00:41.985379 centos-host NetworkManager[687]: [1568145641.9853] manager: NetworkManager state is now CONNECTED_LOCAL Sep 10 16:00:41.999774 centos-host NetworkManager[687]: [1568145641.9997] manager: NetworkManager state is now CONNECTED_SITE Sep 10 16:00:41.999934 centos-host NetworkManager[687]: [1568145641.9999] policy: set 'System eth0' (eth0) as default for IPv4 routing and DNS Sep 10 16:00:42.004565 centos-host NetworkManager[687]: [1568145642.0045] device (eth0): Activation: successful, device activated. Sep 10 16:00:42.005084 centos-host NetworkManager[687]: [1568145642.0050] manager: NetworkManager state is now CONNECTED_GLOBAL Sep 10 16:00:42.005399 centos-host NetworkManager[687]: [1568145642.0053] manager: startup complete WHich leads me to believe that cloud-init.service will need to also wait for NetworkManager.service. Currently cloud-init.service runs after 'network.service' on centos/fedora/redhat distros. So, can you confirm the NetworkManager service name? network-manager.service? It looks like it's NetworkManager.service Also, could you try this drop-in config: % mkdir -p /etc/systemd/system/cloud-init.service.d % echo -e "[Unit]\nAfter=NetworkManager.service" > /etc/systemd/system/cloud-init.service.d/10-nm.conf % systemctl daemon-reload