From 159d773075831ffd851c6d59d9fffb0300374c49 Mon Sep 17 00:00:00 2001 From: David Eads Date: Mon, 24 Feb 2020 15:30:16 -0500 Subject: [PATCH 1/2] use correct IP for bootstrap host env vars --- pkg/dnshelpers/util.go | 12 ++++++++++ .../targetconfigcontroller/etcd_env.go | 22 ++++++------------- 2 files changed, 19 insertions(+), 15 deletions(-) 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..cbd5a4a0c 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 From 3c0172c85efe28ef2b1e0e3b4b8850b73330c562 Mon Sep 17 00:00:00 2001 From: David Eads Date: Mon, 24 Feb 2020 19:17:47 -0500 Subject: [PATCH 2/2] don't double escape IP addresses --- pkg/operator/targetconfigcontroller/etcd_env.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/operator/targetconfigcontroller/etcd_env.go b/pkg/operator/targetconfigcontroller/etcd_env.go index cbd5a4a0c..9f1d3d3d4 100644 --- a/pkg/operator/targetconfigcontroller/etcd_env.go +++ b/pkg/operator/targetconfigcontroller/etcd_env.go @@ -143,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