diff --git a/plugins/main/host-device/host-device.go b/plugins/main/host-device/host-device.go index f82e2967b..aa88786ee 100644 --- a/plugins/main/host-device/host-device.go +++ b/plugins/main/host-device/host-device.go @@ -21,6 +21,7 @@ import ( "fmt" "io/ioutil" "net" + "os" "path/filepath" "runtime" "strings" @@ -96,7 +97,9 @@ func cmdAdd(args *skel.CmdArgs) error { // Invoke ipam del if err to avoid ip leak defer func() { if err != nil { + os.Setenv("CNI_COMMAND", "DEL") ipam.ExecDel(cfg.IPAM.Type, args.StdinData) + os.Setenv("CNI_COMMAND", "ADD") } }() diff --git a/plugins/main/macvlan/macvlan.go b/plugins/main/macvlan/macvlan.go index a0521a840..0fb7e9c72 100644 --- a/plugins/main/macvlan/macvlan.go +++ b/plugins/main/macvlan/macvlan.go @@ -19,6 +19,7 @@ import ( "errors" "fmt" "net" + "os" "runtime" "github.com/j-keck/arping" @@ -197,7 +198,9 @@ func cmdAdd(args *skel.CmdArgs) error { // Invoke ipam del if err to avoid ip leak defer func() { if err != nil { + os.Setenv("CNI_COMMAND", "DEL") ipam.ExecDel(n.IPAM.Type, args.StdinData) + os.Setenv("CNI_COMMAND", "ADD") } }()