Share networks created by Trove Devstack plugin

Trove implies strict network requirements. All Trove instances must be
launched in a network that is connected to the management network so
that Guest Agents residing in the data plane could communicate with
control plane services, e.g. RabbitMQ and Trove Conductor. Trove
Devstack plugin creates a management network bound to management physnet
(trove-mgmt), as well as tenant network (alt-private) connected to it
via a router. Consequently, Trove instances deployed in the tenant
network can easily access the management services mentioned above.
However, these networks are visible only from the perspective of the
tenant that created the networks.

Since Tempest does not provide an easy way to create a similar
management network, and as such does not enable creating tenant network
for Trove instances automatically, this change adds --share flag to
networks created by Devstack so that Tempest could reuse them.

Change-Id: I8c642ab6150858478c48291a51675ef9d15dafaa
Signed-off-by: Bartosz Zurkowski <b.zurkowski@samsung.com>
This commit is contained in:
Bartosz Zurkowski 2019-03-21 08:57:59 +01:00
parent 7a7a08e41a
commit ddafb0e40d
2 changed files with 10 additions and 3 deletions

View File

@ -456,8 +456,14 @@ function set_up_network() {
local NET_NAME=$3
local SUBNET_NAME=$4
local IPV6_SUBNET_NAME=$5
local SHARED=$6
NEW_NET_ID=$(openstack --os-cloud ${CLOUD_USER} --os-region "$REGION_NAME" network create --project ${PROJECT_ID} "$NET_NAME" | grep ' id ' | get_field 2)
local share_flag=""
if [[ "${SHARED}" == "TRUE" ]]; then
share_flag="--share"
fi
NEW_NET_ID=$(openstack --os-cloud ${CLOUD_USER} --os-region "$REGION_NAME" network create --project ${PROJECT_ID} ${share_flag} "$NET_NAME" | grep ' id ' | get_field 2)
if [[ "$IP_VERSION" =~ 4.* ]]; then
NEW_SUBNET_ID=$(_create_private_subnet_v4 ${PROJECT_ID} ${NEW_NET_ID} ${SUBNET_NAME} ${CLOUD_USER})
openstack --os-cloud ${CLOUD_USER} --os-region "$REGION_NAME" router add subnet $ROUTER_ID $NEW_SUBNET_ID
@ -493,14 +499,14 @@ function finalize_trove_network {
ALT_PRIVATE_NETWORK_NAME=${TROVE_PRIVATE_NETWORK_NAME}
ALT_PRIVATE_SUBNET_NAME=${TROVE_PRIVATE_SUBNET_NAME}
ALT_PRIVATE_IPV6_SUBNET_NAME=ipv6-${ALT_PRIVATE_SUBNET_NAME}
ALT_NET_ID=$(set_up_network $ADMIN_ALT_DEMO_CLOUD $ALT_TENANT_ID $ALT_PRIVATE_NETWORK_NAME $ALT_PRIVATE_SUBNET_NAME $ALT_PRIVATE_IPV6_SUBNET_NAME)
ALT_NET_ID=$(set_up_network $ADMIN_ALT_DEMO_CLOUD $ALT_TENANT_ID $ALT_PRIVATE_NETWORK_NAME $ALT_PRIVATE_SUBNET_NAME $ALT_PRIVATE_IPV6_SUBNET_NAME $TROVE_SHARE_NETWORKS)
echo "Created network ${ALT_PRIVATE_NETWORK_NAME} (${ALT_NET_ID})"
# Set up a management network to test that functionality
ALT_MGMT_NETWORK_NAME=trove-mgmt
ALT_MGMT_SUBNET_NAME=${ALT_MGMT_NETWORK_NAME}-subnet
ALT_MGMT_IPV6_SUBNET_NAME=ipv6-${ALT_MGMT_SUBNET_NAME}
ALT_MGMT_ID=$(set_up_network $ADMIN_ALT_DEMO_CLOUD $ALT_TENANT_ID $ALT_MGMT_NETWORK_NAME $ALT_MGMT_SUBNET_NAME $ALT_MGMT_IPV6_SUBNET_NAME)
ALT_MGMT_ID=$(set_up_network $ADMIN_ALT_DEMO_CLOUD $ALT_TENANT_ID $ALT_MGMT_NETWORK_NAME $ALT_MGMT_SUBNET_NAME $ALT_MGMT_IPV6_SUBNET_NAME $TROVE_SHARE_NETWORKS)
echo "Created network ${ALT_MGMT_NETWORK_NAME} (${ALT_MGMT_ID})"
# Make sure we can reach the VMs

View File

@ -58,6 +58,7 @@ if is_service_enabled neutron; then
else
TROVE_HOST_GATEWAY=${NETWORK_GATEWAY:-10.0.0.1}
fi
TROVE_SHARE_NETWORKS=$(trueorfalse TRUE TROVE_SHARE_NETWORKS)
# Support entry points installation of console scripts
if [[ -d $TROVE_DIR/bin ]]; then