X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2F02-deploybundle.sh;h=df669a889b64e8a20e766e76ab5fd684f712b331;hb=be17d3ee1982a8b943fb70aa7b01bc472e9221bb;hp=4b537c242c37eec207b0259247fbb31cd7e69f82;hpb=95e9f8b963e5d33fd219c2bc71e5d527661abbf8;p=joid.git diff --git a/ci/02-deploybundle.sh b/ci/02-deploybundle.sh index 4b537c24..df669a88 100755 --- a/ci/02-deploybundle.sh +++ b/ci/02-deploybundle.sh @@ -10,50 +10,65 @@ opnfvlab=$3 opnfvsdn=$4 opnfvfeature=$5 opnfvdistro=$6 - -#copy and download charms -cp $opnfvsdn/fetch-charms.sh ./fetch-charms.sh - -#modify the ubuntu series wants to deploy -sed -i -- "s|distro=trusty|distro=$opnfvdistro|g" ./fetch-charms.sh - -./fetch-charms.sh $opnfvdistro - -osdomname='' +opnfvmodel=$7 + +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 + waittime=$2 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 "executing" status.txt )" -ge 2 ]; then - echo " still executing the reltionship within charms ..." - if [ $timeoutiter -ge 60 ]; then + if juju status | grep -q $waitstatus; then + echo -n '.' + if [ $timeoutiter -ge $waittime ]; 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 -if [ -e ~/.juju/deployment.yaml ]; then - cp ~/.juju/deployment.yaml ./deployment.yaml - if [ -e ~/.juju/deployconfig.yaml ]; then - cp ~/.juju/deployconfig.yaml ./deployconfig.yaml - 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 ',' ' '` +#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/" +API_KEY=`sudo maas-region apikey --username=ubuntu || true` + +if [[ "$API_KEY" = "" ]]; then + API_KEY=`sshpass -p ubuntu ssh ubuntu@$MAAS_IP 'sudo maas-region apikey --username=ubuntu'` +fi + +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/ //'` + cephdisk=`grep "ceph-disk" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` + admnet=`grep "admNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'` + osdomname=`grep "os-domain-name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` + fi + + workmutiple=`maas maas nodes read | 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; @@ -61,7 +76,7 @@ if [ -e ~/.juju/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 @@ -69,7 +84,15 @@ if [ -e ~/.juju/deployment.yaml ]; then else workmutiple=0.05 fi - sed -i "s/worker_multiplier: 1/worker_multiplier: ${workmutiple}/g" default_deployment_config.yaml + 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 +else + cephdisk=`grep "ceph-disk" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` fi case "$opnfvlab" in @@ -82,7 +105,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 @@ -93,31 +116,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 -#lets generate the bundle for all target using genBundle.py -python genBundle.py -l deployconfig.yaml -s $var > bundles.yaml - -echo "... Deployment Started ...." -juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack"-nodes - -# seeing issue related to number of open files. -# juju run --service nodes 'echo 2048 | sudo tee /proc/sys/fs/inotify/max_user_instances' +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 -count=`juju status nodes --format=short | grep nodes | wc -l` +#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 720 +check_status allocating 220 + +# 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 +} -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 +if [ "$opnfvsdn" = "ocl" ] +then + TAG="ubuntu16.04-4.0.2.0-34.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 - -juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$openstack" || true +fi +#lets gather the status of deployment once juju-deployer completed. +juju status --format=tabular