diff options
-rwxr-xr-x | ci/deploy.sh | 4 | ||||
-rwxr-xr-x | ci/k8.sh | 11 | ||||
-rw-r--r-- | ci/kubernetes/kube_cni_multus.yml | 91 | ||||
-rw-r--r-- | ci/kubernetes/nginx-app.yaml | 31 | ||||
-rwxr-xr-x | ci/kubernetes/post-install.sh | 12 |
5 files changed, 141 insertions, 8 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh index a061f0ef..560807f7 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>] @@ -341,7 +341,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 @@ -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 |