Files
tacker/devstack/plugin.sh

83 lines
2.5 KiB
Bash
Raw Permalink Normal View History

# plugin.sh - Devstack extras script to install tacker
# Save trace setting
XTRACE=$(set +o | grep xtrace)
set -o xtrace
echo_summary "tacker's plugin.sh was called with args $1 and $2 ..."
. $DEST/tacker/devstack/lib/tacker
(set -o posix; set)
# check for service enabled
if is_service_enabled tacker; then
if [[ "$1" == "stack" && "$2" == "install" ]]; then
# Perform installation of service source
echo_summary "Installing Tacker"
install_tacker
if use_library_from_git heat-translator; then
git_clone_by_name heat-translator
setup_dev_lib heat-translator
fi
if use_library_from_git tosca-parser; then
git_clone_by_name tosca-parser
setup_dev_lib tosca-parser
fi
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
# Configure after the other layer 1 and 2 services have been configured
echo_summary "Configuring Tacker"
configure_tacker
create_tacker_accounts
create_keystone_endpoint
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
# Initialize and start the tacker service
echo_summary "Initializing Tacker"
init_tacker
echo_summary "Starting Tacker API and conductor"
start_tacker
if is_service_enabled horizon; then
echo_summary "Installing tacker horizon"
tacker_horizon_install
fi
if [[ "${TACKER_MODE}" == "all" || "${IS_ZUUL_FT}" == "True" ]]; then
echo_summary "Setup initial tacker network"
tacker_create_initial_network
echo_summary "Check and download images for tacker initial"
tacker_check_and_download_images
Add a seperate controller subnode to subdivide the memory load The number of required plugins has increased to the extent that controller on Zuul FT infrastructure almost runs out of memory [1]. This potentially induces various problems such as FT failure noises or POST_FAILURE at the ansible task 'export-devstack-journal'. To request expanded images such as ubuntu-focal-expanded (16GB) or ubuntu-focal-32GB would be an option, but it turns out that would lead us to another problematic situation. [2] This patch, instead, addresses the issue by subdividing the memory load. As a first step, introduce a new subnode 'tacker-controller', on which both tacker-server and tacker-conductor are located. Note: * when we re-locate some other components to this new subnode, it might better to rename it. * `devstack_local_conf: {}` in .zuul.yaml is to cancel out the global job.vars devstack_local_conf.post-config.$NEUTRON_DHCP_CONF, which is not present on 'tacker-controller' in the first place. * TACKER_MODE is set to 'standalone'. 'all-in-one' supposes core services like nova, neutron, keystone, etc. api servers are located on the same host as tacker-server. * in devstack/lib/tacker:create_tacker_accounts, SERVICE_HOST should have been TACKER_HOST. this minor fix is included. * in roles/setup-default-vim/tasks/main.yaml, the same where conditions were scattered but all tasks in it just needed to run on 'controller' only. so let us wrap them all in a block. * renamed devstack/plugin.sh:tacker_register_default_vim for clarity. * policy file modification for Heat is now done by an ansible task. it frees us from the co-location requirements for Tacker and Heat. * drop devstack/lib/tacker:is_tacker_enabled as it's no longer needed. [1]: we investigated how severe the memory load on 'controller' was on Zuul FT infrastructure: * The highest memory-consuming processes in desc order: 808.70MB (9.87%) 828112 /usr/sbin/mysqld 179.81MB (2.19%) 184124 ... /usr/local/bin/tacker-server ... 152.57MB (1.86%) 156232 ... /usr/local/bin/tacker-conductor . 146.67MB (1.79%) 150188 ... /usr/local/bin/neutron-server ... 132.96MB (1.62%) 136148 ... /usr/local/bin/neutron-server ... 129.08MB (1.58%) 132180 ... /usr/local/bin/heat-engine ... 127.48MB (1.56%) 130544 ... /usr/local/bin/heat-engine ... 122.16MB (1.49%) 125092 nova-apiuWSGI worker 1 121.00MB (1.48%) 123900 neutron-openvswitch-agent ... 119.50MB (1.46%) 122368 cinder-apiuWSGI worker 1 ---(snip)--- * `free -m` output total used free shared buff/cache available Mem: 7955 7427 196 16 331 219 Swap: 1022 1019 3 [2]: http://eavesdrop.openstack.org/irclogs/%23openstack-infra/ %23openstack-infra.2020-11-25.log.html Change-Id: I030ffd5fd11b7ca9abca56e85e449ed4c4d709bd
2020-11-26 11:14:06 +09:00
echo_summary "Setup default VIM resources"
tacker_setup_default_vim_resources
if is_service_enabled ceilometer; then
echo_summary "Configure maintenance event types"
configure_maintenance_event_types
fi
fi
fi
if [[ "$1" == "unstack" ]]; then
# Shut down tacker services
if is_service_enabled horizon; then
echo_summary "Uninstall tacker horizon"
tacker_horizon_uninstall
fi
stop_tacker
fi
if [[ "$1" == "clean" ]]; then
# Remove state and transient data
# Remember clean.sh first calls unstack.sh
cleanup_tacker
fi
fi
# Restore xtrace
$XTRACE
# Tell emacs to use shell-script-mode
## Local variables:
## mode: shell-script
## End: