Files
puppet-nova/manifests/conductor.pp
Oliver Walsh d7eb253e4d Include nova::availability_zone in nova::api and nova::conductor
For some reason this was included in nova::compute and nova::scheduler
but never included in nova::api eventhough bug #1529065 specifically
calls out the fact that it is missing.

Looking at the code - nova-api definitely requires it.
E.g the server create request handler sets the target AZ to
CONF.default_schedule_zone if none
https://github.com/openstack/nova/blob/stable/queens/nova/api/openstack/compute/servers.py#L486

and the az request handler skips the internal_service_availabily_zone
when listing AZs
https://github.com/openstack/nova/blob/stable/queens/nova/api/openstack/compute/availability_zone.py#L38

nova-conductor also requires it as it calls
availability_zones.get_host_availability_zone which defaults to
CONF.default_availability_zone

Change-Id: If4d6a4a8f4cc1e7066cacb00da67d5433acd6ac5
Closes-bug: #1529065
2019-10-21 16:31:44 +01:00

62 lines
1.7 KiB
Puppet

# == Class: nova::conductor
#
# Manages nova conductor package and service
#
# === Parameters:
#
# [*enabled*]
# (optional) Whether to enable the nova-conductor service
# Defaults to true
#
# [*manage_service*]
# (optional) Whether to start/stop the service
# Defaults to true
#
# [*ensure_package*]
# (optional) The state of the nova conductor package
# Defaults to 'present'
#
# [*workers*]
# (optional) Number of workers for OpenStack Conductor service
# Defaults to $::os_workers
#
# [*enable_new_services*]
# (optional) When a new service (for example "nova-compute") start up, it gets
# registered in the database as an enabled service. Setting this to false will
# cause new services to be disabled when added. This config option is only used
# by the conductor service which is responsible for creating the service entries.
# Defaults to $::os_service_default
#
class nova::conductor(
$enabled = true,
$manage_service = true,
$ensure_package = 'present',
$workers = $::os_workers,
$enable_new_services = $::os_service_default,
) {
include ::nova::deps
include ::nova::db
include ::nova::params
include ::nova::workarounds
include ::nova::availability_zone
nova::generic_service { 'conductor':
enabled => $enabled,
manage_service => $manage_service,
package_name => $::nova::params::conductor_package_name,
service_name => $::nova::params::conductor_service_name,
ensure_package => $ensure_package,
}
if $workers {
nova_config {
'conductor/workers': value => $workers;
}
}
nova_config {
'DEFAULT/enable_new_services': value => $enable_new_services
}
}