added support for maas deployment for juniper lab.
[joid.git] / ci / deploy.sh
1 #!/bin/bash
2
3 set -ex
4
5 #need to put mutiple cases here where decide this bundle to deploy by default use the odl bundle.
6 # Below parameters are the default and we can according the release
7
8 opnfvsdn=nosdn
9 opnfvtype=nonha
10 openstack=liberty
11 opnfvlab=default
12 opnfvrel=b
13
14 read_config() {
15     opnfvrel=`grep release: deploy.yaml | cut -d ":" -f2`
16     openstack=`grep openstack: deploy.yaml | cut -d ":" -f2`
17     opnfvtype=`grep type: deploy.yaml | cut -d ":" -f2`
18     opnfvlab=`grep lab: deploy.yaml | cut -d ":" -f2`
19     opnfvsdn=`grep sdn: deploy.yaml | cut -d ":" -f2`
20 }
21
22 usage() { echo "Usage: $0 [-s <nosdn|odl|opencontrail>]
23                          [-t <nonha|ha|tip>] 
24                          [-o <juno|liberty>]
25                          [-l <default|intelpod5>]
26                          [-r <a|b>]" 1>&2 exit 1; } 
27
28 while getopts ":s:t:o:l:h:r:" opt; do
29     case "${opt}" in
30         s)
31             opnfvsdn=${OPTARG}
32             ;;
33         t)
34             opnfvtype=${OPTARG}
35             ;;
36         o)
37             openstack=${OPTARG}
38             ;;
39         l)
40             opnfvlab=${OPTARG}
41             ;;
42         r)
43             opnfvrel=${OPTARG}
44             ;;
45         h)
46             usage
47             ;;
48         *)
49             ;;
50     esac
51 done
52
53 deploy_dep() {
54     sudo apt-add-repository ppa:juju/stable -y
55     sudo apt-get update
56     sudo apt-get install juju git juju-deployer -y
57     juju init -f
58     cp environments.yaml ~/.juju/
59 }
60
61 deploy() {
62     #copy the script which needs to get deployed as part of ofnfv release
63     echo "...... deploying now ......"
64     echo "   " >> environments.yaml
65     echo "        enable-os-refresh-update: false" >> environments.yaml
66     echo "        enable-os-upgrade: false" >> environments.yaml
67     echo "        admin-secret: admin" >> environments.yaml
68     echo "        default-series: trusty" >> environments.yaml
69
70     cp environments.yaml ~/.juju/
71
72     cp ./$opnfvsdn/01-deploybundle.sh ./01-deploybundle.sh
73     ./00-bootstrap.sh
74
75     #case default:
76     ./01-deploybundle.sh $opnfvtype $openstack $opnfvlab
77 }
78
79 check_status() {
80     while [ $? -eq 0 ]; do
81        sleep 60
82        echo " still executing the reltionship within charms ..."
83        juju status | grep executing > /dev/null
84     done
85     echo "...... deployment finishing ......."
86 }
87
88 configOpenrc()
89 {
90     echo"  " > ./cloud/admin-openrc
91     echo  "export OS_USERNAME=$1" >> ./cloud/admin-openrc 
92     echo  "export OS_PASSWORD=$2" >> ./cloud/admin-openrc
93     echo  "export OS_TENANT_NAME=$3" >> ./cloud/admin-openrc
94     echo  "export OS_AUTH_URL=$4" >> ./cloud/admin-openrc
95     echo  "export OS_REGION_NAME=$5" >> ./cloud/admin-openrc
96  }
97
98 unitAddress()
99 {
100     juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null
101 }
102
103 createopenrc()
104 {
105     mkdir -m 0700 -p cloud
106
107     controller_address=$(unitAddress keystone 0)
108     configOpenrc admin openstack admin http://$controller_address:5000/v2.0 Canonical 
109     chmod 0600 cloud/admin-openrc
110 }
111
112 if [ "$#" -eq 0 ]; then
113   echo "This installtion will use deploy.yaml" 
114   read_config
115 fi
116
117 echo "...... deployment started ......"
118 #deploy_dep
119 deploy
120 check_status
121 echo "...... deployment finished  ......."
122
123 echo "...... creating OpenRc file for consuming by various user ......."
124
125 createopenrc
126
127 echo "...... finished  ......."
128
129