diff options
| author | Ben Howard <bh@digitalocean.com> | 2017-04-11 10:00:12 -0600 | 
|---|---|---|
| committer | Scott Moser <smoser@brickies.net> | 2017-04-11 16:50:23 -0400 | 
| commit | 493f6c3e923902d5d4f3d87e1cc4c726ea90ada4 (patch) | |
| tree | 4cccc1ee3a35eccc89429583291f0e133e3914df /cloudinit/sources/helpers | |
| parent | 728b370b68ba8a879ce1653bdf9a572cf007e0d7 (diff) | |
| download | vyos-cloud-init-493f6c3e923902d5d4f3d87e1cc4c726ea90ada4.tar.gz vyos-cloud-init-493f6c3e923902d5d4f3d87e1cc4c726ea90ada4.zip | |
DigitalOcean: bind resolvers to loopback interface.
This change makes the DigitalOcean datasource consistent with OpenStack and
Joyent by binding the resolver addresses to the loopback interface. This _is_
a work-around to bug 1675571.
Part of bug 1676908.
Diffstat (limited to 'cloudinit/sources/helpers')
| -rw-r--r-- | cloudinit/sources/helpers/digitalocean.py | 18 | 
1 files changed, 7 insertions, 11 deletions
| diff --git a/cloudinit/sources/helpers/digitalocean.py b/cloudinit/sources/helpers/digitalocean.py index 72f7bde4..6423c8ef 100644 --- a/cloudinit/sources/helpers/digitalocean.py +++ b/cloudinit/sources/helpers/digitalocean.py @@ -107,15 +107,12 @@ def convert_network_configuration(config, dns_servers):          }      """ -    def _get_subnet_part(pcfg, nameservers=None): +    def _get_subnet_part(pcfg):          subpart = {'type': 'static',                     'control': 'auto',                     'address': pcfg.get('ip_address'),                     'gateway': pcfg.get('gateway')} -        if nameservers: -            subpart['dns_nameservers'] = nameservers -          if ":" in pcfg.get('ip_address'):              subpart['address'] = "{0}/{1}".format(pcfg.get('ip_address'),                                                    pcfg.get('cidr')) @@ -157,13 +154,8 @@ def convert_network_configuration(config, dns_servers):                  continue              sub_part = _get_subnet_part(raw_subnet) -            if nic_type == 'public' and 'anchor' not in netdef: -                # add DNS resolvers to the public interfaces only -                sub_part = _get_subnet_part(raw_subnet, dns_servers) -            else: -                # remove the gateway any non-public interfaces -                if 'gateway' in sub_part: -                    del sub_part['gateway'] +            if netdef in ('private', 'anchor_ipv4', 'anchor_ipv6'): +                del sub_part['gateway']              subnets.append(sub_part) @@ -171,6 +163,10 @@ def convert_network_configuration(config, dns_servers):          nic_configs.append(ncfg)          LOG.debug("nic '%s' configuration: %s", if_name, ncfg) +    if dns_servers: +        LOG.debug("added dns servers: %s", dns_servers) +        nic_configs.append({'type': 'nameserver', 'address': dns_servers}) +      return {'version': 1, 'config': nic_configs} | 
