mirror of
https://github.com/k8snetworkplumbingwg/multus-cni.git
synced 2025-09-23 18:37:40 +00:00
[bugfix] Skipped clearing the network status annotation if the pod sandbox is not found
This commit is contained in:
@@ -425,6 +425,8 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
if args.Netns == "" {
|
if args.Netns == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
netnsfound := true
|
||||||
netns, err := ns.GetNS(args.Netns)
|
netns, err := ns.GetNS(args.Netns)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// if NetNs is passed down by the Cloud Orchestration Engine, or if it called multiple times
|
// if NetNs is passed down by the Cloud Orchestration Engine, or if it called multiple times
|
||||||
@@ -432,6 +434,7 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
// https://github.com/kubernetes/kubernetes/issues/43014#issuecomment-287164444
|
// https://github.com/kubernetes/kubernetes/issues/43014#issuecomment-287164444
|
||||||
_, ok := err.(ns.NSPathNotExistErr)
|
_, ok := err.(ns.NSPathNotExistErr)
|
||||||
if ok {
|
if ok {
|
||||||
|
netnsfound = false
|
||||||
logging.Debugf("cmdDel: WARNING netns may not exist, netns: %s, err: %s", netns, err)
|
logging.Debugf("cmdDel: WARNING netns may not exist, netns: %s, err: %s", netns, err)
|
||||||
} else {
|
} else {
|
||||||
return fmt.Errorf("failed to open netns %q: %v", netns, err)
|
return fmt.Errorf("failed to open netns %q: %v", netns, err)
|
||||||
@@ -491,6 +494,7 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
|
|
||||||
// unset the network status annotation in apiserver, only in case Multus as kubeconfig
|
// unset the network status annotation in apiserver, only in case Multus as kubeconfig
|
||||||
if in.Kubeconfig != "" {
|
if in.Kubeconfig != "" {
|
||||||
|
if netnsfound {
|
||||||
if !types.CheckSystemNamespaces(string(k8sArgs.K8S_POD_NAMESPACE), in.SystemNamespaces) {
|
if !types.CheckSystemNamespaces(string(k8sArgs.K8S_POD_NAMESPACE), in.SystemNamespaces) {
|
||||||
err := k8s.SetNetworkStatus(kubeClient, k8sArgs, nil, in)
|
err := k8s.SetNetworkStatus(kubeClient, k8sArgs, nil, in)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -498,6 +502,9 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
logging.Errorf("Multus: Err unset the networks status: %v", err)
|
logging.Errorf("Multus: Err unset the networks status: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
logging.Debugf("WARNING: Unset SetNetworkStatus skipped due to netns not found.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rt := types.CreateCNIRuntimeConf(args, k8sArgs, "", in.RuntimeConfig)
|
rt := types.CreateCNIRuntimeConf(args, k8sArgs, "", in.RuntimeConfig)
|
||||||
|
Reference in New Issue
Block a user