diff --git a/pkg/dnshelpers/util.go b/pkg/dnshelpers/util.go index dbfac9e71..c87d7ee17 100644 --- a/pkg/dnshelpers/util.go +++ b/pkg/dnshelpers/util.go @@ -30,6 +30,18 @@ func GetEscapedPreferredInternalIPAddressForNodeName(network *configv1.Network, } } +func GetURLHostForIP(ip string) (string, error) { + isIPV4, err := IsIPv4(ip) + if err != nil { + return "", err + } + if isIPV4 { + return ip, nil + } + + return "[" + ip + "]", nil +} + // GetPreferredInternalIPAddressForNodeName returns the first internal ip address of the correct family and the family func GetPreferredInternalIPAddressForNodeName(network *configv1.Network, node *corev1.Node) (string, string, error) { ipFamily, err := GetPreferredIPFamily(network) diff --git a/pkg/operator/targetconfigcontroller/etcd_env.go b/pkg/operator/targetconfigcontroller/etcd_env.go index 7dacea6c3..9f1d3d3d4 100644 --- a/pkg/operator/targetconfigcontroller/etcd_env.go +++ b/pkg/operator/targetconfigcontroller/etcd_env.go @@ -99,26 +99,18 @@ func getAllClusterMembers(envVarContext envVarContext) (map[string]string, error endpoints = append(endpoints, fmt.Sprintf("https://%s:2379", endpointIP)) } - hostEtcdEndpoints, err := envVarContext.endpointLister.Endpoints(operatorclient.TargetNamespace).Get("host-etcd") + hostEtcdEndpoints, err := envVarContext.endpointLister.Endpoints(operatorclient.TargetNamespace).Get("host-etcd-2") if err != nil { return nil, err } - for _, endpointAddress := range hostEtcdEndpoints.Subsets[0].Addresses { - if endpointAddress.Hostname == "etcd-bootstrap" { - - isIPV4, err := dnshelpers.IsIPv4(endpointAddress.IP) - if err != nil { - return nil, err - } - if isIPV4 { - endpoints = append(endpoints, "https://"+endpointAddress.IP+":2379") - } else { - endpoints = append(endpoints, "https://["+endpointAddress.IP+"]:2379") - } - - break + if bootstrapIP := hostEtcdEndpoints.Annotations["alpha.installer.openshift.io/etcd-bootstrap"]; len(bootstrapIP) > 0 { + urlHost, err := dnshelpers.GetURLHostForIP(bootstrapIP) + if err != nil { + return nil, err } + endpoints = append(endpoints, "https://"+urlHost+":2379") } + ret["ALL_ETCD_ENDPOINTS"] = strings.Join(endpoints, ",") return ret, nil @@ -151,7 +143,7 @@ func getEscapedIPAddress(envVarContext envVarContext) (map[string]string, error) if err != nil { return nil, err } - ret[fmt.Sprintf("NODE_%s_IP", envVarSafe(nodeInfo.NodeName))] = "[" + escapedIPAddress + "]" + ret[fmt.Sprintf("NODE_%s_IP", envVarSafe(nodeInfo.NodeName))] = escapedIPAddress } return ret, nil