From 693f9fc108565ea5841c2d3ad93bce4b5696be83 Mon Sep 17 00:00:00 2001 From: Sergej Nikolaev Date: Wed, 26 Sep 2018 12:26:57 +0300 Subject: [PATCH] support guestinfo interface..ip..netmask, dns.servers, dns.domains --- config/cloudinit/datasource/vmware/vmware.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config/cloudinit/datasource/vmware/vmware.go b/config/cloudinit/datasource/vmware/vmware.go index c5bcbed5..3d1a6f0e 100644 --- a/config/cloudinit/datasource/vmware/vmware.go +++ b/config/cloudinit/datasource/vmware/vmware.go @@ -77,6 +77,13 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) { } metadata.NetworkConfig.DNS.Nameservers = append(metadata.NetworkConfig.DNS.Nameservers, val) } + dnsServers, _ := v.read("dns.servers") + for _, val := range strings.Split(dnsServers, ",") { + if val == "" { + break + } + metadata.NetworkConfig.DNS.Nameservers = append(metadata.NetworkConfig.DNS.Nameservers, val) + } for i := 0; ; i++ { //if domain := saveConfig("dns.domain.%d", i); domain == "" { @@ -86,6 +93,13 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) { } metadata.NetworkConfig.DNS.Search = append(metadata.NetworkConfig.DNS.Search, val) } + dnsDomains, _ := v.read("dns.domains") + for _, val := range strings.Split(dnsDomains, ",") { + if val == "" { + break + } + metadata.NetworkConfig.DNS.Search = append(metadata.NetworkConfig.DNS.Search, val) + } metadata.NetworkConfig.Interfaces = make(map[string]netconf.InterfaceConfig) found := true @@ -120,6 +134,11 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) { if address == "" { break } + netmask, _ := v.read("interface.%d.ip.%d.netmask", i, a) + if netmask != "" { + ones, _ := net.IPMask(net.ParseIP(netmask).To4()).Size() + address = fmt.Sprintf("%s/%d", address, ones) + } netDevice.Addresses = append(netDevice.Addresses, address) found = true netDevice.DHCP = false