mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #82508 from aanm/fix-get-pod-ip-panic
dockershim/network: fix panic for cni plugins in IPv4/IPv6 dual-stack mode
This commit is contained in:
commit
cfa3e2c499
@ -74,6 +74,10 @@ func (plugin *cniNetworkPlugin) GetPodNetworkStatus(namespace string, name strin
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(ips) == 0 {
|
||||||
|
return nil, fmt.Errorf("cannot find pod IPs in the network namespace, skipping pod network status for container %q", id)
|
||||||
|
}
|
||||||
|
|
||||||
return &network.PodNetworkStatus{
|
return &network.PodNetworkStatus{
|
||||||
IP: ips[0],
|
IP: ips[0],
|
||||||
IPs: ips,
|
IPs: ips,
|
||||||
|
@ -271,18 +271,20 @@ func GetPodIPs(execer utilexec.Interface, nsenterPath, netnsPath, interfaceName
|
|||||||
return []net.IP{ip}, nil
|
return []net.IP{ip}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
list := make([]net.IP, 0)
|
var (
|
||||||
var err4, err6 error
|
list []net.IP
|
||||||
if ipv4, err4 := getOnePodIP(execer, nsenterPath, netnsPath, interfaceName, "-4"); err4 != nil {
|
errs []error
|
||||||
list = append(list, ipv4)
|
)
|
||||||
|
for _, addrType := range []string{"-4", "-6"} {
|
||||||
|
if ip, err := getOnePodIP(execer, nsenterPath, netnsPath, interfaceName, addrType); err == nil {
|
||||||
|
list = append(list, ip)
|
||||||
|
} else {
|
||||||
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ipv6, err6 := getOnePodIP(execer, nsenterPath, netnsPath, interfaceName, "-6"); err6 != nil {
|
|
||||||
list = append(list, ipv6)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(list) == 0 {
|
if len(list) == 0 {
|
||||||
return nil, utilerrors.NewAggregate([]error{err4, err6})
|
return nil, utilerrors.NewAggregate(errs)
|
||||||
}
|
}
|
||||||
return list, nil
|
return list, nil
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user