diff --git a/elements/instack-vm/extra-data.d/50-add-instack-files b/elements/instack-vm/extra-data.d/50-add-instack-files index e9c39e335..e7d63bbd8 100755 --- a/elements/instack-vm/extra-data.d/50-add-instack-files +++ b/elements/instack-vm/extra-data.d/50-add-instack-files @@ -14,8 +14,7 @@ file_list="$HOME/.ssh/id_rsa_virt_power $HOME/.ssh/id_rsa_virt_power.pub /tmp/deploy-virt-overcloudrc $ANSWERSFILE -$TE_DATAFILE -nodes.json" +$TE_DATAFILE" for f in $file_list; do cp "$f" "$TMP_HOOKS_PATH" diff --git a/scripts/instack-ironic-deployment b/scripts/instack-ironic-deployment index d8cd1a357..397339e9f 100755 --- a/scripts/instack-ironic-deployment +++ b/scripts/instack-ironic-deployment @@ -24,6 +24,8 @@ function show_options () { echo " --discover-nodes -- Perform discovery of registered nodes." echo " Powers on registered nodes to complete" echo " the discovery process." + echo " --setup-flavors -- Setup Nova flavors to match discovered" + echo " profiles" echo " --deploy-nodes -- Deploy nodes" echo " -x -- enable tracing" echo " --help, -h -- Print this help message." @@ -31,7 +33,7 @@ function show_options () { exit $1 } -TEMP=$(getopt -o ,h -l,register-nodes,nodes-json:,discover-nodes,deploy-nodes,help -o,x,h -n $SCRIPT_NAME -- "$@") +TEMP=$(getopt -o ,h -l,register-nodes,nodes-json:,discover-nodes,deploy-nodes,help,setup-flavors -o,x,h -n $SCRIPT_NAME -- "$@") if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi # Note the quotes around `$TEMP': they are essential! @@ -41,6 +43,8 @@ REGISTER_NODES= NODES_JSON= DISCOVER_NODES= DEPLOY_NODES= +SETUP_FLAVORS= +STDERR=/dev/null while true ; do case "$1" in @@ -48,7 +52,8 @@ while true ; do --nodes-json) NODES_JSON="$2"; shift 2;; --discover-nodes) DISCOVER_NODES="1"; shift 1;; --deploy-nodes) DEPLOY_NODES="1"; shift 1;; - -x) set -x; shift 1;; + --setup-flavors) SETUP_FLAVORS="1"; shift 1;; + -x) set -x; STDERR=/dev/stderr; shift 1;; -h | --help) show_options 0;; --) shift ; break ;; *) echo "Error: unsupported option $1." ; exit 1 ;; @@ -57,8 +62,17 @@ done function register_nodes { NODES_JSON=${NODES_JSON:-"nodes.json"} + NULL_STATS=${NULL_STATS:-0} + tmp_json=$NODES_JSON + if [ "$NULL_STATS" = "1" ]; then + tmp_json=$(mktemp) + jq '.nodes[].memory=null | .nodes[].disk=null | .nodes[].arch=null | .nodes[].cpu=null' $NODES_JSON > $tmp_json + fi echo " Registering nodes from $NODES_JSON" - register-nodes --service-host undercloud --nodes <(jq '.nodes' $NODES_JSON) 1>/dev/null + register-nodes --service-host undercloud --nodes <(jq '.nodes' $tmp_json) 1>/dev/null + if [ "$NULL_STATS" = "1" ]; then + rm -f $tmp_json + fi echo " Nodes registered." echo ironic node-list @@ -112,6 +126,47 @@ function deploy_nodes { echo } +function setup_flavors { + if ! nova flavor-show baremetal_control 2>$STDERR 1>/dev/null; then + echo " Creating baremetal_control flavor ... " + nova flavor-create baremetal_control auto 2048 40 1 + else + echo " baremetal_control flavor already exists." + fi + + if ! nova flavor-show baremetal_compute 2>$STDERR 1>/dev/null; then + echo " Creating baremetal_compute flavor ... " + nova flavor-create baremetal_compute auto 4096 40 1 + else + echo " baremetal_compute flavor already exists." + fi + + deploy_kernel_id=$(glance image-show bm-deploy-kernel | awk ' / id / {print $4}') + deploy_ramdisk_id=$(glance image-show bm-deploy-ramdisk | awk ' / id / {print $4}') + + echo + nova flavor-list + echo + + echo " Setting baremetal_control flavor keys ... " + nova flavor-key baremetal_control set \ + "cpu_arch"="x86_64" \ + "baremetal:deploy_kernel_id"="$deploy_kernel_id" \ + "baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id" \ + "baremetal:localboot"="true" \ + "profile=control" + nova flavor-show baremetal_control + + echo " Setting baremetal_compute flavor keys ... " + nova flavor-key baremetal_compute set \ + "cpu_arch"="x86_64" \ + "baremetal:deploy_kernel_id"="$deploy_kernel_id" \ + "baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id" \ + "baremetal:localboot"="true" \ + "profile=compute" + nova flavor-show baremetal_compute +} + echo "Preparing for deployment..." if [ "$REGISTER_NODES" = 1 ]; then @@ -122,6 +177,10 @@ if [ "$DISCOVER_NODES" = 1 ]; then discover_nodes fi +if [ "$SETUP_FLAVORS" = 1 ]; then + setup_flavors +fi + echo "Prepared." if [ "$DEPLOY_NODES" = 1 ]; then diff --git a/scripts/instack-prepare-for-overcloud b/scripts/instack-prepare-for-overcloud index 999a6fc63..e9ced9b78 100755 --- a/scripts/instack-prepare-for-overcloud +++ b/scripts/instack-prepare-for-overcloud @@ -50,14 +50,6 @@ if ! nova flavor-show baremetal 2>&1 1>/dev/null; then nova flavor-create baremetal auto 4096 40 1 fi -if ! nova flavor-show baremetal_control 2>&1 1>/dev/null; then - nova flavor-create baremetal_control auto 2048 40 1 -fi - -if ! nova flavor-show baremetal_compute 2>&1 1>/dev/null; then - nova flavor-create baremetal_compute auto 4096 40 1 -fi - deploy_kernel_id=$(glance image-show bm-deploy-kernel | awk ' / id / {print $4}') deploy_ramdisk_id=$(glance image-show bm-deploy-ramdisk | awk ' / id / {print $4}') @@ -67,19 +59,5 @@ nova flavor-key baremetal set \ "baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id" \ "baremetal:localboot"="true" -nova flavor-key baremetal_control set \ - "cpu_arch"="x86_64" \ - "baremetal:deploy_kernel_id"="$deploy_kernel_id" \ - "baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id" \ - "baremetal:localboot"="true" \ - "profile=control" - -nova flavor-key baremetal_compute set \ - "cpu_arch"="x86_64" \ - "baremetal:deploy_kernel_id"="$deploy_kernel_id" \ - "baremetal:deploy_ramdisk_id"="$deploy_ramdisk_id" \ - "baremetal:localboot"="true" \ - "profile=compute" - sudo cp -f "$IMAGE_PATH/$DISCOVERY_NAME.kernel" "$TFTP_ROOT/discovery.kernel" sudo cp -f "$IMAGE_PATH/$DISCOVERY_NAME.initramfs" "$TFTP_ROOT/discovery.ramdisk" diff --git a/scripts/instack-virt-setup b/scripts/instack-virt-setup index 2b68a551e..342704f31 100755 --- a/scripts/instack-virt-setup +++ b/scripts/instack-virt-setup @@ -34,13 +34,6 @@ source $DEVTEST_VARIABLES export TE_DATAFILE=instackenv.json tripleo devtest_testenv.sh $TE_DATAFILE -# Reconfigure 2 of the vm's to only have 2 GB of ram. -virsh setmem --config baremetal_2 2097152 -virsh setmem --config baremetal_3 2097152 -virsh setmaxmem --config baremetal_2 2097152 -virsh setmaxmem --config baremetal_3 2097152 -jq '.nodes[].memory=null | .nodes[].disk=null | .nodes[].arch=null | .nodes[].cpu=null' $TE_DATAFILE > nodes.json - sudo virsh undefine --remove-all-storage seed MACS=$(for i in $(seq 0 3); do echo -n $(tripleo get-vm-mac baremetal_$i)" "; done)