From ca0da042e73d1cf078435befa02a6e09d004b62d Mon Sep 17 00:00:00 2001 From: Andrew Kutz <101085+akutz@users.noreply.github.com> Date: Fri, 8 Oct 2021 12:49:58 -0500 Subject: Fix set-name/interface DNS bug (#1058) This patch addresses an issue caused when the v2 network config directive "set-name" was used in conjunction with interface- specific DNS settings. The patch adds a test to validate the fix. For more information please see bug 1946493 as well as the issue https://github.com/kubernetes-sigs/image-builder/issues/712. LP: #1946493 --- cloudinit/net/network_state.py | 4 ++++ cloudinit/net/tests/test_network_state.py | 1 + 2 files changed, 5 insertions(+) diff --git a/cloudinit/net/network_state.py b/cloudinit/net/network_state.py index 95b064f0..4862bf91 100644 --- a/cloudinit/net/network_state.py +++ b/cloudinit/net/network_state.py @@ -710,6 +710,10 @@ class NetworkStateInterpreter(metaclass=CommandHandlerMeta): def _v2_common(self, cfg): LOG.debug('v2_common: handling config:\n%s', cfg) for iface, dev_cfg in cfg.items(): + if 'set-name' in dev_cfg: + set_name_iface = dev_cfg.get('set-name') + if set_name_iface: + iface = set_name_iface if 'nameservers' in dev_cfg: search = dev_cfg.get('nameservers').get('search', []) dns = dev_cfg.get('nameservers').get('addresses', []) diff --git a/cloudinit/net/tests/test_network_state.py b/cloudinit/net/tests/test_network_state.py index 84e8308a..45e99171 100644 --- a/cloudinit/net/tests/test_network_state.py +++ b/cloudinit/net/tests/test_network_state.py @@ -52,6 +52,7 @@ network: eth1: match: macaddress: '66:77:88:99:00:11' + set-name: "ens92" nameservers: search: [foo.local, bar.local] addresses: [4.4.4.4] -- cgit v1.2.3