Install Trove in DevStack

This page describes how to set up a working development environment that can be used in deploying Trove on latest releases of Ubuntu.

Following these instructions will allow you to have a fully functional Trove environment using the DevStack on Ubuntu 16.04 or 18.04.

Config DevStack with Trove

Trove can be enabled in devstack by using the plug-in based interface it offers.

Note

The following steps have been fully verified both on Ubuntu 16.04 and 18.04.

Start by cloning the devstack repository using a non-root user(the default user is ubuntu) and change to devstack directory:

git clone https://opendev.org/openstack/devstack
cd devstack/

Create the local.conf file with the following minimal devstack configuration, change the HOST_IP to your own devstack host IP address:

[[local|localrc]]
RECLONE=False
HOST_IP=<your-host-ip-here>

enable_plugin trove https://opendev.org/openstack/trove
enable_plugin trove-dashboard https://opendev.org/openstack/trove-dashboard

LIBS_FROM_GIT+=,python-troveclient
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
RABBIT_PASSWORD=password
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=False
LOGDAYS=1

IPV4_ADDRS_SAFE_TO_USE=10.111.0.0/26
FIXED_RANGE=10.111.0.0/26
NETWORK_GATEWAY=10.111.0.1
FLOATING_RANGE=172.30.5.0/24
PUBLIC_NETWORK_GATEWAY=172.30.5.1

# Pre-requisites
ENABLED_SERVICES=rabbit,mysql,key

# Nova
enable_service horizon

# Nova
enable_service n-api
enable_service n-cpu
enable_service n-cond
enable_service n-sch
enable_service n-api-meta
enable_service placement-api
enable_service placement-client

# Glance
enable_service g-api
enable_service g-reg

# Cinder
enable_service cinder
enable_service c-api
enable_service c-vol
enable_service c-sch

Q_AGENT=ovn
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger
Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve
Q_ML2_TENANT_NETWORK_TYPE="geneve"
enable_service ovn-northd
enable_service ovn-controller
enable_service q-ovn-metadata-agent

# Neutron
enable_service q-svc

# Disable Neutron agents not used with OVN.
disable_service q-agt
disable_service q-l3
disable_service q-dhcp
disable_service q-meta

# Enable services, these services depend on neutron plugin.
enable_plugin neutron https://opendev.org/openstack/neutron
enable_service q-trunk
enable_service q-dns
enable_service q-port-forwarding
enable_service q-qos
enable_service neutron-segments
enable_service q-log

# Enable neutron tempest plugin tests
enable_plugin neutron-tempest-plugin https://opendev.org/openstack/neutron-tempest-plugin
OVN_BUILD_MODULES=True
ENABLE_CHASSIS_AS_GW=True

# Swift
ENABLED_SERVICES+=,swift
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1

Take a look at the options you could use to customize the Trove installation.

Running devstack

Run the stack.sh script:

./stack.sh

After it completes, you can see there is a MySQL datastore available to create Trove instance:

$ openstack datastore version list mysql
+--------------------------------------+------------------+
| ID                                   | Name             |
+--------------------------------------+------------------+
| 9726354d-f989-4a68-9c5f-6e37b1bccc74 | 5.7              |
| f81a8448-2f6e-4746-8d97-866ab7dcccee | inactive_version |
+--------------------------------------+------------------+

Create your first Trove instance

Refer to Create and access a database for the detailed steps.