cnitool: support capablity args

Signed-off-by: Pengfei Ni <feiskyer@gmail.com>
This commit is contained in:
Pengfei Ni 2017-04-25 17:35:03 +08:00
parent 21d96393ea
commit 73a2d131ee

View File

@ -15,6 +15,7 @@
package main package main
import ( import (
"encoding/json"
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
@ -25,6 +26,7 @@ import (
const ( const (
EnvCNIPath = "CNI_PATH" EnvCNIPath = "CNI_PATH"
EnvNetDir = "NETCONFPATH" EnvNetDir = "NETCONFPATH"
EnvCapabilityArgs = "CAP_ARGS"
DefaultNetDir = "/etc/cni/net.d" DefaultNetDir = "/etc/cni/net.d"
@ -47,6 +49,14 @@ func main() {
exit(err) exit(err)
} }
var capabilityArgs map[string]interface{}
args := os.Getenv(EnvCapabilityArgs)
if len(args) > 0 {
if err = json.Unmarshal([]byte(args), &capabilityArgs); err != nil {
exit(err)
}
}
netns := os.Args[3] netns := os.Args[3]
cninet := &libcni.CNIConfig{ cninet := &libcni.CNIConfig{
@ -57,6 +67,7 @@ func main() {
ContainerID: "cni", ContainerID: "cni",
NetNS: netns, NetNS: netns,
IfName: "eth0", IfName: "eth0",
CapabilityArgs: capabilityArgs,
} }
switch os.Args[1] { switch os.Args[1] {