;;
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
#update source if trusty is target distribution
var=os-$opnfvsdn-$fea-$opnfvtype"-"$opnfvdistro"_"$openstack
- if [ "$osdomname" != "None" ]; then
+ if ([ $osdomname ] && [ $osdomname != "null" ] && [ $osdomname != "None"]); then
var=$var"_"publicapi
fi
else
done
fi
+if [ "$opnfvsdn" = "ocl" ]
+then
+ ROLES="contrail-controller contrail-analytics contrail-analyticsdb"
+ TAG="ubuntu16.04-4.0.0.0-20.tar.gz"
+
+ for ROLE in $ROLES
+ 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
NODE_ARCTYPE=`arch`
NODE_ARC="amd64/generic"
+NODE_ARCHES="amd64"
if [ "x86_64" == "$NODE_ARCTYPE" ]; then
NODE_ARC="amd64/generic"
elif [ "ppc64le" == "$NODE_ARCTYPE" ]; then
NODE_ARC='ppc64el'
+elif [ "aarch64" == "$NODE_ARCTYPE" ]; then
+ NODE_ARC="arm64/generic"
+ NODE_ARCHES="arm64"
else
NODE_ARC=$NODE_ARCTYPE
fi
MAAS_IP=$(grep " ip_address" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //')
MAAS_NAME=`grep "maas_name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
-API_SERVER="http://$MAAS_IP/MAAS/api/2.0"
-API_SERVERMAAS="http://$MAAS_IP/MAAS/"
+API_SERVER="http://$MAAS_IP:5240/MAAS/api/2.0"
+API_SERVERMAAS="http://$MAAS_IP:5240/MAAS/"
PROFILE=ubuntu
MY_UPSTREAM_DNS=`grep "upstream_dns" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'`
SSH_KEY=`cat ~/.ssh/id_rsa.pub`
#
configuremaas(){
#reconfigure maas with correct MAAS address.
- #Below code is needed as MAAS have issue in commisoning without restart.
+ #Below code is needed as MAAS have issue in commissioning without restart.
#sudo ./maas-reconfigure-region.sh $MAAS_IP
sleep 30
sudo maas-rack config --region-url http://$MAAS_IP:5240/MAAS
maas $PROFILE boot-source update $SOURCE_ID \
url=$URL keyring_filename=$KEYRING_FILE || true
+ if [ $NODE_ARCTYPE != "x86_64" ] ; then
+ maas $PROFILE boot-source-selection update 1 1 arches="$NODE_ARCHES"
+ fi
+
maas $PROFILE boot-resources import || true
while [ "$(maas $PROFILE boot-resources is-importing)" == "true" ];
fi
fi
if ([ $type == "admin" ]); then
- # If we have a network, we create it
+ # If we have a network, we create it
if ([ $NET_FABRIC_ID ]); then
# Set ranges
SUBNET_PREFIX=${SPACE_CIDR::-5}
echo_info "Creating and adding bootstrap node"
- virt-install --connect $VIRSHURL --name bootstrap --ram 4098 --cpu host --vcpus 2 --video \
- cirrus --disk size=20,format=qcow2,bus=virtio,cache=directsync,io=native,pool=default \
+ virt-install --connect $VIRSHURL --name bootstrap --ram 4098 --cpu host --vcpus 2 \
+ --disk size=20,format=qcow2,bus=virtio,cache=directsync,io=native,pool=default \
$netw --boot network,hd,menu=off --noautoconsole \
- --vnc --print-xml | tee bootstrap
+ --print-xml | tee bootstrap
if [ "$virtinstall" -eq 1 ]; then
bootstrapmac=`grep "mac address" bootstrap | head -1 | cut -d '"' -f 2`
virt-install --connect $VIRSHURL --name $NODE_NAME --ram 8192 --cpu host --vcpus 4 \
--disk size=120,format=qcow2,bus=virtio,cache=directsync,io=native,pool=default \
- $netw $netw --boot network,hd,menu=off --noautoconsole --vnc --print-xml | tee $NODE_NAME
+ $netw $netw --boot network,hd,menu=off --noautoconsole --print-xml | tee $NODE_NAME
nodemac=`grep "mac address" $NODE_NAME | head -1 | cut -d '"' -f 2`
virsh -c $VIRSHURL define --file $NODE_NAME
NODE_ARC="amd64/generic"
elif [ "ppc64le" == "$NODE_ARCTYPE" ]; then
NODE_ARC='ppc64el'
+ elif [ "aarch64" == "$NODE_ARCTYPE" ]; then
+ NODE_ARC="arm64/generic"
else
NODE_ARC=$NODE_ARCTYPE
fi
echo " Cleanup Started ..."
#use the below commands if you needs to delete the virtual machine
-# also along with envuronment destroy.
+# also along with environment destroy.
./clean.sh
vm_list=$(sudo virsh list --all)
do
echo "$vm_list" | grep -q " $vm " || continue
sudo virsh destroy $vm
- sudo virsh undefine $vm
+ sudo virsh undefine --nvram $vm
sudo rm -f /var/lib/libvirt/images/${vm}.qcow2
done
{% endfor %}
{% else %}
- "lxd:nodes/0"
- - "lxd:nodes/0"
- - "lxd:nodes/0"
+ - "lxd:nodes/1"
+ - "lxd:nodes/2"
{% endif %}
{% endif %}
ceph-osd:
{% set netdata_prefix = opnfv.spaces_dict.data.cidr[:-4] %}
dataNetwork: {{ opnfv.spaces_dict.data.cidr }}
{% endif %}
+{% if lab.racks[0].osdomainname is defined %}
domain: {{ lab.racks[0].osdomainname }}
+ os-domain-name: {{ lab.racks[0].osdomainname }}
+{% endif %}
ext-port: {{ lab.racks[0]['ext-port'] }}
ext_port: {{ lab.racks[0]['ext-port'] }}
floating-ip-range: {{ lab.racks[0]['floating-ip-range'] }}
interface-enable: {{ lab.racks[0].ifnamelist }}
- os-domain-name: {{ lab.racks[0].osdomainname }}
{% if opnfv.spaces_dict.public is defined %}
{% set netpublic_prefix = opnfv.spaces_dict.public.cidr[:-4] %}
publicNetwork: {{ opnfv.spaces_dict.public.cidr }}
set -ex
-#need to put mutiple cases here where decide this bundle to deploy by default use the odl bundle.
+#need to put multiple cases here where decide this bundle to deploy by default use the odl bundle.
# Below parameters are the default and we can according the release
opnfvsdn=nosdn
opnfvdistro=xenial
opnfvarch=amd64
opnfvmodel=openstack
+virtinstall=0
jujuver=`juju --version`
[-d <trusty|xenial>]
[-a <amd64>]
[-m <openstack|kubernetes>]
+ [-i <0|1>]
[-r <a|b>]" 1>&2 exit 1; }
-while getopts ":s:t:o:l:h:r:f:d:a:m:" opt; do
+while getopts ":s:t:o:l:h:r:f:d:a:m:i:" opt; do
case "${opt}" in
s)
opnfvsdn=${OPTARG}
m)
opnfvmodel=${OPTARG}
;;
+ i)
+ virtinstall=${OPTARG}
+ ;;
h)
usage
;;
echo " MAAS not deployed please deploy MAAS first."
fi
fi
-#create json file which is missing in case of new deployment after maas and git tree cloned freshly.
+ #create json file which is missing in case of new deployment after maas and git tree cloned freshly.
python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < labconfig.yaml > labconfig.json
python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < deployconfig.yaml > deployconfig.json
retval=0
timeoutiter=0
- echo -n "executing the reltionship within charms ."
+ echo -n "executing the relationship within charms ."
while [ $retval -eq 0 ]; do
if juju status | grep -q $waitstatus; then
echo -n '.'
echo "...... deployment finishing ......."
}
+# In the case of a virtual deployment
+if [ "$virtinstall" -eq 1 ]; then
+ ./clean.sh || true
+fi
+
echo "...... deployment started ......"
deploy
if ([ $opnfvmodel == "openstack" ]); then
./openstack.sh "$opnfvsdn" "$opnfvlab" "$opnfvdistro" "$openstack" || true
- # creating heat domain after puching the public API into /etc/hosts
+ # creating heat domain after pushing the public API into /etc/hosts
if [[ "$jujuver" > "2" ]]; then
status=`juju run-action heat/0 domain-setup`
echo $status
EOF
}
-if [ "$API_FQDN" != "None" ]; then
+if ([ $API_FQDN ] && [ $API_FQDN != "null" ] && [ $API_FQDN != "None"]); then
# Push api fqdn local ip to all /etc/hosts
if [[ "$jujuver" < "2" ]]; then
API_FQDN=$(juju get keystone | python -c "import yaml; import sys;\
fi"
# remove this enhancement for heat that does not manage endpoints
- juju run --service=heat "cp /etc/hosts /tmp/hosts ; \
+ juju run --application=heat "cp /etc/hosts /tmp/hosts ; \
grep -v $API_FQDN /tmp/hosts > /etc/hosts"
#change in jumphost as well as below commands will run on jumphost
nics:
- ifname: intf100
spaces: [admin]
- mac: ["24:8a:07:3f:95:b6"]
+ mac: ["24:8a:07:3f:84:c4"]
- ifname: intf101
spaces: [floating]
- mac: ["24:8a:07:3f:95:b7"]
+ mac: ["24:8a:07:3f:84:c5"]
power:
type: ipmi
address: 192.0.5.127
address: 192.0.5.129
user: USERID
pass: PASSW0RD
- floating-ip-range: 172.21.159.6,172.21.159.100,172.21.159.1,172.21.159.0/24
- ext-port: "br-intf101"
+ floating-ip-range: 172.21.159.6,172.21.159.100,172.21.159.5,172.21.159.0/24
+ ext-port: "intf101"
dns: 8.8.8.8
osdomainname:
opnfv: