diff --git a/scripts/te-broker/create-env b/scripts/te-broker/create-env index 534187343..de9f87308 100755 --- a/scripts/te-broker/create-env +++ b/scripts/te-broker/create-env @@ -9,10 +9,12 @@ SSH_KEY=${5:-""} # We recognize 3 values for NETISO: none, multi-nic, public-bond NETISO=${6:-'multi-nic'} COMPUTE_NODECOUNT=${7:-0} +EXTRA_NODECOUNT=${8:-0} PROVISIONNET=provision-${ENVNUM} PUBLICNET=public-${ENVNUM} ENVFILE=env-${ENVNUM}-base.yaml COMPUTE_ENVFILE=env-${ENVNUM}-compute.yaml +EXTRA_ENVFILE=env-${ENVNUM}-extra.yaml ROLE_ARGS= source /etc/nodepoolrc @@ -79,6 +81,18 @@ if [ $COMPUTE_NODECOUNT -gt 0 ]; then ROLE_ARGS="--role $COMPUTE_ENVFILE" fi +if [ $EXTRA_NODECOUNT -gt 0 ]; then + /bin/cp --remove-destination environments/base-extra-node.yaml $EXTRA_ENVFILE + sed -i -e "s/baremetal_flavor:.*/baremetal_flavor: m1.small/" $EXTRA_ENVFILE + sed -i -e "s/key_name:.*/key_name: ${KEY_NAME}/" $EXTRA_ENVFILE + sed -i -e "s/node_count:.*/node_count: ${EXTRA_NODECOUNT}/" $EXTRA_ENVFILE + # We changed the path of the environment, so we need to fix the relative + # path in the resource registry too. + sed -i -e "s|../templates/baremetal-ports-extra-node-port-security.yaml|templates/baremetal-ports-extra-node-port-security.yaml|" $EXTRA_ENVFILE + ROLE_ARGS="--role $EXTRA_ENVFILE" + BUILD_NODES_JSON_EXTRA_ARGS="$BUILD_NODES_JSON_EXTRA_ARGS --network_details" +fi + /opt/stack/openstack-virtual-baremetal/bin/deploy.py --name baremetal_${ENVNUM} --quintupleo --id ${ENVNUM} $ENVIRONMENT_ARGS $ROLE_ARGS while ! heat stack-show baremetal_${ENVNUM} | grep CREATE_COMPLETE ; do diff --git a/scripts/te-broker/destroy-env b/scripts/te-broker/destroy-env index e747805e2..f8e9f08fc 100755 --- a/scripts/te-broker/destroy-env +++ b/scripts/te-broker/destroy-env @@ -6,10 +6,12 @@ PROVISIONNET=provision-${ENVNUM} PUBLICNET=public-${ENVNUM} ENVFILE=env-${ENVNUM}-base.yaml COMPUTE_ENVFILE=env-${ENVNUM}-compute.yaml +EXTRA_ENVFILE=env-${ENVNUM}-extra.yaml rm -f /opt/stack/openstack-virtual-baremetal/$ENVFILE rm -f /opt/stack/openstack-virtual-baremetal/env-${ENVNUM}.yaml rm -f /opt/stack/openstack-virtual-baremetal/$COMPUTE_ENVFILE +rm -f /opt/stack/openstack-virtual-baremetal/$EXTRA_ENVFILE rm -f /opt/stack/openstack-virtual-baremetal/temp-key-$ENVNUM.pub source /etc/nodepoolrc @@ -63,5 +65,6 @@ function delete_stack() { } # Extra role stacks must be deleted first +delete_stack baremetal_${ENVNUM}-extra delete_stack baremetal_${ENVNUM}-compute delete_stack baremetal_${ENVNUM} diff --git a/scripts/te-broker/testenv-worker b/scripts/te-broker/testenv-worker index 05ef19a92..ad2e190ca 100755 --- a/scripts/te-broker/testenv-worker +++ b/scripts/te-broker/testenv-worker @@ -140,6 +140,7 @@ class TEWorkerThread(threading.Thread): arguments.get("ssh_key", ""), arguments.get("net_iso", "multi-nic"), arguments.get("compute_envsize","0"), + arguments.get("extra_nodes", "0"), ], stderr=subprocess.STDOUT)) clientdata = fp.read() diff --git a/testenv-client b/testenv-client index d1ca05d80..f5cbdadab 100755 --- a/testenv-client +++ b/testenv-client @@ -173,6 +173,9 @@ def main(args=sys.argv[1:]): '"public-bond" requests one like "multi-nic" ' 'but with two public nics for use with bonded ' 'nic-configs.') + parser.add_argument('--extra-nodes', default='0', + help='Number of extra undercloud-like nodes to ' + 'request') parser.add_argument('--debug', '-d', action='store_true', help='Set to debug mode.') opts = parser.parse_args(args)