diff --git a/pkg/multus/multus.go b/pkg/multus/multus.go index 18dc6e28b..3a37a7ebf 100644 --- a/pkg/multus/multus.go +++ b/pkg/multus/multus.go @@ -549,8 +549,10 @@ func CmdAdd(args *skel.CmdArgs, exec invoke.Exec, kubeClient *k8s.ClientInfo) (c return nil, cmdErr(k8sArgs, "error getting pod by service unavailable: %v", err) } } else { - // Other case, return error - return nil, cmdErr(k8sArgs, "error getting pod: %v", err) + // Other case, print warning and return nil + logging.Debugf("%v", cmdErr(k8sArgs, "error getting pod: %v", err)) + kubeClient = nil + err = nil } } } @@ -670,7 +672,7 @@ func CmdAdd(args *skel.CmdArgs, exec invoke.Exec, kubeClient *k8s.ClientInfo) (c } // set the network status annotation in apiserver, only in case Multus as kubeconfig - if n.Kubeconfig != "" && kc != nil { + if n.Kubeconfig != "" && kc != nil && kubeClient != nil { if !types.CheckSystemNamespaces(string(k8sArgs.K8S_POD_NAME), n.SystemNamespaces) { err = k8s.SetNetworkStatus(kubeClient, k8sArgs, netStatus, n) if err != nil { @@ -777,8 +779,10 @@ func CmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient *k8s.ClientInfo) er // If not found, proceed to remove interface with cache pod = nil } else { - // Other case, return error - return cmdErr(k8sArgs, "error getting pod: %v", err) + // Other case, print warning and return nil + logging.Debugf("%v", cmdErr(k8sArgs, "error getting pod: %v", err)) + kubeClient = nil + err = nil } } } @@ -837,7 +841,7 @@ func CmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient *k8s.ClientInfo) er } // unset the network status annotation in apiserver, only in case Multus as kubeconfig - if in.Kubeconfig != "" { + if in.Kubeconfig != "" && kubeClient != nil { if netnsfound { if !types.CheckSystemNamespaces(string(k8sArgs.K8S_POD_NAMESPACE), in.SystemNamespaces) { err := k8s.SetNetworkStatus(kubeClient, k8sArgs, nil, in)