2021-03-16 16:08:53 +09:00
|
|
|
module gopkg.in/k8snetworkplumbingwg/multus-cni.v3
|
2019-06-07 18:36:14 +09:00
|
|
|
|
2021-05-22 02:05:38 +09:00
|
|
|
go 1.16
|
2019-06-07 18:36:14 +09:00
|
|
|
|
|
|
|
require (
|
2022-02-28 22:04:23 +09:00
|
|
|
github.com/blang/semver v3.5.1+incompatible
|
2022-03-02 01:55:23 +09:00
|
|
|
github.com/containernetworking/cni v1.0.1
|
|
|
|
github.com/containernetworking/plugins v1.1.0
|
Replace entrypoint script with initcontainers (#718)
* build: install the multus binary in an init container
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* build: generate kubeconfig via go
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* build: generate multus cni configuration via golang
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* build: provide a docker img for daemon based deployments
We will have 2 different images (only on amd64 archs):
- legacy entrypoint script based
- daemonized process
The `image-build` docker action is updated, to build these 2 images.
There will be 2 different deployment specs, along with e2e test
lanes, one for each of the aforementioned alternatives.
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* build: delegate CNI config watch loop via golang
For the thick-plugin alternative, provide the watch loop for
configuration regeneration via a golang binary.
Over time, this binary is expected to run the control loop to watch
out for pod updates.
To enable current multus users to chose when they upgrade to this new
deployment setup, these changes are provided in separate multus images,
having a different yaml spec files. Both of these alternatives are
tested e2e, since a new lane is introduced.
The following libraries are introduced, along with the motivation for
adding them:
- dproxy: allows traversing the default network configuration arbitrarily,
similar to what an X path / JSON path tool provides.
Repo is available at [0].
- fsnotify: watch for changes in the default CNI configuration file.
Repo is available at [1].
The config map providing the default network CNI configuration is not
copied over, since originally, the user was not required to install a
default network CNI plugin first, but, nowadays, this is a required
step of multus.
As such, it is no longer required to provide a default CNI
configuration.
[0] - https://github.com/koron/go-dproxy
[1] - https://github.com/fsnotify/fsnotify
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* run gofmt
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* refactor: make the builder pattern more idiomatic to golang
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
* build: update github actions to release new imgs
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
2021-10-27 14:42:37 +02:00
|
|
|
github.com/fsnotify/fsnotify v1.4.9
|
2022-03-02 01:55:23 +09:00
|
|
|
github.com/go-logr/logr v1.2.2 // indirect
|
thick-plugin: refactor multus
Multus is refactored as a thick plugin, featuring 2 main components:
- a server listening to a unix domain socket, running in a pod
- a shim, a binary on the host that will send JSON requests built from
its environment / stdin values to the aforementioned server.
The pod where the multus daemon is running must share the host's PID
namespace.
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
react to maintainers review
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
thick, deployment: update the daemonset spec
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
thick, config: validate the cni config passed by the runtime
Without this patch, we're blindly trusting anything sent by the server.
This way, we assure the requests arriving at the multus controller are
valid before hand.
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
thick: model client / server config
Also add a new command line parameter on the multus controller, pointing
it to the server configuration.
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
SQUASH candidate, thick, config: cleanup the configuration
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
multus: use args.args instead of an env variable
CNI is already filling the args structure; we should consume that
rather than rely on the environment variables.
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
unit tests: remove weird tests that check an impossible scenario
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
docs, thick: document the thick plugin variant
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
thick, server, multus: re-use common types
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
2021-12-16 18:18:35 +01:00
|
|
|
github.com/gorilla/mux v1.8.0
|
2022-03-02 01:55:23 +09:00
|
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
|
|
github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.2.0
|
|
|
|
github.com/kr/text v0.2.0 // indirect
|
|
|
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
|
|
|
|
github.com/onsi/ginkgo v1.16.4
|
|
|
|
github.com/onsi/gomega v1.15.0
|
2021-05-22 02:05:38 +09:00
|
|
|
github.com/pkg/errors v0.9.1
|
2022-03-02 01:55:23 +09:00
|
|
|
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
|
|
|
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
|
|
|
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 // indirect
|
|
|
|
google.golang.org/grpc v1.33.2
|
|
|
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
2020-06-15 18:35:15 -07:00
|
|
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
2021-09-16 23:23:45 +09:00
|
|
|
k8s.io/api v0.20.10
|
|
|
|
k8s.io/apimachinery v0.20.10
|
|
|
|
k8s.io/client-go v0.20.10
|
2020-03-04 16:42:29 +09:00
|
|
|
k8s.io/klog v1.0.0
|
2022-03-02 01:55:23 +09:00
|
|
|
k8s.io/klog/v2 v2.40.1 // indirect
|
|
|
|
k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf // indirect
|
2021-05-22 02:05:38 +09:00
|
|
|
k8s.io/kubelet v0.0.0
|
2021-09-16 23:23:45 +09:00
|
|
|
k8s.io/kubernetes v1.20.10
|
2022-03-02 01:55:23 +09:00
|
|
|
sigs.k8s.io/yaml v1.3.0 // indirect
|
2019-06-07 18:36:14 +09:00
|
|
|
)
|
2021-02-18 11:11:43 -05:00
|
|
|
|
2021-05-22 02:05:38 +09:00
|
|
|
replace (
|
|
|
|
github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
|
2021-09-16 23:23:45 +09:00
|
|
|
k8s.io/api => k8s.io/api v0.20.10
|
|
|
|
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.20.10
|
|
|
|
k8s.io/apimachinery => k8s.io/apimachinery v0.20.10
|
|
|
|
k8s.io/apiserver => k8s.io/apiserver v0.20.10
|
|
|
|
k8s.io/cli-runtime => k8s.io/cli-runtime v0.20.10
|
|
|
|
k8s.io/client-go => k8s.io/client-go v0.20.10
|
|
|
|
k8s.io/cloud-provider => k8s.io/cloud-provider v0.20.10
|
|
|
|
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.20.10
|
|
|
|
k8s.io/code-generator => k8s.io/code-generator v0.20.10
|
|
|
|
k8s.io/component-base => k8s.io/component-base v0.20.10
|
|
|
|
k8s.io/component-helpers => k8s.io/component-helpers v0.20.10
|
|
|
|
k8s.io/controller-manager => k8s.io/controller-manager v0.20.10
|
|
|
|
k8s.io/cri-api => k8s.io/cri-api v0.20.10
|
|
|
|
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.20.10
|
|
|
|
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.20.10
|
|
|
|
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.20.10
|
|
|
|
k8s.io/kube-proxy => k8s.io/kube-proxy v0.20.10
|
|
|
|
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.20.10
|
|
|
|
k8s.io/kubectl => k8s.io/kubectl v0.20.10
|
|
|
|
k8s.io/kubelet => k8s.io/kubelet v0.20.10
|
|
|
|
k8s.io/kubernetes => k8s.io/kubernetes v1.20.10
|
|
|
|
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.20.10
|
|
|
|
k8s.io/metrics => k8s.io/metrics v0.20.10
|
|
|
|
k8s.io/mount-utils => k8s.io/mount-utils v0.20.10
|
|
|
|
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.20.10
|
2021-05-22 02:05:38 +09:00
|
|
|
)
|