Adds HA support to deploy 27/2927/6
authorTim Rozet <trozet@redhat.com>
Wed, 28 Oct 2015 19:17:20 +0000 (15:17 -0400)
committerTim Rozet <trozet@redhat.com>
Mon, 2 Nov 2015 21:18:29 +0000 (16:18 -0500)
Defaults the deploy to use HA and adds new param for using
non-HA.

JIRA: APEX-40

Change-Id: Ib3fc8b31ea13a3c590ceaa875197b4b9c1bb55a1
Signed-off-by: Tim Rozet <trozet@redhat.com>
build/Makefile
build/instack.sh
build/opnfv-apex.spec
ci/clean.sh
ci/deploy.sh

index 2c7e3e2..fa89ee8 100644 (file)
@@ -101,12 +101,11 @@ rpm:
        pushd ../ && git archive --format=tar --prefix=opnfv-apex-$(RPMVERS)/ HEAD > build/opnfv-apex.tar
        tar -u --xform="s:instack.qcow2:opnfv-apex-$(RPMVERS)/build/instack.qcow2:" --file=opnfv-apex.tar instack.qcow2
        tar -u --xform="s:instack.xml:opnfv-apex-$(RPMVERS)/build/instack.xml:" --file=opnfv-apex.tar instack.xml
-       qemu-img create -f qcow2 baremetalbrbm_0.qcow2 40G
-       tar -u --xform="s:baremetalbrbm_0.qcow2:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_0.qcow2:" --file=opnfv-apex.tar baremetalbrbm_0.qcow2
        tar -u --xform="s:baremetalbrbm_0.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_0.xml:" --file=opnfv-apex.tar baremetalbrbm_0.xml
-       qemu-img create -f qcow2 baremetalbrbm_1.qcow2 40G
-       tar -u --xform="s:baremetalbrbm_1.qcow2:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_1.qcow2:" --file=opnfv-apex.tar baremetalbrbm_1.qcow2
        tar -u --xform="s:baremetalbrbm_1.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_1.xml:" --file=opnfv-apex.tar baremetalbrbm_1.xml
+       tar -u --xform="s:baremetalbrbm_2.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_2.xml:" --file=opnfv-apex.tar baremetalbrbm_2.xml
+       tar -u --xform="s:baremetalbrbm_3.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_3.xml:" --file=opnfv-apex.tar baremetalbrbm_3.xml
+       tar -u --xform="s:baremetalbrbm_4.xml:opnfv-apex-$(RPMVERS)/build/baremetalbrbm_4.xml:" --file=opnfv-apex.tar baremetalbrbm_4.xml
        tar -u --xform="s:brbm-net.xml:opnfv-apex-$(RPMVERS)/build/brbm-net.xml:" --file=opnfv-apex.tar brbm-net.xml
        tar -u --xform="s:default-pool.xml:opnfv-apex-$(RPMVERS)/build/default-pool.xml:" --file=opnfv-apex.tar default-pool.xml
        tar -u --xform="s:instackenv-virt.json:opnfv-apex-$(RPMVERS)/build/instackenv-virt.json:" --file=opnfv-apex.tar instackenv-virt.json
@@ -132,6 +131,9 @@ instack-clean:
        rm -f instackenv-virt.json
        rm -f baremetalbrbm_0.xml
        rm -f baremetalbrbm_1.xml
+       rm -f baremetalbrbm_2.xml
+       rm -f baremetalbrbm_3.xml
+       rm -f baremetalbrbm_4.xml
        rm -f instack.xml
        rm -f instack.qcow2
 
index c19ab0f..79a99f8 100755 (executable)
@@ -2,6 +2,7 @@
 set -e
 declare -i CNT
 
+vm_index=4
 RDO_RELEASE=kilo
 SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null)
 
@@ -80,11 +81,11 @@ ssh -T ${SSH_OPTIONS[@]} stack@localhost <<EOI
 set -e
 virsh destroy instack 2> /dev/null || echo -n ''
 virsh undefine instack --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_0 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_1 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n ''
-NODE_CPU=2 NODE_MEM=8192 instack-virt-setup
+for i in \$(seq 0 $vm_index); do
+  virsh destroy baremetalbrbm_\$i 2> /dev/null || echo -n ''
+  virsh undefine baremetalbrbm_\$i --remove-all-storage 2> /dev/null || echo -n ''
+done
+NODE_COUNT=5 NODE_CPU=2 NODE_MEM=8192 instack-virt-setup
 EOI
 
 # let dhcp happen so we can get the ip
@@ -150,8 +151,10 @@ if virsh list | grep instack > /dev/null; then
 fi
 
 echo $'\nGenerating libvirt configuration'
-virsh dumpxml baremetalbrbm_0 > baremetalbrbm_0.xml
-virsh dumpxml baremetalbrbm_1 > baremetalbrbm_1.xml
+for i in \$(seq 0 $vm_index); do
+  virsh dumpxml baremetalbrbm_\$i > baremetalbrbm_\$i.xml
+done
+
 virsh dumpxml instack > instack.xml
 #virsh vol-dumpxml instack.qcow2 --pool default > instack.qcow2.xml
 virsh net-dumpxml brbm > brbm-net.xml
@@ -160,8 +163,10 @@ EOI
 
 # copy off the instack artifacts
 echo "Copying instack files to build directory"
-scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_0.xml .
-scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_1.xml .
+for i in $(seq 0 $vm_index); do
+  scp ${SSH_OPTIONS[@]} stack@localhost:baremetalbrbm_${i}.xml .
+done
+
 scp ${SSH_OPTIONS[@]} stack@localhost:instack.xml .
 scp ${SSH_OPTIONS[@]} stack@localhost:brbm-net.xml .
 scp ${SSH_OPTIONS[@]} stack@localhost:default-pool.xml .
