mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-02 11:18:16 +00:00
Make kubelet always canonicalize the PodIPs
This commit is contained in:
@@ -22,6 +22,7 @@ import (
|
||||
goerrors "errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
@@ -1988,23 +1989,27 @@ func (kl *Kubelet) generateAPIPodStatus(pod *v1.Pod, podStatus *kubecontainer.Po
|
||||
// and use them for the Pod.Status.PodIPs and the Downward API environment variables
|
||||
func (kl *Kubelet) sortPodIPs(podIPs []string) []string {
|
||||
ips := make([]string, 0, 2)
|
||||
var validPrimaryIP, validSecondaryIP func(ip string) bool
|
||||
var validPrimaryIP, validSecondaryIP func(ip net.IP) bool
|
||||
if len(kl.nodeIPs) == 0 || utilnet.IsIPv4(kl.nodeIPs[0]) {
|
||||
validPrimaryIP = utilnet.IsIPv4String
|
||||
validSecondaryIP = utilnet.IsIPv6String
|
||||
validPrimaryIP = utilnet.IsIPv4
|
||||
validSecondaryIP = utilnet.IsIPv6
|
||||
} else {
|
||||
validPrimaryIP = utilnet.IsIPv6String
|
||||
validSecondaryIP = utilnet.IsIPv4String
|
||||
validPrimaryIP = utilnet.IsIPv6
|
||||
validSecondaryIP = utilnet.IsIPv4
|
||||
}
|
||||
for _, ip := range podIPs {
|
||||
|
||||
// We parse and re-stringify the IPs in case the values from CRI use an irregular format.
|
||||
for _, ipStr := range podIPs {
|
||||
ip := utilnet.ParseIPSloppy(ipStr)
|
||||
if validPrimaryIP(ip) {
|
||||
ips = append(ips, ip)
|
||||
ips = append(ips, ip.String())
|
||||
break
|
||||
}
|
||||
}
|
||||
for _, ip := range podIPs {
|
||||
for _, ipStr := range podIPs {
|
||||
ip := utilnet.ParseIPSloppy(ipStr)
|
||||
if validSecondaryIP(ip) {
|
||||
ips = append(ips, ip)
|
||||
ips = append(ips, ip.String())
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user