summaryrefslogtreecommitdiff
path: root/cloudinit/distros
diff options
context:
space:
mode:
authorJames Falcon <james.falcon@canonical.com>2021-10-07 11:27:36 -0500
committerGitHub <noreply@github.com>2021-10-07 10:27:36 -0600
commit9c147e8341e287366790e60658f646cdcc59bef2 (patch)
tree7b4fe68c61d4e9630322e4903fc07f7e4b868cff /cloudinit/distros
parent3d2bac8bf6d0c53f56e14cb2c15b0c695cf0a647 (diff)
downloadvyos-cloud-init-9c147e8341e287366790e60658f646cdcc59bef2.tar.gz
vyos-cloud-init-9c147e8341e287366790e60658f646cdcc59bef2.zip
Allow disabling of network activation (SC-307) (#1048)
In #919 (81299de), we refactored some of the code used to bring up networks across distros. Previously, the call to bring up network interfaces during 'init' stage unintentionally resulted in a no-op such that network interfaces were NEVER brought up by cloud-init, even if new network interfaces were found after crawling the metadata. The code was altered to bring up these discovered network interfaces. On ubuntu, this results in a 'netplan apply' call during 'init' stage for any ubuntu-based distro on a datasource that has a NETWORK dependency. On GCE, this additional 'netplan apply' conflicts with the google-guest-agent service, resulting in an instance that can no be connected to. This commit adds a 'disable_network_activation' option that can be enabled in /etc/cloud.cfg to disable the activation of network interfaces in 'init' stage. LP: #1938299
Diffstat (limited to 'cloudinit/distros')
-rwxr-xr-xcloudinit/distros/__init__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 63e78591..426a2cf4 100755
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -227,8 +227,11 @@ class Distro(persistence.CloudInitPickleMixin, metaclass=abc.ABCMeta):
# Now try to bring them up
if bring_up:
+ LOG.debug('Bringing up newly configured network interfaces')
network_activator = activators.select_activator()
network_activator.bring_up_all_interfaces(network_state)
+ else:
+ LOG.debug("Not bringing up newly configured network interfaces")
return False
def apply_network_config_names(self, netconfig):