801494550a
When using resource classes to schedule baremetal nodes the baremetal filters like ExactRam etc should not be used. This patch disables them in the nova config if devstack is configured to enable ironic resource classes. Change-Id: Ic262ccaf8b541308042d61113a953653d2261964
96 lines
2.8 KiB
Bash
96 lines
2.8 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
|
|
iniset $NOVA_CONF DEFAULT scheduler_host_manager ironic_host_manager
|
|
|
|
if [[ "$IRONIC_USE_RESOURCE_CLASSES" == "False" ]]; then
|
|
iniset $NOVA_CONF filter_scheduler use_baremetal_filters True
|
|
fi
|
|
|
|
iniset $NOVA_CONF DEFAULT ram_allocation_ratio 1.0
|
|
iniset $NOVA_CONF DEFAULT reserved_host_memory_mb 0
|
|
# 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
|
|
}
|
|
|
|
# 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:
|