Allow NovaRbdPoolName to be role specific

Currently, TripleO does not support to create Compute roles
using different Ceph pools as Nova Ephemeral backends.
An admin should be allowed to have groups of compute nodes
using different Ceph's Ephemeral pools improving
availability, reliability and performance.

The change is straight forward adding the
role_specific tag to the parameter NovaRbdPoolName.

Closes-Bug: 1821039

Change-Id: I7c1ac7c0d3a987c8c9c1e070ea773875aa684d88
This commit is contained in:
Piotr Kopec 2019-04-11 15:51:31 +02:00
parent 8a8d152de3
commit e4901745eb
3 changed files with 22 additions and 3 deletions

View File

@ -119,6 +119,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
CephClientKey:
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
@ -269,7 +272,10 @@ resources:
list_concat_unique:
- - {get_param: CinderRbdPoolName}
- {get_param: CinderBackupRbdPoolName}
- {get_param: NovaRbdPoolName}
- if:
- equals: [{get_param: [RoleParameters, NovaRbdPoolName]}, '']
- {get_param: NovaRbdPoolName}
- {get_param: [RoleParameters, NovaRbdPoolName]}
- {get_param: GlanceRbdPoolName}
# CinderRbdExtraPools is a list (do not indent further)
- {get_param: CinderRbdExtraPools}
@ -301,7 +307,10 @@ resources:
list_concat_unique:
- - {get_param: CinderRbdPoolName}
- {get_param: CinderBackupRbdPoolName}
- {get_param: NovaRbdPoolName}
- if:
- equals: [{get_param: [RoleParameters, NovaRbdPoolName]}, '']
- {get_param: NovaRbdPoolName}
- {get_param: [RoleParameters, NovaRbdPoolName]}
- {get_param: GlanceRbdPoolName}
- if:
- equals: [{get_param: GnocchiRbdPoolName}, '']

View File

@ -74,6 +74,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
CephClientKey:
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
@ -316,6 +319,7 @@ resources:
nova::compute::libvirt::volume_use_multipath: NovaLibvirtVolumeUseMultipath
nova::compute::libvirt::libvirt_hw_machine_type: NovaHWMachineType
compute_enable_ksm: NovaComputeEnableKsm
nova::compute::rbd::libvirt_images_rbd_pool: NovaRbdPoolName
- values: {get_param: [RoleParameters]}
- values:
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
@ -330,6 +334,7 @@ resources:
NovaLibvirtVolumeUseMultipath: {get_param: NovaLibvirtVolumeUseMultipath}
NovaHWMachineType: {get_param: NovaHWMachineType}
NovaComputeEnableKsm: {get_param: NovaComputeEnableKsm}
NovaRbdPoolName: {get_param: NovaRbdPoolName}
conditions:
enable_instance_ha: {equals: [{get_param: EnableInstanceHA}, true]}
@ -382,7 +387,6 @@ outputs:
- - '/etc/ceph/'
- {get_param: CephClusterName}
- '.conf'
nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
nova::compute::rbd::libvirt_rbd_user: {get_param: CephClientUserName}
nova::compute::rbd::rbd_keyring:
list_join:

View File

@ -0,0 +1,6 @@
---
features:
- |
The parameter ``NovaRbdPoolName`` is changed to be role specific.
This requires the usage of host aggregates as otherwise it will break live
migration of instances as we can not do this with different storage backends.