diff --git a/cmd/config-generation/kubeconfig.go b/cmd/generate-kubeconfig/kubeconfig.go similarity index 100% rename from cmd/config-generation/kubeconfig.go rename to cmd/generate-kubeconfig/kubeconfig.go diff --git a/cmd/controller/main.go b/cmd/multus-daemon/main.go similarity index 96% rename from cmd/controller/main.go rename to cmd/multus-daemon/main.go index 7b60225c..4c2641c4 100644 --- a/cmd/controller/main.go +++ b/cmd/multus-daemon/main.go @@ -25,9 +25,9 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilwait "k8s.io/apimachinery/pkg/util/wait" - "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/cni" "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/config" "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/logging" + srv "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/server" "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/types" ) @@ -201,18 +201,18 @@ func main() { } func startMultusDaemon(daemonConfig *types.ControllerNetConf) error { - if err := cni.FilesystemPreRequirements(daemonConfig.MultusSocketDir); err != nil { + if err := srv.FilesystemPreRequirements(daemonConfig.MultusSocketDir); err != nil { return fmt.Errorf("failed to prepare the cni-socket for communicating with the shim: %w", err) } - server, err := cni.NewCNIServer(daemonConfig.MultusSocketDir) + server, err := srv.NewCNIServer(daemonConfig.MultusSocketDir) if err != nil { return fmt.Errorf("failed to create the server: %v", err) } - l, err := cni.ServerListener(cni.SocketPath(daemonConfig.MultusSocketDir)) + l, err := srv.GetListener(srv.SocketPath(daemonConfig.MultusSocketDir)) if err != nil { - return fmt.Errorf("failed to start the CNI server using socket %s. Reason: %+v", cni.SocketPath(daemonConfig.MultusSocketDir), err) + return fmt.Errorf("failed to start the CNI server using socket %s. Reason: %+v", srv.SocketPath(daemonConfig.MultusSocketDir), err) } server.SetKeepAlivesEnabled(false) diff --git a/cmd/shim/shim.go b/cmd/multus-shim/shim.go similarity index 91% rename from cmd/shim/shim.go rename to cmd/multus-shim/shim.go index 399b1e21..fa778543 100644 --- a/cmd/shim/shim.go +++ b/cmd/multus-shim/shim.go @@ -26,8 +26,8 @@ import ( "github.com/containernetworking/cni/pkg/skel" cniversion "github.com/containernetworking/cni/pkg/version" - "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/cni" "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/multus" + "gopkg.in/k8snetworkplumbingwg/multus-cni.v3/pkg/server" ) func main() { @@ -47,13 +47,13 @@ func main() { skel.PluginMain( func(args *skel.CmdArgs) error { - return cni.CmdAdd(args) + return server.CmdAdd(args) }, func(args *skel.CmdArgs) error { - return cni.CmdCheck(args) + return server.CmdCheck(args) }, func(args *skel.CmdArgs) error { - return cni.CmdDel(args) + return server.CmdDel(args) }, cniversion.All, "meta-plugin that delegates to other CNI plugins") } diff --git a/cmd/main.go b/cmd/multus/main.go similarity index 100% rename from cmd/main.go rename to cmd/multus/main.go diff --git a/hack/build-go.sh b/hack/build-go.sh index 8db5b426..95a24cd1 100755 --- a/hack/build-go.sh +++ b/hack/build-go.sh @@ -40,10 +40,10 @@ if [ "$GO111MODULE" == "off" ]; then export GO15VENDOREXPERIMENT=1 export GOBIN=${PWD}/bin export GOPATH=${PWD}/gopath - go build -o ${PWD}/bin/multus -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd - go build -o ${PWD}/bin/generate-kubeconfig -tags no_openssl -ldflags "${LDFLAGS}" ${REPO_PATH}/cmd/config-generation - go build -o ${PWD}/bin/multus-daemon -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd/controller/ - go build -o ${PWD}/bin/multus-shim -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd/shim/ + go build -o ${PWD}/bin/multus -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd/multus + go build -o ${PWD}/bin/generate-kubeconfig -tags no_openssl -ldflags "${LDFLAGS}" ${REPO_PATH}/cmd/generate-kubeconfig + go build -o ${PWD}/bin/multus-daemon -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd/multus-daemon + go build -o ${PWD}/bin/multus-shim -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/cmd/multus-shim else # build with go modules export GO111MODULE=on @@ -53,11 +53,11 @@ else fi echo "Building plugins" - go build ${BUILD_ARGS[*]} -ldflags "${LDFLAGS}" "$@" ./cmd + go build ${BUILD_ARGS[*]} -ldflags "${LDFLAGS}" "$@" ./cmd/multus echo "Building spec generators" - go build -o "${DEST_DIR}"/generate-kubeconfig -ldflags "${LDFLAGS}" ./cmd/config-generation + go build -o "${DEST_DIR}"/generate-kubeconfig -ldflags "${LDFLAGS}" ./cmd/generate-kubeconfig echo "Building multus controller" - go build -o "${DEST_DIR}"/multus-daemon -ldflags "${LDFLAGS}" ./cmd/controller/ + go build -o "${DEST_DIR}"/multus-daemon -ldflags "${LDFLAGS}" ./cmd/multus-daemon echo "Building multus shim" - go build -o "${DEST_DIR}"/multus-shim -ldflags "${LDFLAGS}" ./cmd/shim/ + go build -o "${DEST_DIR}"/multus-shim -ldflags "${LDFLAGS}" ./cmd/multus-shim fi diff --git a/pkg/cni/server.go b/pkg/server/server.go similarity index 98% rename from pkg/cni/server.go rename to pkg/server/server.go index 8ae67579..d44d988d 100644 --- a/pkg/cni/server.go +++ b/pkg/server/server.go @@ -13,7 +13,7 @@ // limitations under the License. // -package cni +package server import ( "encoding/json" @@ -62,8 +62,8 @@ func HandleCNIRequest(cmd string, k8sArgs *types.K8sArgs, cniCmdArgs *skel.CmdAr return result, nil } -// ServerListener creates a listener to a unix socket located in `socketPath` -func ServerListener(socketPath string) (net.Listener, error) { +// GetListener creates a listener to a unix socket located in `socketPath` +func GetListener(socketPath string) (net.Listener, error) { l, err := net.Listen("unix", socketPath) if err != nil { return nil, logging.Errorf("failed to listen on pod info socket: %v", err) diff --git a/pkg/cni/shim.go b/pkg/server/shim.go similarity index 99% rename from pkg/cni/shim.go rename to pkg/server/shim.go index 53ee38af..bfba6257 100644 --- a/pkg/cni/shim.go +++ b/pkg/server/shim.go @@ -1,4 +1,4 @@ -package cni +package server import ( "bytes" diff --git a/pkg/cni/socket.go b/pkg/server/socket.go similarity index 99% rename from pkg/cni/socket.go rename to pkg/server/socket.go index 2768aef0..35c384ca 100644 --- a/pkg/cni/socket.go +++ b/pkg/server/socket.go @@ -13,7 +13,7 @@ // limitations under the License. // -package cni +package server import ( "fmt" diff --git a/pkg/cni/thick_cni_test.go b/pkg/server/thick_cni_test.go similarity index 99% rename from pkg/cni/thick_cni_test.go rename to pkg/server/thick_cni_test.go index 7e6f0889..0013e59e 100644 --- a/pkg/cni/thick_cni_test.go +++ b/pkg/server/thick_cni_test.go @@ -13,7 +13,7 @@ // limitations under the License. // -package cni +package server import ( "context" @@ -212,7 +212,7 @@ func startCNIServer(runDir string, k8sClient *k8s.ClientInfo) (*Server, error) { return nil, err } - l, err := ServerListener(SocketPath(runDir)) + l, err := GetListener(SocketPath(runDir)) if err != nil { return nil, fmt.Errorf("failed to start the CNI server using socket %s. Reason: %+v", SocketPath(runDir), err) } diff --git a/pkg/cni/types.go b/pkg/server/types.go similarity index 59% rename from pkg/cni/types.go rename to pkg/server/types.go index 3c46484f..51cbbbd5 100644 --- a/pkg/cni/types.go +++ b/pkg/server/types.go @@ -1,4 +1,4 @@ -package cni +package server import ( "net/http" @@ -36,3 +36,27 @@ type Server struct { type Response struct { Result *current.Result } + +// ShimNetConf for the shim cni config file written in json +type ShimNetConf struct { + types.NetConf + + MultusSocketDir string `json:"socketDir"` + LogFile string `json:"logFile,omitempty"` + LogLevel string `json:"logLevel,omitempty"` + LogToStderr bool `json:"logToStderr,omitempty"` +} + +// ControllerNetConf for the controller cni configuration +type ControllerNetConf struct { + ConfDir string `json:"confDir"` + CNIDir string `json:"cniDir"` + BinDir string `json:"binDir"` + LogFile string `json:"logFile"` + LogLevel string `json:"logLevel"` + LogToStderr bool `json:"logToStderr,omitempty"` + + // Option to point to the path of the unix domain socket through which the + // multus client / server communicate. + MultusSocketDir string `json:"socketDir"` +}