2015-10-29 10:37:54 |
Romanos Skiadas |
description |
From manifests/api.pp
83 # [*volume_api_class*]
84 # (optional) The name of the class that nova will use to access volumes. Cinder is the only option.
85 # Defaults to 'nova.volume.cinder.API'
Since $volume_api_class is optional, the requirement for cinder should be optional as well.
However, even when volume_api_class is set to false, cinder is included in api.pp:
209 include ::cinder::client
This makes creating a puppet module that deploys nova as described in the kilo docs (http://docs.openstack.org/kilo/install-guide/install/apt/content/ch_nova.html) difficult, as the latter do not include cinder at the compute stage.
Something similar to what might need to be done here is done in manifests/db.pp, where the required backend class depends on what is selected:
case $database_connection_real {
/^mysql:\/\//: {
$backend_package = false
require 'mysql::bindings'
require 'mysql::bindings::python'
}
/^postgresql:\/\//: {
$backend_package = false
require 'postgresql::lib::python'
}
/^sqlite:\/\//: {
$backend_package = $::nova::params::sqlite_package_name
}
default: {
fail('Unsupported backend configured')
} |
From manifests/api.pp
83 # [*volume_api_class*]
84 # (optional) The name of the class that nova will use to access volumes. Cinder is the only option.
85 # Defaults to 'nova.volume.cinder.API'
Since $volume_api_class can be set to something other than cinder (eg false), the requirement for cinder should be optional.
However, even when volume_api_class is set to false, cinder is included in api.pp:
209 include ::cinder::client
This makes creating a puppet module that deploys nova as described in the kilo docs (http://docs.openstack.org/kilo/install-guide/install/apt/content/ch_nova.html) difficult, as the latter do not include cinder at the compute stage.
Something similar to what might need to be done here is done in manifests/db.pp, where the required backend class depends on what is selected:
case $database_connection_real {
/^mysql:\/\//: {
$backend_package = false
require 'mysql::bindings'
require 'mysql::bindings::python'
}
/^postgresql:\/\//: {
$backend_package = false
require 'postgresql::lib::python'
}
/^sqlite:\/\//: {
$backend_package = $::nova::params::sqlite_package_name
}
default: {
fail('Unsupported backend configured')
} |
|