64039ef300
There is no way to upgrade ironic before nova because of grenade design. In multinode job we do not restart nova as we test partial upgrade of ironic there. On slow nodes upgrading ironic takes time and nova looses ironic connectivity This patch increases api_retry_interval and api_max_retries to make sure we have a time to upgrade ironic before nova compute stuck. Change-Id: I3b1429d6561431a82edda04a0e574cac38771837
100 lines
3.0 KiB
Bash
100 lines
3.0 KiB
Bash
#!/bin/bash
|
|
#
|
|
# lib/nova_plugins/hypervisor-ironic
|
|
# Configure the ironic hypervisor
|
|
|
|
# Enable with:
|
|
# VIRT_DRIVER=ironic
|
|
|
|
# Dependencies:
|
|
# ``functions`` file
|
|
# ``nova`` configuration
|
|
|
|
# install_nova_hypervisor - install any external requirements
|
|
# configure_nova_hypervisor - make configuration changes, including those to other services
|
|
# start_nova_hypervisor - start any external services
|
|
# stop_nova_hypervisor - stop any external services
|
|
# cleanup_nova_hypervisor - remove transient data and cache
|
|
|
|
# Save trace setting
|
|
_XTRACE_HYP_IRONIC=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
source $TOP_DIR/lib/nova_plugins/functions-libvirt
|
|
|
|
# Defaults
|
|
# --------
|
|
|
|
# Entry Points
|
|
# ------------
|
|
|
|
# clean_nova_hypervisor - Clean up an installation
|
|
function cleanup_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
# configure_nova_hypervisor - Set config files, create data dirs, etc
|
|
function configure_nova_hypervisor {
|
|
configure_libvirt
|
|
LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.firewall.NoopFirewallDriver"}
|
|
|
|
iniset $NOVA_CONF DEFAULT compute_driver ironic.IronicDriver
|
|
iniset $NOVA_CONF DEFAULT firewall_driver $LIBVIRT_FIREWALL_DRIVER
|
|
|
|
if [[ "$IRONIC_USE_RESOURCE_CLASSES" == "False" ]]; then
|
|
iniset $NOVA_CONF DEFAULT scheduler_host_manager ironic_host_manager
|
|
iniset $NOVA_CONF filter_scheduler use_baremetal_filters True
|
|
iniset $NOVA_CONF filter_scheduler host_subset_size 999
|
|
iniset $NOVA_CONF DEFAULT ram_allocation_ratio 1.0
|
|
iniset $NOVA_CONF DEFAULT reserved_host_memory_mb 0
|
|
fi
|
|
|
|
# ironic section
|
|
iniset $NOVA_CONF ironic auth_type password
|
|
iniset $NOVA_CONF ironic username admin
|
|
iniset $NOVA_CONF ironic password $ADMIN_PASSWORD
|
|
iniset $NOVA_CONF ironic auth_url $KEYSTONE_AUTH_URI
|
|
iniset $NOVA_CONF ironic project_domain_id default
|
|
iniset $NOVA_CONF ironic user_domain_id default
|
|
iniset $NOVA_CONF ironic project_name demo
|
|
|
|
iniset $NOVA_CONF ironic api_max_retries 300
|
|
iniset $NOVA_CONF ironic api_retry_interval 5
|
|
}
|
|
|
|
# install_nova_hypervisor() - Install external components
|
|
function install_nova_hypervisor {
|
|
if is_ironic_hardware; then
|
|
return
|
|
fi
|
|
install_libvirt
|
|
if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] && is_ubuntu; then
|
|
# Ubuntu packaging+apparmor issue prevents libvirt from loading
|
|
# the ROM from /usr/share/misc. Workaround by installing it directly
|
|
# to a directory that it can read from. (LP: #1393548)
|
|
sudo rm -rf /usr/share/qemu/sgabios.bin
|
|
sudo cp /usr/share/misc/sgabios.bin /usr/share/qemu/sgabios.bin
|
|
fi
|
|
}
|
|
|
|
# start_nova_hypervisor - Start any required external services
|
|
function start_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
# stop_nova_hypervisor - Stop any external services
|
|
function stop_nova_hypervisor {
|
|
# This function intentionally left blank
|
|
:
|
|
}
|
|
|
|
|
|
# Restore xtrace
|
|
$_XTRACE_HYP_IRONIC
|
|
|
|
# Local variables:
|
|
# mode: shell-script
|
|
# End:
|