diff --git a/.github/workflows/image-build.yml b/.github/workflows/image-build.yml index b024c38af..f4c958341 100644 --- a/.github/workflows/image-build.yml +++ b/.github/workflows/image-build.yml @@ -1,26 +1,8 @@ name: Image build on: [pull_request] jobs: - ep-build-amd64: - name: Image build/amd64 LEGACY entrypoint - runs-on: ubuntu-latest - steps: - - name: Check out code into the Go module directory - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Build container image - uses: docker/build-push-action@v2 - with: - context: . - push: false - tags: ghcr.io/${{ github.repository }}:ep-latest-amd64 - file: images/Dockerfile - build-amd64: - name: Image build/amd64 daemonized alternative + name: Image build/amd64 thin plugin runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory @@ -35,6 +17,24 @@ jobs: context: . push: false tags: ghcr.io/${{ github.repository }}:latest-amd64 + file: images/Dockerfile + + build-amd64-thick: + name: Image build/amd64 thick plugin + runs-on: ubuntu-latest + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build container image + uses: docker/build-push-action@v2 + with: + context: . + push: false + tags: ghcr.io/${{ github.repository }}:latest-amd64-thick file: images/Dockerfile.thick build-arm64: diff --git a/README.md b/README.md index 2f3658fba..0686e04dd 100644 --- a/README.md +++ b/README.md @@ -26,13 +26,26 @@ The quickstart installation method for Multus requires that you have first insta Clone this GitHub repository, we'll apply a daemonset which installs Multus using to `kubectl` from this repo. From the root directory of the clone, apply the daemonset YAML file: +For thin-plugin (i.e. standalone implementation) case: + ``` -cat ./deployments/multus-daemonset-thick-plugin.yml | kubectl apply -f - +cat ./deployments/multus-daemonset.yml | kubectl apply -f - +``` + +For [thick-plugin](docks/thick-plugin.md) (i.e. client/server implementation) case: + +``` +cat ./deployments/multus-daemonset-thick.yml | kubectl apply -f - ``` This will configure your systems to be ready to use Multus CNI, but, to get started with adding additional interfaces to your pods, refer to our complete [quick-start guide](docs/quickstart.md) -## Additional installation Options +## Thin Plugin v.s Thick Plugin + +In multus 4.0 release, we introduces new deployment, client/server style plugin deployment. We call it ['thick plugin'](docs/thick-plugin.md), compared to previous usual deployment (we call it 'thin plugin'). Thick pluign consists with two binary, multus-daemon and multus-shim CNI plugin. 'multus-daemon' will be deployed to all nodes as server. Thick plugin supports additional features, such as metrics, which cannot be supported in 'thin plugin' deployment. On the other side, 'thick plugin' consumes more resources than 'thin plugin', hence you need to think about its trade-off and decide the deployment. + + +## Additional Installation Options - Install via daemonset using the quick-start guide, above. - Download binaries from [release page](https://github.com/k8snetworkplumbingwg/multus-cni/releases) @@ -43,8 +56,10 @@ This will configure your systems to be ready to use Multus CNI, but, to get star ## Comprehensive Documentation - [How to use](docs/how-to-use.md) +- [Quick Start Guide](docs/quickstart.md) - [Configuration](docs/configuration.md) -- [Development](docs/development.md) +- [Development and Support Information](docs/development.md) +- [Thick Plugin](docs/thick-plugin.md) ## Contact Us diff --git a/docs/development.md b/docs/development.md index 9f834f9ea..3d67e2b51 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,4 +1,9 @@ -## Development Information +## Development/Support Information + +## Which Kubernetes version is supported in multus? + +Currently multus team supports Kubernetes that Kubernetes community maintains. +See [Version Skew Policy](https://kubernetes.io/releases/version-skew-policy/) for the details. ## How to utilize multus-cni code as library? @@ -9,7 +14,6 @@ You can use following command to import our code into your go code. go get gopkg.in/k8snetworkplumbingwg/multus-cni.v3 ``` - ## How do I submit an issue? Use GitHub as normally, you'll be presented with an option to submit a issue or enhancement request. diff --git a/docs/how-to-use.md b/docs/how-to-use.md index 84d4f550a..d5ac39fb8 100644 --- a/docs/how-to-use.md +++ b/docs/how-to-use.md @@ -21,7 +21,11 @@ You may acquire the Multus binary via compilation (see the [developer guide](dev As a [quickstart](quickstart.md), you may apply these YAML files (included in the clone of this repository). Run this command (typically you would run this on the master, or wherever you have access to the `kubectl` command to manage your cluster). - cat ./deployments/multus-daemonset.yml | kubectl apply -f - + cat ./deployments/multus-daemonset.yml | kubectl apply -f - # thin deployment + +or + + cat ./deployments/multus-daemonset-thick.yml | kubectl apply -f - # thick (client/server) deployment If you need more comprehensive detail, continue along with this guide, otherwise, you may wish to either [follow the quickstart guide]() or skip to the ['Create network attachment definition'](#create-network-attachment-definition) section. diff --git a/docs/quickstart.md b/docs/quickstart.md index 01a7bda63..bdd41255b 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -50,8 +50,16 @@ git clone https://github.com/k8snetworkplumbingwg/multus-cni.git && cd multus-cn We'll apply a YAML file with `kubectl` from this repo. +For thin-plugin (i.e. standalone implementation) case: + ``` -cat ./deployments/multus-daemonset-thick-plugin.yml | kubectl apply -f - +cat ./deployments/multus-daemonset.yml | kubectl apply -f - +``` + +For [thick-plugin](docks/thick-plugin.md) (i.e. client/server implementation) case: + +``` +cat ./deployments/multus-daemonset-thick.yml | kubectl apply -f - ``` ### What the Multus daemonset does diff --git a/images/entrypoint.sh b/images/entrypoint.sh index 6b91dc646..7a5ab026c 100755 --- a/images/entrypoint.sh +++ b/images/entrypoint.sh @@ -1,5 +1,10 @@ #!/bin/bash +# multus thin plugin install shell script +# +# note: this script is designed for quick-install or just 'tasting multus' in your test environment. +# hence it does not cover advanced Kubernetes cluster operation (update, uninstall and so on). + # Always exit on errors. set -e