We use config drive(/dev/sr0) as a data source to configure network interfaces in the guest but configdrive is not always available and may be removed after couple of hours from the hypervisor. This config drive information is provided by the nova layer of openstack component
On a first boot cloudinit uses data provided in config drive and updates system level network scripts /etc/sysconfig/
As long as the configdrive is available, reboots will relay on system scripts for the configuring network but once configdrive is removed, datasource becomes None meaning it neither system script nor config drive which makes cloud init to configure default network which is DHCP, it re writes the network scripts in the guest to configure DHCP network. I have also opened a cloudinit defect [1] and any inputs on this much appreciated