summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuo Ruijing <ruijing.guo@intel.com>2017-10-18 19:22:04 -0400
committerGuo Ruijing <ruijing.guo@intel.com>2017-10-18 19:25:56 -0400
commit0b6cf885239f5612c19db205d9a827572ad73c8a (patch)
tree6b40c95a3eb544df4897238c9c1bb028d52303a7
parent470472f807b118b235d7ff473a3e58bfaf8c293d (diff)
add intel multus cni support
Change-Id: I5670a824c62f6b41dddb7792c851d8b838d28b50 Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
-rwxr-xr-xci/deploy.sh4
-rwxr-xr-xci/k8.sh11
-rw-r--r--ci/kubernetes/kube_cni_multus.yml91
-rw-r--r--ci/kubernetes/nginx-app.yaml31
-rwxr-xr-xci/kubernetes/post-install.sh12
5 files changed, 141 insertions, 8 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 9277e857..a6a1b182 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -25,7 +25,7 @@ usage() { echo "Usage: $0
[-t|--type <noha|ha|tip>]
[-o|--openstack <ocata>]
[-l|--lab <default|custom>]
- [-f|--feature <ipv6,dpdk,lxd,dvr,openbaton>]
+ [-f|--feature <ipv6,dpdk,lxd,dvr,openbaton,multus>]
[-d|--distro <xenial>]
[-a|--arch <amd64|ppc64el|aarch64>]
[-m|--model <openstack|kubernetes>]
@@ -348,7 +348,7 @@ elif ([ $opnfvmodel == "kubernetes" ]); then
check_status executing 50
echo_info "Configuring Kubernetes deployment"
- ./k8.sh
+ ./k8.sh $opnfvfeature
fi
# expose the juju gui-url to login into juju gui
diff --git a/ci/k8.sh b/ci/k8.sh
index 551c4a27..51b2f571 100755
--- a/ci/k8.sh
+++ b/ci/k8.sh
@@ -1,11 +1,10 @@
#!/bin/bash
set -ex
+
+opnfvfeature=$1
+
juju run-action kubernetes-worker/0 microbot replicas=3
-sleep 30
juju config kubernetes-master enable-dashboard-addons=true || true
juju expose kubernetes-worker || true
-
-juju ssh kubernetes-master/0 "/snap/bin/kubectl cluster-info"
-juju ssh kubernetes-master/0 "/snap/bin/kubectl get nodes"
-juju ssh kubernetes-master/0 "/snap/bin/kubectl get pods --all-namespaces"
-juju ssh kubernetes-master/0 "/snap/bin/kubectl get services,endpoints,ingress --all-namespaces"
+juju scp -- -r kubernetes kubernetes-master/0:
+juju ssh kubernetes-master/0 "/bin/bash kubernetes/post-install.sh $opnfvfeature"
diff --git a/ci/kubernetes/kube_cni_multus.yml b/ci/kubernetes/kube_cni_multus.yml
new file mode 100644
index 00000000..219af57c
--- /dev/null
+++ b/ci/kubernetes/kube_cni_multus.yml
@@ -0,0 +1,91 @@
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: cnimultus
+ namespace: kube-system
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: kube-cnimultus-cfg
+ namespace: kube-system
+ labels:
+ tier: node
+ app: cnimultus
+data:
+ cni-conf.json: |
+ {
+ "name": "multus",
+ "type": "multus",
+ "delegates": [
+ {
+ "name": "CDK-flannel-network",
+ "type": "flannel",
+ "masterplugin": true
+ "delegate": {
+ "isDefaultGateway": true
+ }
+ }
+ },
+ {
+ "name": "mynet",
+ "type": "bridge",
+ "bridge": "cni0",
+ "isGateway": true,
+ "ipMasq": true,
+ "ipam": {
+ "type": "host-local",
+ "subnet": "10.22.0.0/16",
+ "routes": [
+ { "dst": "0.0.0.0/0" }
+ ]
+ }
+ }
+ ]
+ }
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-cnimultus-ds
+ namespace: kube-system
+ labels:
+ tier: node
+ app: cnimultus
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: cnimultus
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: amd64
+ tolerations:
+ - key: node-role.kubernetes.io/master
+ operator: Exists
+ effect: NoSchedule
+ serviceAccountName: cnimultus
+ containers:
+ - name: install-cni
+ image: openretriever/cnimultus
+ command: [ "/bin/bash", "/cni/install_cni.sh" ]
+ volumeMounts:
+ - name: cni-bin
+ mountPath: /opt/cni/bin
+ - name: cni-cfg
+ mountPath: /etc/cni/net.d
+ - name: cnimultus-cfg
+ mountPath: /etc/kube-cnimultus
+ volumes:
+ - name: cni-bin
+ hostPath:
+ path: /opt/cni/bin
+ - name: cni-cfg
+ hostPath:
+ path: /etc/cni/net.d
+ - name: cnimultus-cfg
+ configMap:
+ name: kube-cnimultus-cfg
diff --git a/ci/kubernetes/nginx-app.yaml b/ci/kubernetes/nginx-app.yaml
new file mode 100644
index 00000000..f80881a2
--- /dev/null
+++ b/ci/kubernetes/nginx-app.yaml
@@ -0,0 +1,31 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: nginx
+ labels:
+ app: nginx
+spec:
+ type: NodePort
+ ports:
+ - port: 80
+ protocol: TCP
+ name: http
+ selector:
+ app: nginx
+---
+apiVersion: v1
+kind: ReplicationController
+metadata:
+ name: nginx
+spec:
+ replicas: 2
+ template:
+ metadata:
+ labels:
+ app: nginx
+ spec:
+ containers:
+ - name: nginx
+ image: nginx
+ ports:
+ - containerPort: 80
diff --git a/ci/kubernetes/post-install.sh b/ci/kubernetes/post-install.sh
new file mode 100755
index 00000000..104f9794
--- /dev/null
+++ b/ci/kubernetes/post-install.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -ex
+
+if [[ $1 == *"multus"* ]]; then
+ /snap/bin/kubectl apply -f kubernetes/kube_cni_multus.yml
+fi
+
+/snap/bin/kubectl apply -f kubernetes/nginx-app.yaml
+/snap/bin/kubectl cluster-info
+/snap/bin/kubectl get nodes
+/snap/bin/kubectl get pods --all-namespaces
+/snap/bin/kubectl get services,endpoints,ingress --all-namespaces