func getEtcdMachineAddress()

in controllers/helpers.go [159:188]


func getEtcdMachineAddress(machine *clusterv1.Machine) string {
	var internalIP, internalDNS, externalIP, externalDNS string

	// Check and record all different address types set for the machine and return later according to precedence.
	for _, address := range machine.Status.Addresses {
		switch address.Type {
		case clusterv1.MachineInternalIP:
			internalIP = address.Address
		case clusterv1.MachineInternalDNS:
			internalDNS = address.Address
		case clusterv1.MachineExternalIP:
			externalIP = address.Address
		case clusterv1.MachineExternalDNS:
			externalDNS = address.Address
		}
	}

	// The order of these checks determines the precedence of the address to use
	if externalDNS != "" {
		return externalDNS
	} else if externalIP != "" {
		return externalIP
	} else if internalDNS != "" {
		return internalDNS
	} else if internalIP != "" {
		return internalIP
	}

	return ""
}