From aa1d4d224674f44d9cd882eddb2537907adf5382 Mon Sep 17 00:00:00 2001 From: Lingxian Kong Date: Tue, 7 Apr 2020 10:52:16 +1200 Subject: Datastore containerization Significant changes: * Using docker image to install datastore. * Datastore image is common to different datastores. * Using backup docker image to do backup and restore. * Support MariaDB replication * Set most of the functional jobs as non-voting as nested virtualization is not supported in CI. Change-Id: Ia9c97a63a961eebc336b70d28dc77638144c1834 --- devstack/plugin.sh | 23 +++++++++++------------ devstack/settings | 16 +++++----------- 2 files changed, 16 insertions(+), 23 deletions(-) (limited to 'devstack') diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 4de219e4..8bbcbac7 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -362,7 +362,7 @@ function create_subnet_v6 { if [[ -n "$IPV6_PRIVATE_NETWORK_GATEWAY" ]]; then subnet_params+="--gateway $IPV6_PRIVATE_NETWORK_GATEWAY " fi - if [ -n $SUBNETPOOL_V6_ID ]; then + if [[ -n $SUBNETPOOL_V6_ID ]]; then subnet_params+="--subnet-pool $SUBNETPOOL_V6_ID " else subnet_params+="--subnet-range $FIXED_RANGE_V6 $ipv6_modes} " @@ -447,27 +447,26 @@ function create_guest_image { return 0 fi - image_name="trove-datastore-${TROVE_IMAGE_OS}-${TROVE_IMAGE_OS_RELEASE}-${TROVE_DATASTORE_TYPE}" - image_url_var="TROVE_NON_DEV_IMAGE_URL_${TROVE_DATASTORE_TYPE^^}" - image_url=`eval echo '$'"$image_url_var"` + image_name="trove-guest-${TROVE_IMAGE_OS}-${TROVE_IMAGE_OS_RELEASE}" mkdir -p $HOME/images image_file=$HOME/images/${image_name}.qcow2 - if [[ -n ${image_url} ]]; then - echo "Downloading guest image from ${image_url}" - curl -sSL ${image_url} -o ${image_file} + if [[ -n ${TROVE_NON_DEV_IMAGE_URL} ]]; then + echo "Downloading guest image from ${TROVE_NON_DEV_IMAGE_URL}" + curl -sSL ${TROVE_NON_DEV_IMAGE_URL} -o ${image_file} else echo "Starting to create guest image" - TROVE_BRANCH=${TROVE_BRANCH} $DEST/trove/integration/scripts/trovestack \ + $DEST/trove/integration/scripts/trovestack \ build-image \ - ${TROVE_DATASTORE_TYPE} \ ${TROVE_IMAGE_OS} \ ${TROVE_IMAGE_OS_RELEASE} \ - true + true \ + ${TROVE_IMAGE_OS} \ + ${image_file} fi - if [ ! -f ${image_file} ]; then + if [[ ! -f ${image_file} ]]; then echo "Image file was not found at ${image_file}" exit 1 fi @@ -485,7 +484,7 @@ function create_guest_image { $TROVE_MANAGE datastore_update $TROVE_DATASTORE_TYPE $TROVE_DATASTORE_VERSION echo "Add parameter validation rules if available" - if [ -f $DEST/trove/trove/templates/$TROVE_DATASTORE_TYPE/validation-rules.json ]; then + if [[ -f $DEST/trove/trove/templates/$TROVE_DATASTORE_TYPE/validation-rules.json ]]; then $TROVE_MANAGE db_load_datastore_config_parameters "$TROVE_DATASTORE_TYPE" "$TROVE_DATASTORE_VERSION" \ $DEST/trove/trove/templates/$TROVE_DATASTORE_TYPE/validation-rules.json fi diff --git a/devstack/settings b/devstack/settings index 44b71bb6..541d0f7d 100644 --- a/devstack/settings +++ b/devstack/settings @@ -29,15 +29,9 @@ TROVE_LOCAL_API_PASTE_INI=${TROVE_LOCAL_API_PASTE_INI:-${TROVE_LOCAL_CONF_DIR}/a TROVE_LOCAL_POLICY_JSON=${TROVE_LOCAL_POLICY_JSON:-${TROVE_LOCAL_CONF_DIR}/policy.json} TROVE_IMAGE_OS=${TROVE_IMAGE_OS:-"ubuntu"} -TROVE_IMAGE_OS_RELEASE=${TROVE_IMAGE_OS_RELEASE:-"xenial"} +TROVE_IMAGE_OS_RELEASE=${TROVE_IMAGE_OS_RELEASE:-"bionic"} TROVE_DATASTORE_TYPE=${TROVE_DATASTORE_TYPE:-"mysql"} -if [[ "$DISTRO" == "xenial" || "$DISTRO" == "bionic" ]]; then - TROVE_DATASTORE_VERSION=${TROVE_DATASTORE_VERSION:-"5.7"} - TROVE_DATASTORE_PACKAGE=${TROVE_DATASTORE_PACKAGE:-"mysql-server-5.7"} -else - TROVE_DATASTORE_VERSION=${TROVE_DATASTORE_VERSION:-"5.6"} - TROVE_DATASTORE_PACKAGE=${TROVE_DATASTORE_PACKAGE:-"mysql-server-5.6"} -fi +TROVE_DATASTORE_VERSION=${TROVE_DATASTORE_VERSION:-"5.7.29"} # Configuration values listed here for reference TROVE_MAX_ACCEPTED_VOLUME_SIZE=${TROVE_MAX_ACCEPTED_VOLUME_SIZE} @@ -46,8 +40,8 @@ TROVE_MAX_VOLUMES_PER_TENANT=${TROVE_MAX_VOLUMES_PER_TENANT} TROVE_AGENT_CALL_LOW_TIMEOUT=${TROVE_AGENT_CALL_LOW_TIMEOUT} TROVE_AGENT_CALL_HIGH_TIMEOUT=${TROVE_AGENT_CALL_HIGH_TIMEOUT:-1200} TROVE_RESIZE_TIME_OUT=${TROVE_RESIZE_TIME_OUT} -TROVE_USAGE_TIMEOUT=${TROVE_USAGE_TIMEOUT:-900} -TROVE_STATE_CHANGE_WAIT_TIME=${TROVE_STATE_CHANGE_WAIT_TIME} +TROVE_USAGE_TIMEOUT=${TROVE_USAGE_TIMEOUT:-1800} +TROVE_STATE_CHANGE_WAIT_TIME=${TROVE_STATE_CHANGE_WAIT_TIME:-600} TROVE_COMMAND_PROCESS_TIMEOUT=${TROVE_COMMAND_PROCESS_TIMEOUT:-60} # Set up the host gateway @@ -90,4 +84,4 @@ CELLSV2_SETUP=singleconductor # Enable or disable the Trove guest image build during devstack installation. TROVE_ENABLE_IMAGE_BUILD=${TROVE_ENABLE_IMAGE_BUILD:-"true"} -TROVE_NON_DEV_IMAGE_URL_MYSQL=${TROVE_NON_DEV_IMAGE_URL_MYSQL:-""} +TROVE_NON_DEV_IMAGE_URL=${TROVE_NON_DEV_IMAGE_URL:-""} -- cgit v1.2.1