From cc7257b462fdc64cb04f9e27291301e1ac98e232 Mon Sep 17 00:00:00 2001 From: Antonio Ojea Date: Fri, 30 Aug 2019 10:19:10 +0200 Subject: [PATCH] Kubenet can't fail fast on teardown --- .../dockershim/network/kubenet/kubenet_linux.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go index 4d74bd39d23..3e1c28cd06e 100644 --- a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go +++ b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go @@ -512,20 +512,23 @@ func (plugin *kubenetNetworkPlugin) teardown(namespace string, name string, id k // Loopback network deletion failure should not be fatal on teardown if err := plugin.delContainerFromNetwork(plugin.loConfig, "lo", namespace, name, id); err != nil { klog.Warningf("Failed to delete loopback network: %v", err) - } + errList = append(errList, err) - // fail fast if there is no IP registered - iplist, exists := plugin.getCachedPodIPs(id) - if !exists || len(iplist) == 0 { - klog.V(5).Infof("container %s (%s/%s) does not have recorded. ignoring teardown call", id, name, namespace) - return nil } // no ip dependent actions if err := plugin.delContainerFromNetwork(plugin.netConfig, network.DefaultInterfaceName, namespace, name, id); err != nil { + klog.Warningf("Failed to delete %q network: %v", network.DefaultInterfaceName, err) errList = append(errList, err) } + // If there are no IPs registered we can't teardown pod's IP dependencies + iplist, exists := plugin.getCachedPodIPs(id) + if !exists || len(iplist) == 0 { + klog.V(5).Infof("container %s (%s/%s) does not have recorded. ignoring teardown call", id, name, namespace) + return nil + } + // get the list of port mappings portMappings, err := plugin.host.GetPodPortMappings(id.ID) if err != nil {