Skip to content

Commit 4e0269e

Browse files
authored
Merge pull request rancher#2490 from kinolaev/master
Support vSphere network protocol profiles
2 parents d994816 + 7d66bd5 commit 4e0269e

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

config/cloudinit/datasource/vmware/vmware.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) {
7777
}
7878
metadata.NetworkConfig.DNS.Nameservers = append(metadata.NetworkConfig.DNS.Nameservers, val)
7979
}
80+
dnsServers, _ := v.read("dns.servers")
81+
for _, val := range strings.Split(dnsServers, ",") {
82+
if val == "" {
83+
break
84+
}
85+
metadata.NetworkConfig.DNS.Nameservers = append(metadata.NetworkConfig.DNS.Nameservers, val)
86+
}
8087

8188
for i := 0; ; i++ {
8289
//if domain := saveConfig("dns.domain.%d", i); domain == "" {
@@ -86,6 +93,13 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) {
8693
}
8794
metadata.NetworkConfig.DNS.Search = append(metadata.NetworkConfig.DNS.Search, val)
8895
}
96+
dnsDomains, _ := v.read("dns.domains")
97+
for _, val := range strings.Split(dnsDomains, ",") {
98+
if val == "" {
99+
break
100+
}
101+
metadata.NetworkConfig.DNS.Search = append(metadata.NetworkConfig.DNS.Search, val)
102+
}
89103

90104
metadata.NetworkConfig.Interfaces = make(map[string]netconf.InterfaceConfig)
91105
found := true
@@ -120,6 +134,11 @@ func (v VMWare) FetchMetadata() (metadata datasource.Metadata, err error) {
120134
if address == "" {
121135
break
122136
}
137+
netmask, _ := v.read("interface.%d.ip.%d.netmask", i, a)
138+
if netmask != "" {
139+
ones, _ := net.IPMask(net.ParseIP(netmask).To4()).Size()
140+
address = fmt.Sprintf("%s/%d", address, ones)
141+
}
123142
netDevice.Addresses = append(netDevice.Addresses, address)
124143
found = true
125144
netDevice.DHCP = false

config/cloudinit/datasource/vmware/vmware_amd64.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ type ovfWrapper struct {
3232
}
3333

3434
func (ovf ovfWrapper) readConfig(key string) (string, error) {
35-
return ovf.env.Properties["guestinfo."+key], nil
35+
if val := ovf.env.Properties["guestinfo."+key]; val != "" {
36+
return val, nil
37+
}
38+
return readConfig(key)
3639
}
3740

3841
func NewDatasource(fileName string) *VMWare {

0 commit comments

Comments
 (0)