Add support for Packstack to manage a default set of flavors

Nova no longer provides flavors by default in Newton.
This commit adds a parameter to have Packstack manage a
default set of flavors and it defaults to true to keep
backwards compatibility.

This implementation will need to be revisited but for now this
should allow us to progress in Newton.

Change-Id: I4f1bdff77cc3ea90997fe69a80ed314838a5f075
This commit is contained in:
David Moreau-Simard 2016-04-18 11:25:27 -04:00
parent 37ff27318a
commit 1db90cb632
3 changed files with 64 additions and 2 deletions

View File

@ -725,6 +725,9 @@ Nova Options
**CONFIG_NOVA_KS_PW**
Password to use for the Compute service to authenticate with the Identity service.
**CONFIG_NOVA_MANAGE_FLAVORS**
Whether or not Packstack should manage a default initial set of Nova flavors. Defaults to 'y'.
**CONFIG_NOVA_SCHED_CPU_ALLOC_RATIO**
Overcommitment ratio for virtual to physical CPUs. Specify 1.0 to disable CPU overcommitment.

View File

@ -95,6 +95,20 @@ def initConfig(controller):
"NEED_CONFIRM": True,
"CONDITION": False},
{"CMD_OPTION": "nova-manage-flavors",
"PROMPT": (
"Should Packstack manage default Nova flavors"
),
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
"DEFAULT_VALUE": "y",
"MASK_INPUT": False,
"LOOSE_VALIDATION": False,
"CONF_NAME": "CONFIG_NOVA_MANAGE_FLAVORS",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "novasched-cpu-allocation-ratio",
"PROMPT": "Enter the CPU overcommitment ratio. Set to 1.0 to "
"disable CPU overcommitment",

View File

@ -13,13 +13,16 @@ if $config_use_neutron == 'y' {
$default_floating_pool = 'nova'
}
$auth_uri = hiera('CONFIG_KEYSTONE_PUBLIC_URL')
$admin_password = hiera('CONFIG_NOVA_KS_PW')
class { '::nova::api':
api_bind_address => $bind_host,
metadata_listen => $bind_host,
enabled => true,
auth_uri => hiera('CONFIG_KEYSTONE_PUBLIC_URL'),
auth_uri => $auth_uri,
identity_uri => hiera('CONFIG_KEYSTONE_ADMIN_URL'),
admin_password => hiera('CONFIG_NOVA_KS_PW'),
admin_password => $admin_password,
neutron_metadata_proxy_shared_secret => hiera('CONFIG_NEUTRON_METADATA_PW_UNQUOTED', undef),
default_floating_pool => $default_floating_pool,
pci_alias => hiera('CONFIG_NOVA_PCI_ALIAS'),
@ -37,3 +40,45 @@ if $db_purge {
destination => '/dev/null',
}
}
# TODO: Refactor flavor provisioning when https://review.openstack.org/#/c/305463/ lands
$manage_flavors = str2bool(hiera('CONFIG_NOVA_MANAGE_FLAVORS'))
if $manage_flavors {
$os_auth_options = "--os-username nova --os-password ${admin_password} --os-tenant-name services --os-auth-url ${auth_uri}"
Exec {
path => '/usr/bin:/bin:/usr/sbin:/sbin'
}
# Manage a default set of flavors
exec { 'manage_m1.tiny_nova_flavor':
provider => shell,
command => "openstack ${os_auth_options} flavor create --id 1 --ram 512 --disk 1 --vcpus 1 m1.tiny",
unless => "openstack ${os_auth_options} flavor list | grep m1.tiny",
require => Class['::nova::api'],
}
exec { 'manage_m1.small_nova_flavor':
provider => shell,
command => "openstack ${os_auth_options} flavor create --id 2 --ram 2048 --disk 20 --vcpus 1 m1.small",
unless => "openstack ${os_auth_options} flavor list | grep m1.small",
require => Class['::nova::api'],
}
exec { 'manage_m1.medium_nova_flavor':
provider => shell,
command => "openstack ${os_auth_options} flavor create --id 3 --ram 4096 --disk 40 --vcpus 2 m1.medium",
unless => "openstack ${os_auth_options} flavor list | grep m1.medium",
require => Class['::nova::api'],
}
exec { 'manage_m1.large_nova_flavor':
provider => shell,
command => "openstack ${os_auth_options} flavor create --id 4 --ram 8192 --disk 80 --vcpus 4 m1.large",
unless => "openstack ${os_auth_options} flavor list | grep m1.large",
require => Class['::nova::api'],
}
exec { 'manage_m1.xlarge_nova_flavor':
provider => shell,
command => "openstack ${os_auth_options} flavor create --id 5 --ram 16384 --disk 160 --vcpus 8 m1.xlarge",
unless => "openstack ${os_auth_options} flavor list | grep m1.xlarge",
require => Class['::nova::api'],
}
}