X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2F02-deploybundle.sh;h=396f5ea9924654ee8a9930408b5288a466d3f231;hb=61607ce57ddb99245d8e6485022cd9cf5ac5cbde;hp=ad7c6ff1fde7018576178d750c6ec873ee9d189f;hpb=501abc68e6a974d7e5dd480233bf44a2f20fc0b3;p=joid.git diff --git a/ci/02-deploybundle.sh b/ci/02-deploybundle.sh index ad7c6ff1..396f5ea9 100755 --- a/ci/02-deploybundle.sh +++ b/ci/02-deploybundle.sh @@ -10,53 +10,80 @@ opnfvlab=$3 opnfvsdn=$4 opnfvfeature=$5 opnfvdistro=$6 - -#copy and download charms -cp $opnfvsdn/fetch-charms.sh ./fetch-charms.sh +opnfvmodel=$7 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 + #copy and download charms + ./$opnfvsdn/fetch-charms.sh $opnfvdistro + osdomname='' +else + ./kubernetes/fetch-charms.sh $opnfvdistro +fi #check whether charms are still executing the code even juju-deployer says installed. check_status() { + waitstatus=$1 retval=0 timeoutiter=0 + + echo -n "executing the reltionship within charms ." while [ $retval -eq 0 ]; do - sleep 30 - juju status > status.txt - if [ "$(grep -c "waiting" status.txt )" -ge 4 ]; then - echo " still waiting for machines ..." - if [ $timeoutiter -ge 240 ]; then + if juju status | grep -q $waitstatus; then + echo -n '.' + if [ $timeoutiter -ge 180 ]; then + echo 'timed out' retval=1 + else + sleep 30 fi timeoutiter=$((timeoutiter+1)) else + echo 'done' retval=1 fi done echo "...... deployment finishing ......." } -#read the value from deployment.yaml +#read the value from deployconfig.yaml + +PROFILE=maas +MAAS_IP=$(grep " ip_address" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //') +API_SERVERMAAS="http://$MAAS_IP:5240/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 [ -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 [[ "$API_KEY" = "" ]]; then + if [[ "$maasver" > "2" ]]; then + API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region apikey --username=ubuntu'` + else + API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region-admin apikey --username=ubuntu'` + fi +fi - workmutiple=`maas maas nodes list | grep "cpu_count" | cut -d ':' -f 2 | sed -e 's/ //' | tr ',' ' '` +maas login $PROFILE $API_SERVERMAAS $API_KEY + +if [[ "$opnfvmodel" = "openstack" ]]; 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; @@ -64,7 +91,7 @@ if [ -e ./deployment.yaml ]; then echo $max if [ "$max" -lt 4 ];then - workmutiple=1.0 + workmutiple=1.1 elif [ "$max" -lt 33 ]; then workmutiple=0.25 elif [ "$max" -lt 73 ]; then @@ -73,6 +100,12 @@ if [ -e ./deployment.yaml ]; then workmutiple=0.05 fi sed -i "s/worker_multiplier: 1.0/worker_multiplier: ${workmutiple}/g" default_deployment_config.yaml + + if [ "$opnfvlab" != "default" ]; then + sed -i "s/cpu_pin_set: all/cpu_pin_set: 2-${max},^${max}/g" default_deployment_config.yaml + else + sed -i "s/cpu_pin_set: all/cpu_pin_set: 1/g" default_deployment_config.yaml + fi fi case "$opnfvlab" in @@ -85,7 +118,7 @@ case "$opnfvlab" in ;; esac -# lets put the if seperateor as "," as this will save me from world. +# lets put the if separator as "," as this will save me from world. fea="" IFS="," for feature in $opnfvfeature; do @@ -96,39 +129,57 @@ 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 +else + var=k8-$opnfvsdn-$fea-baremetal-core +fi + +if [[ "$opnfvmodel" = "openstack" ]]; then + #lets generate the bundle for all target using genBundle.py + 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 -#lets generate the bundle for all target using genBundle.py -python genBundle.py -l deployconfig.yaml -s $var > bundles.yaml #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" -else - # with JUJU 2.0 bundles has to be deployed only once. - juju deploy bundles.yaml --debug - sleep 120 - check_status -fi +# with JUJU 2.0 bundles has to be deployed only once. +juju deploy bundles.yaml --debug +sleep 120 +check_status allocating + +# need to revisit later if not needed we will remove the below. +openfile_fix() { + # 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 +} +if [ "$opnfvsdn" = "ocl" ] +then + TAG="ubuntu16.04-4.0.0.0-20.tar.gz" + + for ROLE in contrail-controller contrail-analytics contrail-analyticsdb + do + FILE="${ROLE}-${TAG}" + if [ ! -f $FILE ] + then + curl -o $FILE http://artifacts.opnfv.org/ovno/containers/$FILE + fi + juju attach $ROLE ${ROLE}="./$FILE" +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 -