@@ -192,9 +197,9 @@ ssh -T ${SSH_OPTIONS[@]} stack@localhost <<EOI
 set -e
 virsh destroy instack 2> /dev/null || echo -n ''
 virsh undefine instack --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_0 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_1 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n ''
+for i in \$(seq 0 $vm_index); do
+  virsh destroy baremetalbrbm_\$i 2> /dev/null || echo -n ''
+  virsh undefine baremetalbrbm_\$i --remove-all-storage 2> /dev/null || echo -n ''
+done
 EOI
 
index 5173565..641c37c 100644 (file)
@@ -32,8 +32,7 @@ mkdir -p %{buildroot}%{_var}/opt/opnfv/stack/
 
 cp build/instack.qcow2 %{buildroot}%{_var}/opt/opnfv/stack/
 cp build/instack.xml %{buildroot}%{_var}/opt/opnfv/
-cp build/baremetalbrbm_0.xml %{buildroot}%{_var}/opt/opnfv/
-cp build/baremetalbrbm_1.xml %{buildroot}%{_var}/opt/opnfv/
+cp build/baremetalbrbm_*.xml %{buildroot}%{_var}/opt/opnfv/
 cp build/brbm-net.xml %{buildroot}%{_var}/opt/opnfv/
 cp build/default-pool.xml %{buildroot}%{_var}/opt/opnfv/
 
@@ -52,8 +51,7 @@ cp build/stack/overcloud-full.vmlinuz %{buildroot}%{_var}/opt/opnfv/stack/
 %{_bindir}/opnfv-clean
 %{_var}/opt/opnfv/stack/instack.qcow2
 %{_var}/opt/opnfv/instack.xml
-%{_var}/opt/opnfv/baremetalbrbm_0.xml
-%{_var}/opt/opnfv/baremetalbrbm_1.xml
+%{_var}/opt/opnfv/baremetalbrbm_*.xml
 %{_var}/opt/opnfv/brbm-net.xml
 %{_var}/opt/opnfv/default-pool.xml
 %{_var}/opt/opnfv/instackenv-virt.json
index d9a02e4..7fad2ef 100755 (executable)
@@ -5,13 +5,13 @@
 #
 #Uses Vagrant and VirtualBox
 #
+vm_index=4
 virsh destroy instack 2> /dev/null || echo -n ''
 virsh undefine instack --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_0 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_0 --remove-all-storage 2> /dev/null || echo -n ''
-virsh destroy baremetalbrbm_1 2> /dev/null || echo -n ''
-virsh undefine baremetalbrbm_1 --remove-all-storage 2> /dev/null || echo -n ''
 
 rm -f /var/lib/libvirt/images/instack.qcow2 2> /dev/null
-rm -f /var/lib/libvirt/images/baremetalbrbm_0.qcow2 2> /dev/null
-rm -f /var/lib/libvirt/images/baremetalbrbm_1.qcow2 2> /dev/null
+for i in $(seq 0 vm_index); do
+  virsh destroy baremetalbrbm_$i 2> /dev/null || echo -n ''
+  virsh undefine baremetalbrbm_$i --remove-all-storage 2> /dev/null || echo -n ''
+  rm -f /var/lib/libvirt/images/baremetalbrbm_${i}.qcow2 2> /dev/null
+done
index 482c1bf..c707e73 100755 (executable)
@@ -24,7 +24,7 @@ set -e
 #red=`tput setaf 1`
 #green=`tput setaf 2`
 
-vm_index=1
+vm_index=4
 declare -i CNT
 declare UNDERCLOUD
 
@@ -168,9 +168,14 @@ function setup_instack_vm {
   ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "restorecon -r /home/stack"
 }
 
+##Create virtual nodes in virsh
+##params: none
 function setup_virtual_baremetal {
   for i in $(seq 0 $vm_index); do
     if ! virsh list --all | grep baremetalbrbm_${i} > /dev/null; then
+      if [ ! -e $CONFIG/baremetalbrbm_${i}.xml ]; then
+        define_virtual_node baremetalbrbm_${i}
+      fi
       virsh define $CONFIG/baremetalbrbm_${i}.xml
     else
       echo "Found Baremetal ${i} VM, using existing VM"
@@ -180,7 +185,7 @@ function setup_virtual_baremetal {
 }
 
 ##Copy over the glance images and instack json file
-##params: none 
+##params: none
 function copy_materials {
 
   scp ${SSH_OPTIONS[@]} $RESOURCES/deploy-ramdisk-ironic.initramfs "stack@$UNDERCLOUD":
@@ -232,8 +237,14 @@ ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "cat /home/stack/.ssh/id_rsa.pub" >>
 }
 
 ##preping it for deployment and launch the deploy
-##params: none 
+##params: none
 function undercloud_prep_overcloud_deploy {
+  # check if HA is enabled
+  if [ "$vm_index" -gt 1 ]; then
+     DEPLOY_OPTIONS+=" --control-scale 3 --compute-scale 2"
+     DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml"
+     DEPLOY_OPTIONS+="  --ntp-server pool.ntp.org"
+  fi
 
   ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
 source stackrc
@@ -302,6 +313,10 @@ parse_cmdline() {
                 floating_ip_count=$2
                 shift 2
             ;;
+        -n|--no_ha )
+                vm_index=1
+                shift 1
+           ;;
         *)
                 display_usage
                 exit 1