Overcloud update using Tuskar
Overcloud update with Tuskar. Adding scaling parameters to overcloud deploy.
This commit is contained in:
parent
319c0c78e3
commit
0f814e6cb4
|
@ -134,6 +134,10 @@ if [ -n "$TUSKAR" ]; then
|
|||
-A swift-storage-1::NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
-A controller-1::NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES}
|
||||
-A compute-1::NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES}
|
||||
-A controller-1::count=${CONTROLSCALE}
|
||||
-A compute-1::count=${COMPUTESCALE}
|
||||
-A swift-storage-1::count=${SWIFTSTORAGESCALE}
|
||||
-A cinder-storage-1::count=${BLOCKSTORAGESCALE}
|
||||
"}
|
||||
|
||||
# These attributes can't be changed in Tuskar-UI, so this is the only
|
||||
|
|
|
@ -2,12 +2,42 @@
|
|||
|
||||
set -eux
|
||||
|
||||
SCRIPT_NAME=$(basename $0)
|
||||
|
||||
OS_AUTH_URL=${OS_AUTH_URL:-""}
|
||||
if [ -z "$OS_AUTH_URL" ]; then
|
||||
echo "You must source a stackrc file for the Undercloud."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TUSKAR=
|
||||
|
||||
function show_options () {
|
||||
echo "Usage: $SCRIPT_NAME [options]"
|
||||
echo
|
||||
echo "Updates an Overcloud."
|
||||
echo
|
||||
echo "Options:"
|
||||
echo " --tuskar -- will use tuskar for building the heat Template"
|
||||
echo
|
||||
exit $1
|
||||
}
|
||||
|
||||
TEMP=$(getopt -o ,h -l,tuskar,help -n $SCRIPT_NAME -- "$@")
|
||||
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
|
||||
|
||||
# Note the quotes around `$TEMP': they are essential!
|
||||
eval set -- "$TEMP"
|
||||
|
||||
while true ; do
|
||||
case "$1" in
|
||||
--tuskar) TUSKAR="1"; shift 1;;
|
||||
-h | --help) show_options 0;;
|
||||
--) shift ; break ;;
|
||||
*) echo "Error: unsupported option $1." ; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# setup-baremetal requires this to be set
|
||||
export TRIPLEO_ROOT=.
|
||||
CPU=${CPU:-1}
|
||||
|
@ -26,89 +56,187 @@ export ROOT_DISK=${ROOT_DISK:-10}
|
|||
|
||||
source tripleo-overcloud-passwords
|
||||
|
||||
# Undercloud passwords must all be sourced into this script since we make use
|
||||
# of $UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD below
|
||||
source tripleo-undercloud-passwords
|
||||
|
||||
# Define the interface that will be bridged onto the Neutron defined
|
||||
# network.
|
||||
NeutronPublicInterface=${NeutronPublicInterface:-eth0}
|
||||
HypervisorNeutronPublicInterface=${HypervisorNeutronPublicInterface:-$NeutronPublicInterface}
|
||||
NEUTRON_NETWORK_TYPE=${NEUTRON_NETWORK_TYPE:-gre}
|
||||
# Define the overcloud libvirt type for virtualization. kvm for
|
||||
# baremetal, qemu for an overcloud running in vm's.
|
||||
OVERCLOUD_LIBVIRT_TYPE=${OVERCLOUD_LIBVIRT_TYPE:-qemu}
|
||||
NtpServer=${NtpServer:-""}
|
||||
|
||||
CONTROLSCALE=${CONTROLSCALE:-1}
|
||||
COMPUTESCALE=${COMPUTESCALE:-1}
|
||||
BLOCKSTORAGESCALE=${BLOCKSTORAGESCALE:-1}
|
||||
SWIFTSTORAGESCALE=${SWIFTSTORAGESCALE:-1}
|
||||
|
||||
if [ -d /usr/share/openstack-tripleo-heat-templates ]; then
|
||||
tripleo-heat-merge \
|
||||
--included-template-dir /usr/share/openstack-tripleo-heat-templates \
|
||||
--scale NovaCompute=$COMPUTESCALE \
|
||||
--scale BlockStorage=$BLOCKSTORAGESCALE \
|
||||
--scale SwiftStorage=$SWIFTSTORAGESCALE \
|
||||
/usr/share/openstack-tripleo-heat-templates/overcloud-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/swift-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/swift-storage-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/ssl-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/block-storage.yaml \
|
||||
> overcloud.yaml
|
||||
OVERCLOUD_YAML_PATH=overcloud.yaml
|
||||
# Default flavor parameters
|
||||
export OVERCLOUD_CONTROL_FLAVOR=${OVERCLOUD_CONTROL_FLAVOR:-"baremetal"}
|
||||
export OVERCLOUD_COMPUTE_FLAVOR=${OVERCLOUD_COMPUTE_FLAVOR:-"baremetal"}
|
||||
export OVERCLOUD_BLOCKSTORAGE_FLAVOR=${OVERCLOUD_BLOCKSTORAGE_FLAVOR:-"baremetal"}
|
||||
export OVERCLOUD_SWIFTSTORAGE_FLAVOR=${OVERCLOUD_SWIFTSTORAGE_FLAVOR:-"baremetal"}
|
||||
|
||||
export OVERCLOUD_PARAMETERS=${OVERCLOUD_PARAMETERS:-"\
|
||||
-P AdminPassword=${OVERCLOUD_ADMIN_PASSWORD} \
|
||||
-P AdminToken=${OVERCLOUD_ADMIN_TOKEN} \
|
||||
-P CinderPassword=${OVERCLOUD_CINDER_PASSWORD} \
|
||||
-P GlanceLogFile=\"''\" \
|
||||
-P GlancePassword=${OVERCLOUD_GLANCE_PASSWORD} \
|
||||
-P HeatPassword=${OVERCLOUD_HEAT_PASSWORD} \
|
||||
-P NeutronDnsmasqOptions=\"dhcp-option-force=26,1400\" \
|
||||
-P NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD} \
|
||||
-P NeutronPublicInterface=$NeutronPublicInterface \
|
||||
-P NovaComputeLibvirtType=$OVERCLOUD_LIBVIRT_TYPE \
|
||||
-P NovaPassword=${OVERCLOUD_NOVA_PASSWORD} \
|
||||
-P SwiftHashSuffix=${OVERCLOUD_SWIFT_HASH} \
|
||||
-P SwiftPassword=${OVERCLOUD_SWIFT_PASSWORD} \
|
||||
NeutronControlPlaneID=$(neutron net-show ctlplane | grep ' id ' | awk '{print $4}')
|
||||
|
||||
if [ -n "$TUSKAR" ]; then
|
||||
# TODO(lsmola) Not needed when tuskar CLI will be installed correctly
|
||||
set +u
|
||||
source /opt/stack/venvs/openstack/bin/activate
|
||||
set -u
|
||||
|
||||
# TODO(lsmola) version not needed when it will be registered to keystone correctly
|
||||
PLAN_ID=$( tuskar --tuskar-api-version 2 plan-show overcloud | awk '$2=="uuid" {print $4}' )
|
||||
|
||||
export TUSKAR_PARAMETERS=${TUSKAR_PARAMETERS:-"
|
||||
-A NeutronControlPlaneID=${NeutronControlPlaneID}
|
||||
-A controller-1::AdminPassword=${OVERCLOUD_ADMIN_PASSWORD}
|
||||
-A controller-1::AdminToken=${OVERCLOUD_ADMIN_TOKEN}
|
||||
-A cinder-storage-1::AdminPassword=${OVERCLOUD_ADMIN_PASSWORD}
|
||||
-A compute-1::AdminPassword=${OVERCLOUD_ADMIN_PASSWORD}
|
||||
-A controller-1::SnmpdReadonlyUserPassword=${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}
|
||||
-A cinder-storage-1::SnmpdReadonlyUserPassword=${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}
|
||||
-A swift-storage-1::SnmpdReadonlyUserPassword=${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}
|
||||
-A compute-1::SnmpdReadonlyUserPassword=${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}
|
||||
-A controller-1::CeilometerPassword=${OVERCLOUD_CEILOMETER_PASSWORD}
|
||||
-A controller-1::CeilometerMeteringSecret=${OVERCLOUD_CEILOMETER_SECRET}
|
||||
-A compute-1::CeilometerPassword=${OVERCLOUD_CEILOMETER_PASSWORD}
|
||||
-A compute-1::CeilometerMeteringSecret=${OVERCLOUD_CEILOMETER_SECRET}
|
||||
-A controller-1::CinderPassword=${OVERCLOUD_CINDER_PASSWORD}
|
||||
-A cinder-storage-1::CinderPassword=${OVERCLOUD_CINDER_PASSWORD}
|
||||
-A controller-1::GlancePassword=${OVERCLOUD_GLANCE_PASSWORD}
|
||||
-A controller-1::HeatPassword=${OVERCLOUD_HEAT_PASSWORD}
|
||||
-A controller-1::NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD}
|
||||
-A compute-1::NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD}
|
||||
-A cinder-storage-1::NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD}
|
||||
-A controller-1::NovaPassword=${OVERCLOUD_NOVA_PASSWORD}
|
||||
-A compute-1::NovaPassword=${OVERCLOUD_NOVA_PASSWORD}
|
||||
-A controller-1::SwiftHashSuffix=${OVERCLOUD_SWIFT_HASH}
|
||||
-A controller-1::SwiftPassword=${OVERCLOUD_SWIFT_PASSWORD}
|
||||
-A controller-1::CinderISCSIHelper=lioadm
|
||||
-A cinder-storage-1::CinderISCSIHelper=lioadm
|
||||
-A controller-1::CloudName=overcloud
|
||||
-A controller-1::NeutronPublicInterface=$NeutronPublicInterface
|
||||
-A compute-1::NeutronPublicInterface=$NeutronPublicInterface
|
||||
-A cinder-storage-1::NeutronPublicInterface=$NeutronPublicInterface
|
||||
-A compute-1::NovaComputeLibvirtType=$OVERCLOUD_LIBVIRT_TYPE
|
||||
-A controller-1::NtpServer=${NtpServer}
|
||||
-A compute-1::NtpServer=${NtpServer}
|
||||
-A controller-1::NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
-A compute-1::NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
-A cinder-storage-1::NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
-A swift-storage-1::NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
-A controller-1::NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES}
|
||||
-A compute-1::NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES}
|
||||
-A controller-1::count=${CONTROLSCALE}
|
||||
-A compute-1::count=${COMPUTESCALE}
|
||||
-A swift-storage-1::count=${SWIFTSTORAGESCALE}
|
||||
-A cinder-storage-1::count=${BLOCKSTORAGESCALE}
|
||||
"}
|
||||
|
||||
HEAT_ENVIRONMENT=""
|
||||
# These attributes can't be changed in Tuskar-UI, so this is the only
|
||||
# difference to deploying through UI
|
||||
# -A NeutronDnsmasqOptions=dhcp-option-force=26,1400
|
||||
# -A NeutronNetworkType=${NEUTRON_NETWORK_TYPE}
|
||||
# -A NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES}
|
||||
|
||||
else
|
||||
make -C $INSTACK_ROOT/tripleo-heat-templates overcloud.yaml COMPUTESCALE=$COMPUTESCALE BLOCKSTORAGESCALE=$BLOCKSTORAGESCALE SWIFTSTORAGESCALE=$SWIFTSTORAGESCALE
|
||||
OVERCLOUD_YAML_PATH=$INSTACK_ROOT/tripleo-heat-templates/overcloud.yaml
|
||||
tuskar --tuskar-api-version 2 plan-patch $TUSKAR_PARAMETERS $PLAN_ID
|
||||
tuskar --tuskar-api-version 2 plan-templates -O tuskar_templates $PLAN_ID
|
||||
|
||||
NeutronControlPlaneID=$(neutron net-show ctlplane | grep ' id ' | awk '{print $4}')
|
||||
set +u
|
||||
deactivate
|
||||
set -u
|
||||
|
||||
export OVERCLOUD_PARAMETERS=${OVERCLOUD_PARAMETERS:-"\
|
||||
-P AdminPassword=${OVERCLOUD_ADMIN_PASSWORD} \
|
||||
-P AdminToken=${OVERCLOUD_ADMIN_TOKEN} \
|
||||
-P CeilometerPassword=${OVERCLOUD_CEILOMETER_PASSWORD} \
|
||||
-P CeilometerMeteringSecret=${OVERCLOUD_CEILOMETER_SECRET} \
|
||||
-P CinderPassword=${OVERCLOUD_CINDER_PASSWORD} \
|
||||
-P CinderISCSIHelper=lioadm \
|
||||
-P CloudName=overcloud \
|
||||
-P GlancePassword=${OVERCLOUD_GLANCE_PASSWORD} \
|
||||
-P HeatPassword=${OVERCLOUD_HEAT_PASSWORD} \
|
||||
-P NeutronControlPlaneID=$NeutronControlPlaneID \
|
||||
-P NeutronDnsmasqOptions=dhcp-option-force=26,1400 \
|
||||
-P NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD} \
|
||||
-P NeutronPublicInterface=$NeutronPublicInterface \
|
||||
-P NovaComputeLibvirtType=$OVERCLOUD_LIBVIRT_TYPE \
|
||||
-P NovaPassword=${OVERCLOUD_NOVA_PASSWORD} \
|
||||
-P SwiftHashSuffix=${OVERCLOUD_SWIFT_HASH} \
|
||||
-P SwiftPassword=${OVERCLOUD_SWIFT_PASSWORD} \
|
||||
-P NeutronNetworkType=${NEUTRON_NETWORK_TYPE} \
|
||||
-P NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES} \
|
||||
"}
|
||||
OVERCLOUD_YAML_PATH="$INSTACK_ROOT/tuskar_templates/plan.yaml"
|
||||
RESOURCE_REGISTRY_PATH="$INSTACK_ROOT/tuskar_templates/environment.yaml"
|
||||
|
||||
RESOURCE_REGISTRY="-e $RESOURCE_REGISTRY_PATH"
|
||||
|
||||
HEAT_ENV=${HEAT_ENV:-"${INSTACK_ROOT}/overcloud-env.json"}
|
||||
HEAT_ENV=${HEAT_ENV:-"overcloud-env.json"}
|
||||
HEAT_ENVIRONMENT="-e ${HEAT_ENV}"
|
||||
|
||||
heat stack-update -f $OVERCLOUD_YAML_PATH \
|
||||
$RESOURCE_REGISTRY \
|
||||
$HEAT_ENVIRONMENT \
|
||||
overcloud
|
||||
|
||||
else
|
||||
if [ -d /usr/share/openstack-tripleo-heat-templates ]; then
|
||||
tripleo-heat-merge \
|
||||
--included-template-dir /usr/share/openstack-tripleo-heat-templates \
|
||||
--scale NovaCompute=$COMPUTESCALE \
|
||||
--scale BlockStorage=$BLOCKSTORAGESCALE \
|
||||
--scale SwiftStorage=$SWIFTSTORAGESCALE \
|
||||
/usr/share/openstack-tripleo-heat-templates/overcloud-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/swift-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/swift-storage-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/ssl-source.yaml \
|
||||
/usr/share/openstack-tripleo-heat-templates/block-storage.yaml \
|
||||
> overcloud.yaml
|
||||
OVERCLOUD_YAML_PATH=overcloud.yaml
|
||||
|
||||
export OVERCLOUD_PARAMETERS=${OVERCLOUD_PARAMETERS:-"\
|
||||
-P AdminPassword=${OVERCLOUD_ADMIN_PASSWORD} \
|
||||
-P AdminToken=${OVERCLOUD_ADMIN_TOKEN} \
|
||||
-P CinderPassword=${OVERCLOUD_CINDER_PASSWORD} \
|
||||
-P GlanceLogFile=\"''\" \
|
||||
-P GlancePassword=${OVERCLOUD_GLANCE_PASSWORD} \
|
||||
-P HeatPassword=${OVERCLOUD_HEAT_PASSWORD} \
|
||||
-P NeutronDnsmasqOptions=\"dhcp-option-force=26,1400\" \
|
||||
-P NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD} \
|
||||
-P NeutronPublicInterface=$NeutronPublicInterface \
|
||||
-P NovaComputeLibvirtType=$OVERCLOUD_LIBVIRT_TYPE \
|
||||
-P NovaPassword=${OVERCLOUD_NOVA_PASSWORD} \
|
||||
-P SwiftHashSuffix=${OVERCLOUD_SWIFT_HASH} \
|
||||
-P SwiftPassword=${OVERCLOUD_SWIFT_PASSWORD} \
|
||||
"}
|
||||
|
||||
HEAT_ENVIRONMENT=""
|
||||
|
||||
else
|
||||
make -C $INSTACK_ROOT/tripleo-heat-templates overcloud.yaml COMPUTESCALE=$COMPUTESCALE BLOCKSTORAGESCALE=$BLOCKSTORAGESCALE SWIFTSTORAGESCALE=$SWIFTSTORAGESCALE
|
||||
OVERCLOUD_YAML_PATH=$INSTACK_ROOT/tripleo-heat-templates/overcloud.yaml
|
||||
|
||||
NeutronControlPlaneID=$(neutron net-show ctlplane | grep ' id ' | awk '{print $4}')
|
||||
|
||||
export OVERCLOUD_PARAMETERS=${OVERCLOUD_PARAMETERS:-"\
|
||||
-P AdminPassword=${OVERCLOUD_ADMIN_PASSWORD} \
|
||||
-P AdminToken=${OVERCLOUD_ADMIN_TOKEN} \
|
||||
-P CeilometerPassword=${OVERCLOUD_CEILOMETER_PASSWORD} \
|
||||
-P CeilometerMeteringSecret=${OVERCLOUD_CEILOMETER_SECRET} \
|
||||
-P CinderPassword=${OVERCLOUD_CINDER_PASSWORD} \
|
||||
-P CinderISCSIHelper=lioadm \
|
||||
-P CloudName=overcloud \
|
||||
-P GlancePassword=${OVERCLOUD_GLANCE_PASSWORD} \
|
||||
-P HeatPassword=${OVERCLOUD_HEAT_PASSWORD} \
|
||||
-P NeutronControlPlaneID=$NeutronControlPlaneID \
|
||||
-P NeutronDnsmasqOptions=dhcp-option-force=26,1400 \
|
||||
-P NeutronPassword=${OVERCLOUD_NEUTRON_PASSWORD} \
|
||||
-P NeutronPublicInterface=$NeutronPublicInterface \
|
||||
-P NovaComputeLibvirtType=$OVERCLOUD_LIBVIRT_TYPE \
|
||||
-P NovaPassword=${OVERCLOUD_NOVA_PASSWORD} \
|
||||
-P SwiftHashSuffix=${OVERCLOUD_SWIFT_HASH} \
|
||||
-P SwiftPassword=${OVERCLOUD_SWIFT_PASSWORD} \
|
||||
-P NeutronNetworkType=${NEUTRON_NETWORK_TYPE} \
|
||||
-P NeutronTunnelTypes=${NEUTRON_TUNNEL_TYPES} \
|
||||
"}
|
||||
|
||||
|
||||
HEAT_ENV=${HEAT_ENV:-"${INSTACK_ROOT}/overcloud-env.json"}
|
||||
HEAT_ENVIRONMENT="-e ${HEAT_ENV}"
|
||||
|
||||
fi
|
||||
|
||||
heat stack-update -f $OVERCLOUD_YAML_PATH \
|
||||
$OVERCLOUD_PARAMETERS \
|
||||
$HEAT_ENVIRONMENT \
|
||||
overcloud
|
||||
fi
|
||||
|
||||
|
||||
heat stack-update -f $OVERCLOUD_YAML_PATH \
|
||||
$OVERCLOUD_PARAMETERS \
|
||||
$HEAT_ENVIRONMENT \
|
||||
overcloud
|
||||
|
||||
tripleo wait_for_stack_ready 220 10 overcloud
|
||||
|
||||
echo "Overcloud UPDATE_COMPLETE"
|
||||
|
|
Loading…
Reference in New Issue