diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2019-09-17 11:08:00 +1200 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2019-09-17 13:52:21 +1200 |
commit | f771e939ebe23a0e0e7da20d87b4256f5e3d2bc1 (patch) | |
tree | e4c9019679ba112dc789941a1ff54995fb7b076b /devstack | |
parent | b43248be7981d994e69b0f708e5168eea8448c2d (diff) | |
download | trove-f771e939ebe23a0e0e7da20d87b4256f5e3d2bc1.tar.gz |
Fix Trove CI failure
- Remove Designate v1 support. python-designateclient removed v1 support
in
https://github.com/openstack/python-designateclient/commit/093d8d7170cbf6ef8c7a7c0ff2a4dcd7ecd6361b
- Fix get port IP address error in devstack script.
Change-Id: I08916ddfba85c0218aeab5bfbad58ce3222521f3
Diffstat (limited to 'devstack')
-rw-r--r-- | devstack/plugin.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/devstack/plugin.sh b/devstack/plugin.sh index d99c9a7f..917718a9 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -285,6 +285,8 @@ EOF # install_trove() - Collect source and prepare function install_trove { + install_package jq + echo "Changing stack user sudoers" echo "stack ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/60_stack_sh_allow_all @@ -541,6 +543,79 @@ manage_etc_hosts: "localhost" EOF } +# Set up Trove management network and make configuration change. +function config_trove_network { + echo "Finalizing Neutron networking for Trove" + echo "Dumping current network parameters:" + echo " SERVICE_HOST: $SERVICE_HOST" + echo " BRIDGE_IP: $BRIDGE_IP" + echo " PUBLIC_NETWORK_GATEWAY: $PUBLIC_NETWORK_GATEWAY" + echo " NETWORK_GATEWAY: $NETWORK_GATEWAY" + echo " IPV4_ADDRS_SAFE_TO_USE: $IPV4_ADDRS_SAFE_TO_USE" + echo " IPV6_ADDRS_SAFE_TO_USE: $IPV6_ADDRS_SAFE_TO_USE" + echo " FIXED_RANGE: $FIXED_RANGE" + echo " FLOATING_RANGE: $FLOATING_RANGE" + echo " SUBNETPOOL_PREFIX_V4: $SUBNETPOOL_PREFIX_V4" + echo " SUBNETPOOL_SIZE_V4: $SUBNETPOOL_SIZE_V4" + echo " SUBNETPOOL_V4_ID: $SUBNETPOOL_V4_ID" + echo " ROUTER_GW_IP: $ROUTER_GW_IP" + echo " TROVE_MGMT_SUBNET_RANGE: ${TROVE_MGMT_SUBNET_RANGE}" + + # Save xtrace setting + local XTRACE + XTRACE=$(set +o | grep xtrace) + set -x + + echo "Creating Trove management network/subnet for Trove service project." + trove_service_project_id=$(openstack project show $SERVICE_PROJECT_NAME -c id -f value) + setup_mgmt_network ${trove_service_project_id} ${TROVE_MGMT_NETWORK_NAME} ${TROVE_MGMT_SUBNET_NAME} ${TROVE_MGMT_SUBNET_RANGE} + mgmt_net_id=$(openstack network show ${TROVE_MGMT_NETWORK_NAME} -c id -f value) + echo "Created Trove management network ${TROVE_MGMT_NETWORK_NAME}(${mgmt_net_id})" + + # Share the private network to other projects for testing purpose. We make + # the private network accessible to control plane below so that we could + # reach the private network for integration tests without floating ips + # associated, no matter which user the tests are using. + shared=$(openstack network show ${PRIVATE_NETWORK_NAME} -c shared -f value) + if [[ "$shared" == "False" ]]; then + openstack network set ${PRIVATE_NETWORK_NAME} --share + fi + sudo ip route replace ${IPV4_ADDRS_SAFE_TO_USE} via $ROUTER_GW_IP + + # Make sure we can reach the management port of the service VM, this + # configuration is only for testing purpose. In production, it's + # recommended to config the router in the cloud infrastructure for the + # communication between Trove control plane and service VMs. + INTERFACE=trove-mgmt + MGMT_PORT_ID=$(openstack port create --project ${trove_service_project_id} --security-group ${TROVE_MGMT_SECURITY_GROUP} --device-owner trove --network ${TROVE_MGMT_NETWORK_NAME} --host=$(hostname) -c id -f value ${INTERFACE}-port) + MGMT_PORT_MAC=$(openstack port show -c mac_address -f value $MGMT_PORT_ID) + MGMT_PORT_IP=$(openstack port show -f value -c fixed_ips $MGMT_PORT_ID) + MGMT_PORT_IP=${MGMT_PORT_IP//u\'/\'} + MGMT_PORT_IP=$(echo ${MGMT_PORT_IP//\'/\"} | jq -r '.[0].ip_address') + sudo ovs-vsctl -- --may-exist add-port ${OVS_BRIDGE:-br-int} $INTERFACE -- set Interface $INTERFACE type=internal -- set Interface $INTERFACE external-ids:iface-status=active -- set Interface $INTERFACE external-ids:attached-mac=$MGMT_PORT_MAC -- set Interface $INTERFACE external-ids:iface-id=$MGMT_PORT_ID -- set Interface $INTERFACE external-ids:skip_cleanup=true + sudo ip link set dev $INTERFACE address $MGMT_PORT_MAC + mask=$(echo ${TROVE_MGMT_SUBNET_RANGE} | awk -F'/' '{print $2}') + sudo ip addr add ${MGMT_PORT_IP}/${mask} dev $INTERFACE + sudo ip link set $INTERFACE up + + echo "Neutron network list:" + openstack network list + echo "Neutron subnet list:" + openstack subnet list + echo "ip route:" + sudo ip route + + # Now make sure the conf settings are right + iniset $TROVE_CONF DEFAULT network_label_regex ${PRIVATE_NETWORK_NAME} + iniset $TROVE_CONF DEFAULT ip_regex "" + iniset $TROVE_CONF DEFAULT black_list_regex "" + iniset $TROVE_CONF DEFAULT management_networks ${mgmt_net_id} + iniset $TROVE_CONF DEFAULT network_driver trove.network.neutron.NeutronDriver + + # Restore xtrace setting + $XTRACE +} + function config_nova_keypair { export SSH_DIR=${SSH_DIR:-"$HOME/.ssh"} |