Skip to content

Commit

Permalink
Merge pull request #269 from masnax/dns-addr-fix
Browse files Browse the repository at this point in the history
Use both IPv4 and IPv6 chosen addresses for default DNS addresses
  • Loading branch information
masnax authored Apr 2, 2024
2 parents 1594800 + e72ce1c commit ed515e0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 22 deletions.
39 changes: 18 additions & 21 deletions microcloud/cmd/microcloud/ask.go
Original file line number Diff line number Diff line change
Expand Up @@ -696,8 +696,8 @@ func (c *CmdControl) askNetwork(sh *service.Handler, systems map[string]InitSyst
fmt.Println("")

// Prepare the configuration.
var dnsAddresses string
ipConfig := map[string]string{}
dnsConfig := map[string]string{}
if bootstrap {
for _, ip := range []string{"IPv4", "IPv6"} {
validator := func(s string) error {
Expand Down Expand Up @@ -740,25 +740,27 @@ func (c *CmdControl) askNetwork(sh *service.Handler, systems map[string]InitSyst
}

ipConfig[gateway] = fmt.Sprintf("%s-%s", rangeStart, rangeEnd)

gatewayAddr, _, err := net.ParseCIDR(gateway)
if err != nil {
return err
}

dnsAddresses, err := c.asker.AskString(fmt.Sprintf("Specify the DNS addresses (comma-separated IPv4 / IPv6 addresses) for the distributed network (default: %s): ", gatewayAddr.String()), gatewayAddr.String(), validate.Optional(validate.IsListOf(validate.IsNetworkAddress)))
if err != nil {
return err
}

if dnsAddresses != "" {
dnsConfig[gateway] = dnsAddresses
}
} else {
ipConfig[gateway] = ""
}
}
}

gateways := []string{}
for gateway := range ipConfig {
gatewayAddr, _, err := net.ParseCIDR(gateway)
if err != nil {
return err
}

gateways = append(gateways, gatewayAddr.String())
}

gatewayAddrs := strings.Join(gateways, ",")
dnsAddresses, err = c.asker.AskString(fmt.Sprintf("Specify the DNS addresses (comma-separated IPv4 / IPv6 addresses) for the distributed network (default: %s): ", gatewayAddrs), gatewayAddrs, validate.Optional(validate.IsListOf(validate.IsNetworkAddress)))
if err != nil {
return err
}
}

// If interfaces were selected for OVN, remove the FAN config.
Expand Down Expand Up @@ -807,12 +809,7 @@ func (c *CmdControl) askNetwork(sh *service.Handler, systems map[string]InitSyst
}
}

var allDNSServers string
for _, dnsAddr := range dnsConfig {
allDNSServers = dnsAddr
}

uplink, ovn := lxd.DefaultOVNNetwork(ipv4Gateway, ipv4Ranges, ipv6Gateway, allDNSServers)
uplink, ovn := lxd.DefaultOVNNetwork(ipv4Gateway, ipv4Ranges, ipv6Gateway, dnsAddresses)
bootstrapSystem.Networks = []api.NetworksPost{uplink, ovn}
systems[sh.Name] = bootstrapSystem
}
Expand Down
2 changes: 1 addition & 1 deletion microcloud/test/includes/microcloud.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ $([ "${SETUP_OVN}" = "yes" ] && printf -- "---")
${IPV4_SUBNET} # setup ipv4/ipv6 gateways and ranges
${IPV4_START}
${IPV4_END}
${CUSTOM_DNS_ADDRESSES}
${IPV6_SUBNET}
${CUSTOM_DNS_ADDRESSES}
EOF
)
fi
Expand Down

0 comments on commit ed515e0

Please sign in to comment.