2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2016 Orange and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
16 function exit_on_error {
19 if [ $RES != 0 ]; then
26 ## Create LAB_CONFIG folder if not exists
32 ## Set Joid pod config name
41 export POD_NAME=${POD/-}
44 ## Redeploy MAAS or recover the previous config
48 if [ -e "$LAB_CONFIG/environments.yaml" ] && [ "$MAAS_REINSTALL" == "false" ]; then
49 echo "------ Recover Juju environment to use MAAS ------"
50 cp $LAB_CONFIG/environments.yaml .
51 cp $LAB_CONFIG/deployment.yaml .
52 if [ -e $LAB_CONFIG/deployconfig.yaml ]; then
53 cp $LAB_CONFIG/deployconfig.yaml .
56 echo "------ Redeploy MAAS ------"
57 ./00-maasdeploy.sh $POD_NAME
58 exit_on_error $? "MAAS Deploy FAILED"
62 ## Configure Joid deployment
65 # Based on scenario naming we can get joid options
67 # <model>-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
70 # controller=(nosdn|odl_l3|odl_l2|onos|ocl)
72 # nfvfeature=(kvm|ovs|dpdk|nofeature)
76 # Optional field - Not used today
78 IFS='-' read -r -a DEPLOY_OPTIONS <<< "${DEPLOY_SCENARIO}--"
79 #last -- need to avoid nounset error
81 JOID_MODEL=${DEPLOY_OPTIONS[0]}
82 SDN_CONTROLLER=${DEPLOY_OPTIONS[1]}
83 NFV_FEATURES=${DEPLOY_OPTIONS[2]}
84 HA_MODE=${DEPLOY_OPTIONS[3]}
85 EXTRA=${DEPLOY_OPTIONS[4]}
87 if [ "$SDN_CONTROLLER" == 'odl_l2' ] || [ "$SDN_CONTROLLER" == 'odl_l3' ]; then
90 if [ "$HA_MODE" == 'noha' ]; then
94 # Add extra to features
95 if [ "$EXTRA" != "" ];then
96 NFV_FEATURES="${NFV_FEATURES}_${EXTRA}"
99 # temporary sfc feature is availble only on onos and trusty
100 if [ "$NFV_FEATURES" == 'sfc' ] && [ "$SDN_CONTROLLER" == 'onos' ];then
105 ## Configure Joid deployment
108 if [ "$JOID_MODEL" == 'k8' ]; then
109 echo "------ Deploy with juju ------"
110 echo "Execute: ./deploy.sh -m $JOID_MODEL -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES"
112 ./deploy.sh -m kubernetes -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES
113 exit_on_error $? "Main deploy FAILED"
119 if [ "$JOID_MODEL" == 'os' ]; then
120 echo "------ Deploy with juju ------"
121 echo "Execute: ./deploy.sh -m $JOID_MODEL -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES"
123 ./deploy.sh -m openstack -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES
124 exit_on_error $? "Main deploy FAILED"
126 JOID_ADMIN_OPENRC=$LAB_CONFIG/admin-openrc
127 echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------"
130 case "$SDN_CONTROLLER" in
132 SDN_CONTROLLER_IP=$(juju status odl-controller/0 |grep public-address|sed -- 's/.*\: //')
135 SDN_CONTROLLER_IP=$(juju status onos-controller/0 |grep public-address|sed -- 's/.*\: //')
138 SDN_CONTROLLER_IP='none'
143 # export the openrc file by getting the one generated by joid and add SDN
144 # controller for Functest
145 cp ./cloud/admin-openrc $JOID_ADMIN_OPENRC
146 cat << EOF >> $JOID_ADMIN_OPENRC
147 export SDN_CONTROLLER=$SDN_CONTROLLER_IP
148 export SDN_PASSWORD=$SDN_PASSWORD
152 ## Backup local juju env
155 echo "------ Backup Juju environment ------"
156 cp environments.yaml $LAB_CONFIG/
157 cp deployment.yaml $LAB_CONFIG/
158 if [ -e deployconfig.yaml ]; then
159 cp deployconfig.yaml $LAB_CONFIG
168 echo "Deploy success"