diff --git a/microcloud/cmd/microcloud/ask.go b/microcloud/cmd/microcloud/ask.go index a8a2db558..3283647a4 100644 --- a/microcloud/cmd/microcloud/ask.go +++ b/microcloud/cmd/microcloud/ask.go @@ -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 { @@ -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. @@ -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 } diff --git a/microcloud/test/includes/microcloud.sh b/microcloud/test/includes/microcloud.sh index 281012f29..a47f7ce7f 100644 --- a/microcloud/test/includes/microcloud.sh +++ b/microcloud/test/includes/microcloud.sh @@ -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