From a0261d65071b5380c394d6821f3fe5c0d2f90e8f Mon Sep 17 00:00:00 2001 From: Saikrishna Date: Fri, 28 Dec 2018 20:29:13 -0800 Subject: [PATCH] Adding multus and sriov artifacts This set of yamls installs multus-cni, sriov-cni and sriov-device-plugin Signed-off-by: Saikrishna Edupuganti --- .../9-multi-network/multus-conf.yaml | 21 ++ .../9-multi-network/multus-sriov-ds.yaml | 204 ++++++++++++++++++ .../9-multi-network/sriov-conf.yaml | 19 ++ .../test/bridge/0-bridge-net.yaml | 16 ++ .../test/bridge/1-pod-bridge.yaml | 14 ++ .../9-multi-network/test/pod.yaml | 10 + .../test/sriov/0-sriov-net.yaml | 20 ++ .../test/sriov/1-pod-sriov.yaml | 14 ++ 8 files changed, 318 insertions(+) create mode 100644 clr-k8s-examples/9-multi-network/multus-conf.yaml create mode 100644 clr-k8s-examples/9-multi-network/multus-sriov-ds.yaml create mode 100644 clr-k8s-examples/9-multi-network/sriov-conf.yaml create mode 100644 clr-k8s-examples/9-multi-network/test/bridge/0-bridge-net.yaml create mode 100644 clr-k8s-examples/9-multi-network/test/bridge/1-pod-bridge.yaml create mode 100644 clr-k8s-examples/9-multi-network/test/pod.yaml create mode 100644 clr-k8s-examples/9-multi-network/test/sriov/0-sriov-net.yaml create mode 100644 clr-k8s-examples/9-multi-network/test/sriov/1-pod-sriov.yaml diff --git a/clr-k8s-examples/9-multi-network/multus-conf.yaml b/clr-k8s-examples/9-multi-network/multus-conf.yaml new file mode 100644 index 0000000..f85ebc9 --- /dev/null +++ b/clr-k8s-examples/9-multi-network/multus-conf.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: multus-conf + namespace: kube-system +data: + 01-cni-conf.json: | + { + "name": "multus-cni-network", + "type": "multus", + "delegates": [ + { + "type": "flannel", + "delegate": { + "isDefaultGateway": true + } + } + ], + "kubeconfig": "/etc/cni/net.d/multus-kubeconfig" + } + diff --git a/clr-k8s-examples/9-multi-network/multus-sriov-ds.yaml b/clr-k8s-examples/9-multi-network/multus-sriov-ds.yaml new file mode 100644 index 0000000..75bb3d6 --- /dev/null +++ b/clr-k8s-examples/9-multi-network/multus-sriov-ds.yaml @@ -0,0 +1,204 @@ +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + # name must match the spec fields below, and be in the form: . + name: network-attachment-definitions.k8s.cni.cncf.io +spec: + # group name to use for REST API: /apis// + group: k8s.cni.cncf.io + # version name to use for REST API: /apis// + version: v1 + # either Namespaced or Cluster + scope: Namespaced + names: + # plural name to be used in the URL: /apis/// + plural: network-attachment-definitions + # singular name to be used as an alias on the CLI and for display + singular: network-attachment-definition + # kind is normally the CamelCased singular type. Your resource manifests use this. + kind: NetworkAttachmentDefinition + # shortNames allow shorter string to match your resource on the CLI + shortNames: + - net-attach-def +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: multus-sa + namespace: kube-system +--- +apiVersion: v1 +kind: Secret +metadata: + name: multus-sa-secret + namespace: kube-system + annotations: + kubernetes.io/service-account.name: multus-sa +type: kubernetes.io/service-account-token +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: multus-pod-networks-lister +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get"] +- apiGroups: [""] + resources: ["pods/status"] + verbs: ["update"] +- apiGroups: ["k8s.cni.cncf.io"] + resources: ["*"] + verbs: ["get"] +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: multus-certs + namespace: kube-system +data: + install-certs.sh: | + # Copied from Calico + # https://github.com/projectcalico/cni-plugin/blob/master/k8s-install/scripts/install-cni.sh + touch /host/etc/cni/net.d/multus-kubeconfig + chmod 600 /host/etc/cni/net.d/multus-kubeconfig + SERVICE_ACCOUNT_PATH=/var/run/secrets/multus/serviceaccount + KUBE_CA_FILE=$SERVICE_ACCOUNT_PATH/ca.crt + TLS_CFG="certificate-authority-data: $(cat $KUBE_CA_FILE | base64 | tr -d '\n')" + SERVICEACCOUNT_TOKEN=$(cat $SERVICE_ACCOUNT_PATH/token) + cat > /host/etc/cni/net.d/multus-kubeconfig <