diff --git a/devstack-vm-gate.sh b/devstack-vm-gate.sh index 19be8d4c..a071601b 100755 --- a/devstack-vm-gate.sh +++ b/devstack-vm-gate.sh @@ -61,8 +61,31 @@ function setup_ssh { } function setup_multinode_connectivity { + local mode=${1:-"devstack"} + # Multinode setup variables: + # + # ``localrc`` - location to write localrc content on the primary + # node. In grenade mode we write to the grenade template that is + # copied into old and new. + # + # ``old_or_new`` - should the subnodes be computed on the old side + # or new side. For grenade where we don't upgrade them, calculate + # on the old side. + local localrc=$BASE/new/devstack/localrc + local old_or_new="new" + if [[ "$mode" == "grenade" ]]; then + localrc=$BASE/new/grenade/devstack.localrc + old_or_new="old" + fi + # set explicit paths on all conf files we're writing so that + # current working directory doesn't introduce subtle bugs. + local devstack_dir=$BASE/$old_or_new/devstack + local sub_localrc=$devstack_dir/sub_localrc + local localconf=$devstack_dir/local.conf + set -x # for now enabling debug and do not turn it off - setup_localrc "new" "sub_localrc" "sub" + setup_localrc $old_or_new "$sub_localrc" "sub" + PRIMARY_NODE=`cat /etc/nodepool/primary_node_private` SUB_NODES=`cat /etc/nodepool/sub_nodes_private` if [[ "$DEVSTACK_GATE_NEUTRON" -ne '1' ]]; then @@ -72,12 +95,12 @@ function setup_multinode_connectivity { $SUB_NODES ovs_gre_bridge "br_flat" $PRIMARY_NODE "False" 128 \ $SUB_NODES - cat <>"$BASE/new/devstack/sub_localrc" + cat <>"$sub_localrc" FLAT_INTERFACE=br_flat PUBLIC_INTERFACE=br_pub MULTI_HOST=True EOF - cat <>"$BASE/new/devstack/localrc" + cat <>"$localrc" FLAT_INTERFACE=br_flat PUBLIC_INTERFACE=br_pub MULTI_HOST=True @@ -104,17 +127,18 @@ EOF # set up ssh_known_host files based on hostname for HOSTNAME in `cat /tmp/tmp_hosts | cut -d' ' -f2`; do ssh-keyscan $HOSTNAME >> /tmp/tmp_ssh_known_hosts - done + done + $ANSIBLE all --sudo -f 5 -i "$WORKSPACE/inventory" -m copy \ -a "src=/tmp/tmp_ssh_known_hosts dest=/etc/ssh/ssh_known_hosts mode=0444" for NODE in $SUB_NODES; do remote_copy_file /tmp/tmp_hosts $NODE:/tmp/tmp_hosts remote_command $NODE "cat /tmp/tmp_hosts | sudo tee --append /etc/hosts > /dev/null" - cp sub_localrc /tmp/tmp_sub_localrc + cp $sub_localrc /tmp/tmp_sub_localrc echo "HOST_IP=$NODE" >> /tmp/tmp_sub_localrc - remote_copy_file /tmp/tmp_sub_localrc $NODE:$BASE/new/devstack/localrc - remote_copy_file local.conf $NODE:$BASE/new/devstack/local.conf + remote_copy_file /tmp/tmp_sub_localrc $NODE:$devstack_dir/localrc + remote_copy_file $localconf $NODE:$localconf done } @@ -542,14 +566,35 @@ EOF echo "$GRENADE_PLUGINRC" >>$BASE/new/grenade/pluginrc fi + if [[ "$DEVSTACK_GATE_TOPOLOGY" == "multinode" ]]; then + echo -e "[[post-config|\$NOVA_CONF]]\n[libvirt]\ncpu_mode=custom\ncpu_model=gate64" >> local.conf + # this pins everything to the rpc version of the stable side + echo -e "[upgrade_levels]\ncompute=$(basename $GRENADE_OLD_BRANCH)" >> local.conf + # get this in our base config + cp local.conf $BASE/old/devstack + + setup_multinode_connectivity "grenade" + + # build the post-stack.sh config, this will be run as stack user so no sudo required + cat > $BASE/new/grenade/post-stack.sh <