Merge "Split up extra init steps and start processes"
This commit is contained in:
commit
be26842229
@ -220,6 +220,7 @@ function octavia_configure {
|
|||||||
iniset $OCTAVIA_CONF controller_worker amphora_driver ${OCTAVIA_AMPHORA_DRIVER}
|
iniset $OCTAVIA_CONF controller_worker amphora_driver ${OCTAVIA_AMPHORA_DRIVER}
|
||||||
iniset $OCTAVIA_CONF controller_worker compute_driver ${OCTAVIA_COMPUTE_DRIVER}
|
iniset $OCTAVIA_CONF controller_worker compute_driver ${OCTAVIA_COMPUTE_DRIVER}
|
||||||
iniset $OCTAVIA_CONF controller_worker network_driver ${OCTAVIA_NETWORK_DRIVER}
|
iniset $OCTAVIA_CONF controller_worker network_driver ${OCTAVIA_NETWORK_DRIVER}
|
||||||
|
iniset $OCTAVIA_CONF controller_worker amp_image_tag ${OCTAVIA_AMP_IMAGE_TAG}
|
||||||
|
|
||||||
iniuncomment $OCTAVIA_CONF health_manager heartbeat_key
|
iniuncomment $OCTAVIA_CONF health_manager heartbeat_key
|
||||||
iniset $OCTAVIA_CONF health_manager heartbeat_key ${OCTAVIA_HEALTH_KEY}
|
iniset $OCTAVIA_CONF health_manager heartbeat_key ${OCTAVIA_HEALTH_KEY}
|
||||||
@ -311,6 +312,17 @@ function octavia_configure {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $OCTAVIA_NODE == 'main' ]; then
|
||||||
|
configure_octavia_api_haproxy
|
||||||
|
# make sure octavia is reachable from haproxy
|
||||||
|
iniset $OCTAVIA_CONF DEFAULT bind_port ${OCTAVIA_HA_PORT}
|
||||||
|
iniset $OCTAVIA_CONF DEFAULT bind_host 0.0.0.0
|
||||||
|
fi
|
||||||
|
if [ $OCTAVIA_NODE != 'main' ] && [ $OCTAVIA_NODE != 'standalone' ] ; then
|
||||||
|
# make sure octavia is reachable from haproxy from main node
|
||||||
|
iniset $OCTAVIA_CONF DEFAULT bind_port ${OCTAVIA_HA_PORT}
|
||||||
|
iniset $OCTAVIA_CONF DEFAULT bind_host 0.0.0.0
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_mgmt_network_interface {
|
function create_mgmt_network_interface {
|
||||||
@ -340,7 +352,6 @@ function create_mgmt_network_interface {
|
|||||||
die "Unknown network controller. Please define octavia_create_network_interface_device"
|
die "Unknown network controller. Please define octavia_create_network_interface_device"
|
||||||
fi
|
fi
|
||||||
sudo ip link set dev o-hm0 address $MGMT_PORT_MAC
|
sudo ip link set dev o-hm0 address $MGMT_PORT_MAC
|
||||||
sudo dhclient -v o-hm0 -cf $OCTAVIA_DHCLIENT_CONF
|
|
||||||
sudo iptables -I INPUT -i o-hm0 -p udp --dport 5555 -j ACCEPT
|
sudo iptables -I INPUT -i o-hm0 -p udp --dport 5555 -j ACCEPT
|
||||||
|
|
||||||
if [ $OCTAVIA_CONTROLLER_IP_PORT_LIST == 'auto' ] ; then
|
if [ $OCTAVIA_CONTROLLER_IP_PORT_LIST == 'auto' ] ; then
|
||||||
@ -417,79 +428,12 @@ function configure_octavia_api_haproxy {
|
|||||||
|
|
||||||
function octavia_start {
|
function octavia_start {
|
||||||
|
|
||||||
# Several steps in this function would more logically be in the configure function, but
|
if ! ps aux | grep -q [o]-hm0 ; then
|
||||||
# we need nova, glance, and neutron to be running.
|
sudo dhclient -v o-hm0 -cf $OCTAVIA_DHCLIENT_CONF
|
||||||
|
|
||||||
if [ $OCTAVIA_NODE != 'main' ] && [ $OCTAVIA_NODE != 'standalone' ] && [ $OCTAVIA_NODE != 'api' ]; then
|
|
||||||
# without the other services enabled apparently we don't have
|
|
||||||
# credentials at this point
|
|
||||||
TOP_DIR=$(cd $(dirname "$0") && pwd)
|
|
||||||
source ${TOP_DIR}/openrc admin admin
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $OCTAVIA_NODE == 'main' ] || [ $OCTAVIA_NODE == 'standalone' ] ; then
|
|
||||||
# things that should only happen on the ha main node / or once
|
|
||||||
openstack keypair create --public-key ${OCTAVIA_AMP_SSH_KEY_PATH}.pub ${OCTAVIA_AMP_SSH_KEY_NAME}
|
|
||||||
|
|
||||||
# Check if an amphora image is already loaded
|
|
||||||
AMPHORA_IMAGE_NAME=$(openstack image list --property name=${OCTAVIA_AMP_IMAGE_NAME} -f value -c Name)
|
|
||||||
export AMPHORA_IMAGE_NAME
|
|
||||||
|
|
||||||
if [ "$AMPHORA_IMAGE_NAME" == ${OCTAVIA_AMP_IMAGE_NAME} ]; then
|
|
||||||
echo "Found existing amphora image: $AMPHORA_IMAGE_NAME"
|
|
||||||
echo "Skipping amphora image build"
|
|
||||||
export DISABLE_AMP_IMAGE_BUILD=True
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ "$DISABLE_AMP_IMAGE_BUILD" == 'True' ]; then
|
|
||||||
build_octavia_worker_image
|
|
||||||
fi
|
|
||||||
|
|
||||||
OCTAVIA_AMP_IMAGE_ID=$(openstack image list -f value --property name=${OCTAVIA_AMP_IMAGE_NAME} -c ID)
|
|
||||||
|
|
||||||
if [ -n "$OCTAVIA_AMP_IMAGE_ID" ]; then
|
|
||||||
openstack image set --tag ${OCTAVIA_AMP_IMAGE_TAG} ${OCTAVIA_AMP_IMAGE_ID}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create a management network.
|
|
||||||
build_mgmt_network
|
|
||||||
|
|
||||||
create_octavia_accounts
|
|
||||||
|
|
||||||
# Adds service and endpoint
|
|
||||||
if is_service_enabled tempest; then
|
|
||||||
configure_octavia_tempest ${OCTAVIA_AMP_NETWORK_ID}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ "$DISABLE_AMP_IMAGE_BUILD" == 'True' ]; then
|
|
||||||
set_octavia_worker_image_owner_id
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $OCTAVIA_NODE != 'api' ] ; then
|
|
||||||
create_mgmt_network_interface
|
|
||||||
|
|
||||||
create_amphora_flavor
|
|
||||||
configure_lb_mgmt_sec_grp
|
|
||||||
fi
|
|
||||||
|
|
||||||
iniset $OCTAVIA_CONF controller_worker amp_image_tag ${OCTAVIA_AMP_IMAGE_TAG}
|
|
||||||
|
|
||||||
OCTAVIA_AMP_NETWORK_ID=$(openstack network show lb-mgmt-net -f value -c id)
|
|
||||||
|
|
||||||
iniset $OCTAVIA_CONF controller_worker amp_boot_network_list ${OCTAVIA_AMP_NETWORK_ID}
|
|
||||||
|
|
||||||
if [ $OCTAVIA_NODE == 'main' ]; then
|
if [ $OCTAVIA_NODE == 'main' ]; then
|
||||||
configure_octavia_api_haproxy
|
|
||||||
run_process $OCTAVIA_API_HAPROXY "/usr/sbin/haproxy -db -V -f ${OCTAVIA_CONF_DIR}/haproxy.cfg"
|
run_process $OCTAVIA_API_HAPROXY "/usr/sbin/haproxy -db -V -f ${OCTAVIA_CONF_DIR}/haproxy.cfg"
|
||||||
# make sure octavia is reachable from haproxy
|
|
||||||
iniset $OCTAVIA_CONF DEFAULT bind_port ${OCTAVIA_HA_PORT}
|
|
||||||
iniset $OCTAVIA_CONF DEFAULT bind_host 0.0.0.0
|
|
||||||
fi
|
|
||||||
if [ $OCTAVIA_NODE != 'main' ] && [ $OCTAVIA_NODE != 'standalone' ] ; then
|
|
||||||
# make sure octavia is reachable from haproxy from main node
|
|
||||||
iniset $OCTAVIA_CONF DEFAULT bind_port ${OCTAVIA_HA_PORT}
|
|
||||||
iniset $OCTAVIA_CONF DEFAULT bind_host 0.0.0.0
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$OCTAVIA_USE_MOD_WSGI" == "True" ]]; then
|
if [[ "$OCTAVIA_USE_MOD_WSGI" == "True" ]]; then
|
||||||
@ -501,11 +445,6 @@ function octavia_start {
|
|||||||
run_process $OCTAVIA_CONSUMER "$OCTAVIA_CONSUMER_BINARY $OCTAVIA_CONSUMER_ARGS"
|
run_process $OCTAVIA_CONSUMER "$OCTAVIA_CONSUMER_BINARY $OCTAVIA_CONSUMER_ARGS"
|
||||||
run_process $OCTAVIA_HOUSEKEEPER "$OCTAVIA_HOUSEKEEPER_BINARY $OCTAVIA_HOUSEKEEPER_ARGS"
|
run_process $OCTAVIA_HOUSEKEEPER "$OCTAVIA_HOUSEKEEPER_BINARY $OCTAVIA_HOUSEKEEPER_ARGS"
|
||||||
run_process $OCTAVIA_HEALTHMANAGER "$OCTAVIA_HEALTHMANAGER_BINARY $OCTAVIA_HEALTHMANAGER_ARGS"
|
run_process $OCTAVIA_HEALTHMANAGER "$OCTAVIA_HEALTHMANAGER_BINARY $OCTAVIA_HEALTHMANAGER_ARGS"
|
||||||
|
|
||||||
if [ $OCTAVIA_NODE == 'main' ] || [ $OCTAVIA_NODE == 'standalone' ] ; then
|
|
||||||
add_load-balancer_roles
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function octavia_stop {
|
function octavia_stop {
|
||||||
@ -520,7 +459,7 @@ function octavia_stop {
|
|||||||
stop_process $OCTAVIA_HEALTHMANAGER
|
stop_process $OCTAVIA_HEALTHMANAGER
|
||||||
|
|
||||||
# Kill dhclient process started for o-hm0 interface
|
# Kill dhclient process started for o-hm0 interface
|
||||||
pids=$(ps aux | awk '/o-hm0/ { print $2 }')
|
pids=$(ps aux | awk '/[o]-hm0/ { print $2 }')
|
||||||
[ ! -z "$pids" ] && sudo kill $pids
|
[ ! -z "$pids" ] && sudo kill $pids
|
||||||
if function_exists octavia_delete_network_interface_device ; then
|
if function_exists octavia_delete_network_interface_device ; then
|
||||||
octavia_delete_network_interface_device o-hm0
|
octavia_delete_network_interface_device o-hm0
|
||||||
@ -573,6 +512,66 @@ function add_load-balancer_roles {
|
|||||||
openstack role add --user demo --project demo load-balancer_member
|
openstack role add --user demo --project demo load-balancer_member
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function octavia_init {
|
||||||
|
if [ $OCTAVIA_NODE != 'main' ] && [ $OCTAVIA_NODE != 'standalone' ] && [ $OCTAVIA_NODE != 'api' ]; then
|
||||||
|
# without the other services enabled apparently we don't have
|
||||||
|
# credentials at this point
|
||||||
|
TOP_DIR=$(cd $(dirname "$0") && pwd)
|
||||||
|
source ${TOP_DIR}/openrc admin admin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $OCTAVIA_NODE == 'main' ] || [ $OCTAVIA_NODE == 'standalone' ] ; then
|
||||||
|
# things that should only happen on the ha main node / or once
|
||||||
|
if ! openstack keypair show ${OCTAVIA_AMP_SSH_KEY_NAME} ; then
|
||||||
|
openstack keypair create --public-key ${OCTAVIA_AMP_SSH_KEY_PATH}.pub ${OCTAVIA_AMP_SSH_KEY_NAME}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if an amphora image is already loaded
|
||||||
|
AMPHORA_IMAGE_NAME=$(openstack image list --property name=${OCTAVIA_AMP_IMAGE_NAME} -f value -c Name)
|
||||||
|
export AMPHORA_IMAGE_NAME
|
||||||
|
|
||||||
|
if [ "$AMPHORA_IMAGE_NAME" == ${OCTAVIA_AMP_IMAGE_NAME} ]; then
|
||||||
|
echo "Found existing amphora image: $AMPHORA_IMAGE_NAME"
|
||||||
|
echo "Skipping amphora image build"
|
||||||
|
export DISABLE_AMP_IMAGE_BUILD=True
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ "$DISABLE_AMP_IMAGE_BUILD" == 'True' ]; then
|
||||||
|
build_octavia_worker_image
|
||||||
|
fi
|
||||||
|
|
||||||
|
OCTAVIA_AMP_IMAGE_ID=$(openstack image list -f value --property name=${OCTAVIA_AMP_IMAGE_NAME} -c ID)
|
||||||
|
|
||||||
|
if [ -n "$OCTAVIA_AMP_IMAGE_ID" ]; then
|
||||||
|
openstack image set --tag ${OCTAVIA_AMP_IMAGE_TAG} ${OCTAVIA_AMP_IMAGE_ID}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create a management network.
|
||||||
|
build_mgmt_network
|
||||||
|
OCTAVIA_AMP_NETWORK_ID=$(openstack network show lb-mgmt-net -f value -c id)
|
||||||
|
iniset $OCTAVIA_CONF controller_worker amp_boot_network_list ${OCTAVIA_AMP_NETWORK_ID}
|
||||||
|
|
||||||
|
create_octavia_accounts
|
||||||
|
|
||||||
|
# Adds service and endpoint
|
||||||
|
if is_service_enabled tempest; then
|
||||||
|
configure_octavia_tempest ${OCTAVIA_AMP_NETWORK_ID}
|
||||||
|
fi
|
||||||
|
|
||||||
|
add_load-balancer_roles
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $OCTAVIA_NODE != 'api' ] ; then
|
||||||
|
create_mgmt_network_interface
|
||||||
|
create_amphora_flavor
|
||||||
|
configure_lb_mgmt_sec_grp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ "$DISABLE_AMP_IMAGE_BUILD" == 'True' ]; then
|
||||||
|
set_octavia_worker_image_owner_id
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# check for service enabled
|
# check for service enabled
|
||||||
if is_service_enabled $OCTAVIA; then
|
if is_service_enabled $OCTAVIA; then
|
||||||
if [ $OCTAVIA_NODE == 'main' ] || [ $OCTAVIA_NODE == 'standalone' ] ; then # main-ha node stuff only
|
if [ $OCTAVIA_NODE == 'main' ] || [ $OCTAVIA_NODE == 'standalone' ] ; then # main-ha node stuff only
|
||||||
@ -601,7 +600,10 @@ if is_service_enabled $OCTAVIA; then
|
|||||||
|
|
||||||
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
||||||
# Initialize and start the octavia service
|
# Initialize and start the octavia service
|
||||||
echo_summary "Initializing octavia"
|
echo_summary "Initializing Octavia"
|
||||||
|
octavia_init
|
||||||
|
|
||||||
|
echo_summary "Starting Octavia"
|
||||||
octavia_start
|
octavia_start
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user