improvements for default virtual pod creation
[joid.git] / ci / 02-deploybundle.sh
index d08dae6..b634ec8 100755 (executable)
@@ -10,20 +10,27 @@ opnfvlab=$3
 opnfvsdn=$4
 opnfvfeature=$5
 opnfvdistro=$6
+opnfvmodel=$7
 
-#copy and download charms
-cp $opnfvsdn/fetch-charms.sh ./fetch-charms.sh
+if [[ "$opnfvmodel" = "openstack" ]]; then
+    #copy and download charms
+    cp $opnfvsdn/fetch-charms.sh ./fetch-charms.sh
+else
+    cp kubernetes/fetch-charms.sh ./fetch-charms.sh
+fi
 
 jujuver=`juju --version`
+maasver=`apt-cache policy maas | grep Installed | cut -d ':' -f 2 | sed -e 's/ //'`
 
 #modify the ubuntu series wants to deploy
 sed -i -- "s|distro=trusty|distro=$opnfvdistro|g" ./fetch-charms.sh
 
 ./fetch-charms.sh $opnfvdistro
 
-tar xvf common/scaleio.tar -C ./$opnfvdistro/ --strip=2 juju-scaleio/trusty/
-
-osdomname=''
+if [[ "$opnfvmodel" = "openstack" ]]; then
+    tar xvf common/scaleio.tar -C ./$opnfvdistro/ --strip=2 juju-scaleio/trusty/
+    osdomname=''
+fi
 
 #check whether charms are still executing the code even juju-deployer says installed.
 check_status() {
@@ -47,32 +54,58 @@ check_status() {
 
 #read the value from deployment.yaml
 
-if [ -e ./deployment.yaml ]; then
-   if [ -e ./deployconfig.yaml ]; then
-      extport=`grep "ext-port" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
-      datanet=`grep "dataNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
-      admnet=`grep "admNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
-      cephdisk=`grep "ceph-disk" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
-      osdomname=`grep "os-domain-name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
-   fi
-
-    workmutiple=`maas maas nodes list | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '`
-    max=0
-    for v in ${workmutiple[@]}; do
-        if (( $v > $max )); then max=$v; fi;
-    done
-    echo $max
-
-    if [ "$max" -lt 4 ];then
-        workmutiple=1.0
-    elif [ "$max" -lt 33 ]; then
-        workmutiple=0.25
-    elif [ "$max" -lt 73 ]; then
-        workmutiple=0.1
+PROFILE=maas
+MAAS_IP=$(grep " ip_address" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //')
+API_SERVERMAAS="http://$MAAS_IP/MAAS/"
+if [ "$maasver" > "2" ]; then
+    API_KEY=`sudo maas-region apikey --username=ubuntu || true`
+else
+    API_KEY=`sudo maas-region-admin apikey --username=ubuntu || true`
+fi
+
+
+if [[ "$API_KEY" = "" ]]; then
+    if [ "$maasver" > "2" ]; then
+        API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region apikey --username=ubuntu'`
     else
-        workmutiple=0.05
+        API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region-admin apikey --username=ubuntu'`
+    fi
+fi
+
+maas login $PROFILE $API_SERVERMAAS $API_KEY
+
+if [[ "$opnfvmodel" = "openstack" ]]; then
+    if [ -e ./deployment.yaml ]; then
+       if [ -e ./deployconfig.yaml ]; then
+          extport=`grep "ext-port" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
+          datanet=`grep "dataNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
+          admnet=`grep "admNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
+          cephdisk=`grep "ceph-disk" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
+          osdomname=`grep "os-domain-name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
+       fi
+
+        if [ "$maasver" > "2" ]; then
+            workmutiple=`maas maas nodes read | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '`
+        else
+            workmutiple=`maas maas nodes list | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '`
+        fi
+        max=0
+        for v in ${workmutiple[@]}; do
+            if (( $v > $max )); then max=$v; fi;
+        done
+        echo $max
+
+        if [ "$max" -lt 4 ];then
+            workmutiple=1.1
+        elif [ "$max" -lt 33 ]; then
+            workmutiple=0.25
+        elif [ "$max" -lt 73 ]; then
+            workmutiple=0.1
+        else
+            workmutiple=0.05
+        fi
+        sed -i "s/worker_multiplier: 1.0/worker_multiplier: ${workmutiple}/g" default_deployment_config.yaml
     fi
-    sed -i "s/worker_multiplier: 1.0/worker_multiplier: ${workmutiple}/g" default_deployment_config.yaml
 fi
 
 case "$opnfvlab" in
@@ -96,42 +129,58 @@ for feature in $opnfvfeature; do
     fi
 done
 
-#update source if trusty is target distribution
-var=os-$opnfvsdn-$fea-$opnfvtype"-"$opnfvdistro"_"$openstack
+if [[ "$opnfvmodel" = "openstack" ]]; then
+    #update source if trusty is target distribution
+    var=os-$opnfvsdn-$fea-$opnfvtype"-"$opnfvdistro"_"$openstack
 
-if [ "$osdomname" != "None" ]; then
-    var=$var"_"publicapi
+    if [ "$osdomname" != "None" ]; then
+        var=$var"_"publicapi
+    fi
+else
+    var=k8-$opnfvsdn-$fea-baremetal-core
 fi
 
-if [ "$jujuver" < "2" ]; then
+if [[ "$opnfvmodel" = "openstack" ]]; then
     #lets generate the bundle for all target using genBundle.py
-    python genBundle.py  -j 1 -l deployconfig.yaml  -s $var > bundles.yaml
-    #keep the back in cloud for later debugging.
-    pastebinit bundles.yaml || true
+    python genBundle.py  -l deployconfig.yaml  -s $var > bundles.yaml
+else
+    #lets generate the bundle for k8 target using genK8Bundle.py
+    python genK8Bundle.py  -l deployconfig.yaml  -s $var > bundles.yaml
+fi
+
+#keep the back in cloud for later debugging.
+pastebinit bundles.yaml || true
+
+if [[ "$jujuver" < "2" ]]; then
     echo "... Deployment Started ...."
-    juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack"
+    juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack"-nodes
+    count=`juju status nodes --format=short | grep nodes | wc -l`
+    c=0
+    while [ $c -lt $count ]; do
+        juju ssh nodes/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
+        juju ssh nodes-compute/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
+        juju ssh nodes/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
+        juju ssh nodes-compute/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
+        let c+=1
+    done
+
+    juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack" || true
 else
-    #lets generate the bundle for all target using genBundle.py
-    python genBundle.py -j 2  -l deployconfig.yaml  -s $var > bundles.yaml
-    #keep the back in cloud for later debugging.
-    pastebinit bundles.yaml || true
     # with JUJU 2.0 bundles has to be deployed only once.
     juju deploy bundles.yaml --debug
     sleep 120
     check_status
+    # seeing issue related to number of open files.
+    count=`juju status nodes --format=short | grep nodes | wc -l`
+    c=0
+    while [ $c -lt $count ]; do
+        juju ssh nodes/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
+        juju ssh nodes-compute/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
+        juju ssh nodes/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
+        juju ssh nodes-compute/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
+        let c+=1
+    done
 fi
 
 #lets gather the status of deployment once juju-deployer completed.
 juju status --format=tabular
-
-# seeing issue related to number of open files.
-count=`juju status nodes --format=short | grep nodes | wc -l`
-c=0
-while [ $c -lt $count ]; do
-    juju ssh nodes/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
-    juju ssh nodes-compute/$c 'echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p' || true
-    juju ssh nodes/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
-    juju ssh nodes-compute/$c 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' || true
-    let c+=1
-done
-