Merge "Change seba installation for cord 7.0.0"
[iec.git] / src / foundation / scripts / setup-cni.sh
index 61e9f06..f0689de 100755 (executable)
@@ -1,4 +1,5 @@
 #!/bin/bash
+# shellcheck disable=SC1073,SC1072,SC1039,SC2059,SC2046
 set -o xtrace
 set -e
 
@@ -8,11 +9,11 @@ if [ -f "$HOME/.bashrc" ]; then
 fi
 
 
-CLUSTER_IP=${1:-172.16.1.136} # Align with the value in our K8s setup script
+CNI_TYPE=${1:-calico}
 POD_NETWORK_CIDR=${2:-192.168.0.0/16}
-CNI_TYPE=${3:-calico}
-K8S_MASTER_IP=${4:-10.169.41.173}
-SERVICE_CIDR=${5:-172.16.1.0/24}
+K8S_MASTER_IP=${3:-10.169.41.173}
+SERVICE_CIDR=${4:-172.16.1.0/24}
+CLUSTER_IP=${5:-172.16.1.136} # Align with the value in our K8s setup script
 DEV_NAME=${6:-}
 
 SCRIPTS_DIR=$(dirname "${BASH_SOURCE[0]}")
@@ -75,6 +76,25 @@ install_ovn_kubernetes(){
 
 }
 
+install_multus_sriov_flannel(){
+
+  sed -i "s@10.244.0.0/16@${POD_NETWORK_CIDR}@" "${SCRIPTS_DIR}/cni/multus/multus-sriov-flannel/flannel-daemonset.yml"
+  # Install Multus Flannel+SRIOV by yaml files
+  # shellcheck source=/dev/null
+  source ${SCRIPTS_DIR}/cni/multus/multus-sriov-flannel/install.sh
+
+}
+
+install_multus_sriov_calico(){
+
+  sed -i "s@10.244.0.0/16@${POD_NETWORK_CIDR}@" \
+    "${SCRIPTS_DIR}/cni/multus/multus-sriov-calico/calico-daemonset.yaml"
+  # Install Multus Calico+SRIOV by yaml files
+  # shellcheck source=/dev/null
+  source ${SCRIPTS_DIR}/cni/multus/multus-sriov-calico/install.sh
+
+}
+
 install_danm(){
   ${SCRIPTS_DIR}/cni/danm/danm_install.sh
 
@@ -88,6 +108,19 @@ install_danm(){
   install_flannel
 }
 
+
+install_cilium(){
+  ${SCRIPTS_DIR}/cni/cilium/cilium_install.sh
+
+  # Deploying cilium CNI
+  kubectl create -f ${SCRIPTS_DIR}/cni/cilium/quick-install.yaml
+}
+
+# Remove the taints on master node
+# Taint master before installing the CNI for the case that there is
+# only one master node
+kubectl taint nodes --all node-role.kubernetes.io/master- || true
+
 case ${CNI_TYPE} in
  'calico')
         echo "Install calico ..."
@@ -105,15 +138,25 @@ case ${CNI_TYPE} in
         echo "Install Ovn-Kubernetes ..."
         install_ovn_kubernetes
         ;;
+ 'multus-flannel-sriov')
+        echo "Install Flannel with SRIOV CNI by Multus-CNI ..."
+        install_multus_sriov_flannel
+        ;;
+ 'multus-calico-sriov')
+        echo "Install Calico with SRIOV CNI by Multus-CNI ..."
+        install_multus_sriov_calico
+        ;;
  'danm')
         echo "Install danm ..."
         install_danm
         ;;
+ 'cilium')
+        echo "Install cilium ..."
+        install_cilium
+        ;;
  *)
         echo "${CNI_TYPE} is not supported"
         exit 1
         ;;
 esac
 
-# Remove the taints on master node
-kubectl taint nodes --all node-role.kubernetes.io/master- || true