|
||
---|---|---|
.. | ||
70-multus.conf | ||
Dockerfile | ||
entrypoint.sh | ||
flannel-daemonset.yml | ||
multus-daemonset.yml | ||
README.md |
Dockerfile build
This is used for distribution of Multus in a Docker image.
Typically you'd build this from the root of your Multus clone, and you'd set the -f
flag to specify the Dockerfile during build time. This allows the addition of the entirety of the Multus git clone as part of the Docker context. Use the -f
flag with the root of the clone as the context (e.g. your current work directory would be root of git clone), such as:
$ docker build -t dougbtv/multus -f ./images/Dockerfile .
Daemonset deployment
You may wish to deploy Multus as a daemonset, you can do so by starting with the example Daemonset shown here:
$ kubectl create -f ./images/multus-daemonset.yml
Note: The likely best practice here is to build your own image given the Dockerfile, and then push it to your preferred registry, and change the image
fields in the Daemonset YAML to reference that image.
entrypoint.sh
parameters
The entrypoint takes named parameters for the configuration
You can get get help with the --help
flag.
$ ./entrypoint.sh --help
This is an entrypoint script for Multus CNI to overlay its
binary and configuration into locations in a filesystem.
The configuration & binary file will be copied to the
corresponding configuration directory.
./entrypoint.sh
-h --help
--cni-conf-dir=/host/etc/cni/net.d
--cni-bin-dir=/host/opt/cni/bin
--multus-conf-file=/usr/src/multus-cni/images/70-multus.conf
--multus-bin-file=/usr/src/multus-cni/bin/multus
You must use an =
to delimit the parameter name and the value. For example you may set a custom cni-conf-dir
like so:
./entrypoint.sh --cni-conf-dir=/special/path/to/cni/configs/
Note: You'll noticed that there's a /host/...
directory from the root for the default for both the cni-conf-dir
and cni-bin-dir
as it's intended for the host volumes to be mounted specially under this directory to help in the semantics of which paths belong to the host or container.
Development notes
Example docker run command:
$ docker run -it -v /opt/cni/bin/:/host/opt/cni/bin/ -v /etc/cni/net.d/:/host/etc/cni/net.d/ --entrypoint=/bin/bash dougbtv/multus
Originally inspired by and is a portmanteau of the Flannel daemonset, the Calico Daemonset, and the Calico CNI install bash script.