mirror of
https://github.com/k8snetworkplumbingwg/multus-cni.git
synced 2025-08-25 19:44:28 +00:00
Merge pull request #67 from s1061123/dev/add_verbose_info
Bug 1835033: Logging improvement (UID, net-attach-def) / Backport to 4.4
This commit is contained in:
commit
812441ce17
@ -454,22 +454,22 @@ func GetK8sArgs(args *skel.CmdArgs) (*types.K8sArgs, error) {
|
|||||||
|
|
||||||
// TryLoadPodDelegates attempts to load Kubernetes-defined delegates and add them to the Multus config.
|
// TryLoadPodDelegates attempts to load Kubernetes-defined delegates and add them to the Multus config.
|
||||||
// Returns the number of Kubernetes-defined delegates added or an error.
|
// Returns the number of Kubernetes-defined delegates added or an error.
|
||||||
func TryLoadPodDelegates(k8sArgs *types.K8sArgs, conf *types.NetConf, kubeClient KubeClient) (int, *ClientInfo, error) {
|
func TryLoadPodDelegates(k8sArgs *types.K8sArgs, conf *types.NetConf, kubeClient KubeClient) (int, *v1.Pod, *ClientInfo, error) {
|
||||||
var err error
|
var err error
|
||||||
clientInfo := &ClientInfo{}
|
clientInfo := &ClientInfo{}
|
||||||
|
|
||||||
logging.Debugf("TryLoadPodDelegates: %v, %v, %v", k8sArgs, conf, kubeClient)
|
logging.Debugf("TryLoadPodDelegates: %v, %v, %v", k8sArgs, conf, kubeClient)
|
||||||
kubeClient, err = GetK8sClient(conf.Kubeconfig, kubeClient)
|
kubeClient, err = GetK8sClient(conf.Kubeconfig, kubeClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, err
|
return 0, nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if kubeClient == nil {
|
if kubeClient == nil {
|
||||||
if len(conf.Delegates) == 0 {
|
if len(conf.Delegates) == 0 {
|
||||||
// No available kube client and no delegates, we can't do anything
|
// No available kube client and no delegates, we can't do anything
|
||||||
return 0, nil, logging.Errorf("TryLoadPodDelegates: must have either Kubernetes config or delegates")
|
return 0, nil, nil, logging.Errorf("TryLoadPodDelegates: must have either Kubernetes config or delegates")
|
||||||
}
|
}
|
||||||
return 0, nil, nil
|
return 0, nil, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
setKubeClientInfo(clientInfo, kubeClient, k8sArgs)
|
setKubeClientInfo(clientInfo, kubeClient, k8sArgs)
|
||||||
@ -477,12 +477,12 @@ func TryLoadPodDelegates(k8sArgs *types.K8sArgs, conf *types.NetConf, kubeClient
|
|||||||
pod, err := kubeClient.GetPod(string(k8sArgs.K8S_POD_NAMESPACE), string(k8sArgs.K8S_POD_NAME))
|
pod, err := kubeClient.GetPod(string(k8sArgs.K8S_POD_NAMESPACE), string(k8sArgs.K8S_POD_NAME))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logging.Debugf("TryLoadPodDelegates: Err in loading K8s cluster default network from pod annotation: %v, use cached delegates", err)
|
logging.Debugf("TryLoadPodDelegates: Err in loading K8s cluster default network from pod annotation: %v, use cached delegates", err)
|
||||||
return 0, nil, nil
|
return 0, nil, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate, err := tryLoadK8sPodDefaultNetwork(kubeClient, pod, conf)
|
delegate, err := tryLoadK8sPodDefaultNetwork(kubeClient, pod, conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, logging.Errorf("TryLoadPodDelegates: error in loading K8s cluster default network from pod annotation: %v", err)
|
return 0, nil, nil, logging.Errorf("TryLoadPodDelegates: error in loading K8s cluster default network from pod annotation: %v", err)
|
||||||
}
|
}
|
||||||
if delegate != nil {
|
if delegate != nil {
|
||||||
logging.Debugf("TryLoadPodDelegates: Overwrite the cluster default network with %v from pod annotations", delegate)
|
logging.Debugf("TryLoadPodDelegates: Overwrite the cluster default network with %v from pod annotations", delegate)
|
||||||
@ -496,13 +496,13 @@ func TryLoadPodDelegates(k8sArgs *types.K8sArgs, conf *types.NetConf, kubeClient
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(*NoK8sNetworkError); ok {
|
if _, ok := err.(*NoK8sNetworkError); ok {
|
||||||
return 0, clientInfo, nil
|
return 0, nil, clientInfo, nil
|
||||||
}
|
}
|
||||||
return 0, nil, logging.Errorf("TryLoadPodDelegates: error in getting k8s network from pod: %v", err)
|
return 0, nil, nil, logging.Errorf("TryLoadPodDelegates: error in getting k8s network from pod: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = conf.AddDelegates(delegates); err != nil {
|
if err = conf.AddDelegates(delegates); err != nil {
|
||||||
return 0, nil, err
|
return 0, nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check gatewayRequest is configured in delegates
|
// Check gatewayRequest is configured in delegates
|
||||||
@ -519,10 +519,10 @@ func TryLoadPodDelegates(k8sArgs *types.K8sArgs, conf *types.NetConf, kubeClient
|
|||||||
types.CheckGatewayConfig(conf.Delegates)
|
types.CheckGatewayConfig(conf.Delegates)
|
||||||
}
|
}
|
||||||
|
|
||||||
return len(delegates), clientInfo, nil
|
return len(delegates), pod, clientInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0, clientInfo, nil
|
return 0, pod, clientInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetK8sClient gets client info from kubeconfig
|
// GetK8sClient gets client info from kubeconfig
|
||||||
|
@ -580,7 +580,7 @@ var _ = Describe("k8sclient operations", func() {
|
|||||||
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net2"))
|
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net2"))
|
||||||
Expect(netConf.Delegates[0].Conf.Type).To(Equal("mynet2"))
|
Expect(netConf.Delegates[0].Conf.Type).To(Equal("mynet2"))
|
||||||
|
|
||||||
numK8sDelegates, _, err := TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
numK8sDelegates, _, _, err := TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
Expect(numK8sDelegates).To(Equal(0))
|
Expect(numK8sDelegates).To(Equal(0))
|
||||||
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net1"))
|
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net1"))
|
||||||
@ -617,7 +617,7 @@ var _ = Describe("k8sclient operations", func() {
|
|||||||
Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
|
|
||||||
netConf.ConfDir = "badfilepath"
|
netConf.ConfDir = "badfilepath"
|
||||||
_, _, err = TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
_, _, _, err = TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
||||||
Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -650,7 +650,7 @@ var _ = Describe("k8sclient operations", func() {
|
|||||||
k8sArgs, err := GetK8sArgs(args)
|
k8sArgs, err := GetK8sArgs(args)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
numK8sDelegates, _, err := TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
numK8sDelegates, _, _, err := TryLoadPodDelegates(k8sArgs, netConf, kubeClient)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
Expect(numK8sDelegates).To(Equal(0))
|
Expect(numK8sDelegates).To(Equal(0))
|
||||||
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net1"))
|
Expect(netConf.Delegates[0].Conf.Name).To(Equal("net1"))
|
||||||
@ -685,7 +685,7 @@ var _ = Describe("k8sclient operations", func() {
|
|||||||
k8sArgs, err := GetK8sArgs(args)
|
k8sArgs, err := GetK8sArgs(args)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
_, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
_, _, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
||||||
Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -717,12 +717,12 @@ var _ = Describe("k8sclient operations", func() {
|
|||||||
k8sArgs, err := GetK8sArgs(args)
|
k8sArgs, err := GetK8sArgs(args)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
_, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
_, _, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// additionally, we expect the test to fail with no delegates, as at least one is always required.
|
// additionally, we expect the test to fail with no delegates, as at least one is always required.
|
||||||
netConf.Delegates = nil
|
netConf.Delegates = nil
|
||||||
_, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
_, _, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
||||||
Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -780,7 +780,7 @@ users:
|
|||||||
k8sArgs, err := GetK8sArgs(args)
|
k8sArgs, err := GetK8sArgs(args)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
_, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
_, _, _, err = TryLoadPodDelegates(k8sArgs, netConf, nil)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ import (
|
|||||||
"github.com/intel/multus-cni/netutils"
|
"github.com/intel/multus-cni/netutils"
|
||||||
"github.com/intel/multus-cni/types"
|
"github.com/intel/multus-cni/types"
|
||||||
"github.com/vishvananda/netlink"
|
"github.com/vishvananda/netlink"
|
||||||
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -221,7 +222,7 @@ func conflistDel(rt *libcni.RuntimeConf, rawnetconflist []byte, binDir string, e
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func delegateAdd(exec invoke.Exec, ifName string, delegate *types.DelegateNetConf, rt *libcni.RuntimeConf, binDir string, cniArgs string) (cnitypes.Result, error) {
|
func delegateAdd(exec invoke.Exec, pod *v1.Pod, ifName string, delegate *types.DelegateNetConf, rt *libcni.RuntimeConf, binDir string, cniArgs string) (cnitypes.Result, error) {
|
||||||
logging.Debugf("delegateAdd: %v, %s, %v, %v, %s", exec, ifName, delegate, rt, binDir)
|
logging.Debugf("delegateAdd: %v, %s, %v, %v, %s", exec, ifName, delegate, rt, binDir)
|
||||||
if os.Setenv("CNI_IFNAME", ifName) != nil {
|
if os.Setenv("CNI_IFNAME", ifName) != nil {
|
||||||
return nil, logging.Errorf("delegateAdd: error setting envionment variable CNI_IFNAME")
|
return nil, logging.Errorf("delegateAdd: error setting envionment variable CNI_IFNAME")
|
||||||
@ -286,21 +287,25 @@ func delegateAdd(exec invoke.Exec, ifName string, delegate *types.DelegateNetCon
|
|||||||
|
|
||||||
if logging.GetLoggingLevel() >= logging.VerboseLevel {
|
if logging.GetLoggingLevel() >= logging.VerboseLevel {
|
||||||
data, _ := json.Marshal(result)
|
data, _ := json.Marshal(result)
|
||||||
var confName string
|
var cniConfName string
|
||||||
if delegate.ConfListPlugin {
|
if delegate.ConfListPlugin {
|
||||||
confName = delegate.ConfList.Name
|
cniConfName = delegate.ConfList.Name
|
||||||
} else {
|
} else {
|
||||||
confName = delegate.Conf.Name
|
cniConfName = delegate.Conf.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
logging.Verbosef("Add: %s:%s:%s:%s %s", rt.Args[1][1], rt.Args[2][1], confName, rt.IfName, string(data))
|
podUID := "unknownUID"
|
||||||
|
if pod != nil {
|
||||||
|
podUID = string(pod.ObjectMeta.UID)
|
||||||
|
}
|
||||||
|
logging.Verbosef("Add: %s:%s:%s:%s(%s):%s %s", rt.Args[1][1], rt.Args[2][1], podUID, delegate.Name, cniConfName, rt.IfName, string(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func delegateDel(exec invoke.Exec, ifName string, delegateConf *types.DelegateNetConf, rt *libcni.RuntimeConf, binDir string) error {
|
func delegateDel(exec invoke.Exec, pod *v1.Pod, ifName string, delegateConf *types.DelegateNetConf, rt *libcni.RuntimeConf, binDir string) error {
|
||||||
logging.Debugf("delegateDel: %v, %s, %v, %v, %s", exec, ifName, delegateConf, rt, binDir)
|
logging.Debugf("delegateDel: %v, %v, %s, %v, %v, %s", exec, pod, ifName, delegateConf, rt, binDir)
|
||||||
if os.Setenv("CNI_IFNAME", ifName) != nil {
|
if os.Setenv("CNI_IFNAME", ifName) != nil {
|
||||||
return logging.Errorf("delegateDel: error setting envionment variable CNI_IFNAME")
|
return logging.Errorf("delegateDel: error setting envionment variable CNI_IFNAME")
|
||||||
}
|
}
|
||||||
@ -312,7 +317,11 @@ func delegateDel(exec invoke.Exec, ifName string, delegateConf *types.DelegateNe
|
|||||||
} else {
|
} else {
|
||||||
confName = delegateConf.Conf.Name
|
confName = delegateConf.Conf.Name
|
||||||
}
|
}
|
||||||
logging.Verbosef("Del: %s:%s:%s:%s %s", rt.Args[1][1], rt.Args[2][1], confName, rt.IfName, string(delegateConf.Bytes))
|
podUID := "unknownUID"
|
||||||
|
if pod != nil {
|
||||||
|
podUID = string(pod.ObjectMeta.UID)
|
||||||
|
}
|
||||||
|
logging.Verbosef("Del: %s:%s:%s:%s:%s %s", rt.Args[1][1], rt.Args[2][1], podUID, confName, rt.IfName, string(delegateConf.Bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
@ -331,8 +340,8 @@ func delegateDel(exec invoke.Exec, ifName string, delegateConf *types.DelegateNe
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func delPlugins(exec invoke.Exec, argIfname string, delegates []*types.DelegateNetConf, lastIdx int, rt *libcni.RuntimeConf, binDir string) error {
|
func delPlugins(exec invoke.Exec, pod *v1.Pod, argIfname string, delegates []*types.DelegateNetConf, lastIdx int, rt *libcni.RuntimeConf, binDir string) error {
|
||||||
logging.Debugf("delPlugins: %v, %s, %v, %d, %v, %s", exec, argIfname, delegates, lastIdx, rt, binDir)
|
logging.Debugf("delPlugins: %v, %v, %s, %v, %d, %v, %s", exec, pod, argIfname, delegates, lastIdx, rt, binDir)
|
||||||
if os.Setenv("CNI_COMMAND", "DEL") != nil {
|
if os.Setenv("CNI_COMMAND", "DEL") != nil {
|
||||||
return logging.Errorf("delPlugins: error setting envionment variable CNI_COMMAND to a value of DEL")
|
return logging.Errorf("delPlugins: error setting envionment variable CNI_COMMAND to a value of DEL")
|
||||||
}
|
}
|
||||||
@ -342,7 +351,7 @@ func delPlugins(exec invoke.Exec, argIfname string, delegates []*types.DelegateN
|
|||||||
ifName := getIfname(delegates[idx], argIfname, idx)
|
ifName := getIfname(delegates[idx], argIfname, idx)
|
||||||
rt.IfName = ifName
|
rt.IfName = ifName
|
||||||
// Attempt to delete all but do not error out, instead, collect all errors.
|
// Attempt to delete all but do not error out, instead, collect all errors.
|
||||||
if err := delegateDel(exec, ifName, delegates[idx], rt, binDir); err != nil {
|
if err := delegateDel(exec, pod, ifName, delegates[idx], rt, binDir); err != nil {
|
||||||
errorstrings = append(errorstrings, err.Error())
|
errorstrings = append(errorstrings, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -394,7 +403,7 @@ func cmdAdd(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) (cn
|
|||||||
n.Delegates[0].MasterPlugin = true
|
n.Delegates[0].MasterPlugin = true
|
||||||
}
|
}
|
||||||
|
|
||||||
_, kc, err := k8s.TryLoadPodDelegates(k8sArgs, n, kubeClient)
|
_, pod, kc, err := k8s.TryLoadPodDelegates(k8sArgs, n, kubeClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, cmdErr(k8sArgs, "error loading k8s delegates k8s args: %v", err)
|
return nil, cmdErr(k8sArgs, "error loading k8s delegates k8s args: %v", err)
|
||||||
}
|
}
|
||||||
@ -412,7 +421,7 @@ func cmdAdd(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) (cn
|
|||||||
|
|
||||||
runtimeConfig := types.MergeCNIRuntimeConfig(n.RuntimeConfig, delegate)
|
runtimeConfig := types.MergeCNIRuntimeConfig(n.RuntimeConfig, delegate)
|
||||||
rt := types.CreateCNIRuntimeConf(args, k8sArgs, ifName, runtimeConfig)
|
rt := types.CreateCNIRuntimeConf(args, k8sArgs, ifName, runtimeConfig)
|
||||||
tmpResult, err = delegateAdd(exec, ifName, delegate, rt, n.BinDir, cniArgs)
|
tmpResult, err = delegateAdd(exec, pod, ifName, delegate, rt, n.BinDir, cniArgs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// If the add failed, tear down all networks we already added
|
// If the add failed, tear down all networks we already added
|
||||||
netName := delegate.Conf.Name
|
netName := delegate.Conf.Name
|
||||||
@ -420,7 +429,7 @@ func cmdAdd(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) (cn
|
|||||||
netName = delegate.ConfList.Name
|
netName = delegate.ConfList.Name
|
||||||
}
|
}
|
||||||
// Ignore errors; DEL must be idempotent anyway
|
// Ignore errors; DEL must be idempotent anyway
|
||||||
_ = delPlugins(exec, args.IfName, n.Delegates, idx, rt, n.BinDir)
|
_ = delPlugins(exec, nil, args.IfName, n.Delegates, idx, rt, n.BinDir)
|
||||||
return nil, cmdErr(k8sArgs, "error adding container to network %q: %v", netName, err)
|
return nil, cmdErr(k8sArgs, "error adding container to network %q: %v", netName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -553,7 +562,7 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get pod annotation and so on
|
// Get pod annotation and so on
|
||||||
_, _, err := k8s.TryLoadPodDelegates(k8sArgs, in, kubeClient)
|
_, _, _, err := k8s.TryLoadPodDelegates(k8sArgs, in, kubeClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if len(in.Delegates) == 0 {
|
if len(in.Delegates) == 0 {
|
||||||
// No delegate available so send error
|
// No delegate available so send error
|
||||||
@ -603,8 +612,16 @@ func cmdDel(args *skel.CmdArgs, exec invoke.Exec, kubeClient k8s.KubeClient) err
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kubeClient, err = k8s.GetK8sClient(in.Kubeconfig, kubeClient)
|
||||||
|
var pod *v1.Pod
|
||||||
|
if kubeClient != nil {
|
||||||
|
podName := string(k8sArgs.K8S_POD_NAME)
|
||||||
|
podNamespace := string(k8sArgs.K8S_POD_NAMESPACE)
|
||||||
|
pod, _ = kubeClient.GetPod(podNamespace, podName)
|
||||||
|
}
|
||||||
|
|
||||||
rt := types.CreateCNIRuntimeConf(args, k8sArgs, "", in.RuntimeConfig)
|
rt := types.CreateCNIRuntimeConf(args, k8sArgs, "", in.RuntimeConfig)
|
||||||
return delPlugins(exec, args.IfName, in.Delegates, len(in.Delegates)-1, rt, in.BinDir)
|
return delPlugins(exec, pod, args.IfName, in.Delegates, len(in.Delegates)-1, rt, in.BinDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -1169,7 +1169,7 @@ var _ = Describe("multus operations", func() {
|
|||||||
_, err = cmdAdd(args, fExec, nil)
|
_, err = cmdAdd(args, fExec, nil)
|
||||||
Expect(fExec.addIndex).To(Equal(2))
|
Expect(fExec.addIndex).To(Equal(2))
|
||||||
Expect(fExec.delIndex).To(Equal(2))
|
Expect(fExec.delIndex).To(Equal(2))
|
||||||
Expect(err).To(MatchError("Multus: error adding pod to network \"other1\": delegateAdd: error invoking DelegateAdd - \"other-plugin\": error in getting result from AddNetwork: expected plugin failure"))
|
Expect(err).To(MatchError("Multus: [/]: error adding container to network \"other1\": delegateAdd: error invoking DelegateAdd - \"other-plugin\": error in getting result from AddNetwork: expected plugin failure"))
|
||||||
|
|
||||||
// Cleanup default network file.
|
// Cleanup default network file.
|
||||||
if _, errStat := os.Stat(configPath); errStat == nil {
|
if _, errStat := os.Stat(configPath); errStat == nil {
|
||||||
@ -1805,7 +1805,7 @@ var _ = Describe("multus operations", func() {
|
|||||||
err = cmdDel(args, fExec, fKubeClient)
|
err = cmdDel(args, fExec, fKubeClient)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
Expect(fExec.delIndex).To(Equal(len(fExec.plugins)))
|
Expect(fExec.delIndex).To(Equal(len(fExec.plugins)))
|
||||||
Expect(fKubeClient.PodCount).To(Equal(3))
|
Expect(fKubeClient.PodCount).To(Equal(4))
|
||||||
Expect(fKubeClient.NetCount).To(Equal(1))
|
Expect(fKubeClient.NetCount).To(Equal(1))
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1886,7 +1886,7 @@ var _ = Describe("multus operations", func() {
|
|||||||
err = cmdDel(args, fExec, fKubeClient)
|
err = cmdDel(args, fExec, fKubeClient)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
Expect(fExec.delIndex).To(Equal(len(fExec.plugins)))
|
Expect(fExec.delIndex).To(Equal(len(fExec.plugins)))
|
||||||
Expect(fKubeClient.PodCount).To(Equal(4))
|
Expect(fKubeClient.PodCount).To(Equal(5))
|
||||||
Expect(fKubeClient.NetCount).To(Equal(2))
|
Expect(fKubeClient.NetCount).To(Equal(2))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -149,6 +149,7 @@ func NewFakePod(name string, netAnnotation string, defaultNetAnnotation string)
|
|||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: name,
|
Name: name,
|
||||||
Namespace: "test",
|
Namespace: "test",
|
||||||
|
UID: "testUID",
|
||||||
},
|
},
|
||||||
Spec: v1.PodSpec{
|
Spec: v1.PodSpec{
|
||||||
Containers: []v1.Container{
|
Containers: []v1.Container{
|
||||||
|
@ -97,6 +97,9 @@ func LoadDelegateNetConf(bytes []byte, net *NetworkSelectionElement, deviceID st
|
|||||||
}
|
}
|
||||||
|
|
||||||
if net != nil {
|
if net != nil {
|
||||||
|
if net.Name != "" {
|
||||||
|
delegateConf.Name = net.Name
|
||||||
|
}
|
||||||
if net.InterfaceRequest != "" {
|
if net.InterfaceRequest != "" {
|
||||||
delegateConf.IfnameRequest = net.InterfaceRequest
|
delegateConf.IfnameRequest = net.InterfaceRequest
|
||||||
}
|
}
|
||||||
@ -160,6 +163,7 @@ func CreateCNIRuntimeConf(args *skel.CmdArgs, k8sArgs *K8sArgs, ifName string, r
|
|||||||
ContainerID: args.ContainerID,
|
ContainerID: args.ContainerID,
|
||||||
NetNS: args.Netns,
|
NetNS: args.Netns,
|
||||||
IfName: ifName,
|
IfName: ifName,
|
||||||
|
// NOTE: Verbose logging depends on this order, so please keep Args order.
|
||||||
Args: [][2]string{
|
Args: [][2]string{
|
||||||
{"IgnoreUnknown", string("true")},
|
{"IgnoreUnknown", string("true")},
|
||||||
{"K8S_POD_NAMESPACE", string(k8sArgs.K8S_POD_NAMESPACE)},
|
{"K8S_POD_NAMESPACE", string(k8sArgs.K8S_POD_NAMESPACE)},
|
||||||
|
@ -94,6 +94,7 @@ type NetworkStatus struct {
|
|||||||
type DelegateNetConf struct {
|
type DelegateNetConf struct {
|
||||||
Conf types.NetConf
|
Conf types.NetConf
|
||||||
ConfList types.NetConfList
|
ConfList types.NetConfList
|
||||||
|
Name string
|
||||||
IfnameRequest string `json:"ifnameRequest,omitempty"`
|
IfnameRequest string `json:"ifnameRequest,omitempty"`
|
||||||
MacRequest string `json:"macRequest,omitempty"`
|
MacRequest string `json:"macRequest,omitempty"`
|
||||||
IPRequest []string `json:"ipRequest,omitempty"`
|
IPRequest []string `json:"ipRequest,omitempty"`
|
||||||
|
Loading…
Reference in New Issue
Block a user