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
(cherry picked from commit e4901745eb)
(cherry picked from commit 5b5e4a5f8e)
This commit is contained in:
Piotr Kopec 2019-04-18 11:25:35 +02:00
parent babe303f2d
commit 7577c22f1f
7 changed files with 45 additions and 7 deletions

View File

@ -112,6 +112,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
@ -252,7 +255,10 @@ outputs:
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}
@ -284,7 +290,10 @@ outputs:
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

@ -59,7 +59,7 @@ parameter_defaults:
# Type: boolean
NovaEnableRbdBackend: True
#
# The pool name for RBD backend ephemeral storage.
# Type: string
NovaRbdPoolName: vms

View File

@ -43,6 +43,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
ServiceData:
default: {}
description: Dictionary packing service data
@ -150,7 +153,10 @@ outputs:
- ', allow rwx pool='
- - {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}
- {get_param: GnocchiRbdPoolName}
# CinderRbdExtraPools is a list (do not indent further)

View File

@ -33,6 +33,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
ServiceData:
default: {}
description: Dictionary packing service data
@ -97,7 +100,11 @@ outputs:
str_replace:
template: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=CINDERBACKUP_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL, allow rwx pool=GNOCCHI_POOL'
params:
NOVA_POOL: {get_param: NovaRbdPoolName}
NOVA_POOL:
if:
- equals: [{get_param: [RoleParameters, NovaRbdPoolName]}, '']
- {get_param: NovaRbdPoolName}
- {get_param: [RoleParameters, NovaRbdPoolName]}
CINDER_POOL: {get_param: CinderRbdPoolName}
CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
GLANCE_POOL: {get_param: GlanceRbdPoolName}

View File

@ -66,6 +66,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
CephPools:
description: >
It can be used to override settings for one of the predefined pools, or to create
@ -132,7 +135,10 @@ outputs:
- {get_param: ManilaCephFSDataPoolName}
- {get_param: ManilaCephFSMetadataPoolName}
- {get_param: CinderBackupRbdPoolName}
- {get_param: NovaRbdPoolName}
- if:
- equals: [{get_param: [RoleParameters, NovaRbdPoolName]}, '']
- {get_param: NovaRbdPoolName}
- {get_param: [RoleParameters, NovaRbdPoolName]}
- {get_param: GlanceRbdPoolName}
- {get_param: GnocchiRbdPoolName}
# CinderRbdExtraPools is a list (do not indent further)

View File

@ -33,6 +33,9 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
description: The pool name for RBD backend ephemeral storage.
tags:
- role_specific
CephClusterName:
type: string
default: ceph
@ -206,6 +209,7 @@ resources:
nova::compute::libvirt::rx_queue_size: NovaLibvirtRxQueueSize
nova::compute::libvirt::tx_queue_size: NovaLibvirtTxQueueSize
nova::compute::libvirt::volume_use_multipath: NovaLibvirtVolumeUseMultipath
nova::compute::rbd::libvirt_images_rbd_pool: NovaRbdPoolName
- values: {get_param: [RoleParameters]}
- values:
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
@ -213,6 +217,7 @@ resources:
NovaLibvirtRxQueueSize: {get_param: NovaLibvirtRxQueueSize}
NovaLibvirtTxQueueSize: {get_param: NovaLibvirtTxQueueSize}
NovaLibvirtVolumeUseMultipath: {get_param: NovaLibvirtVolumeUseMultipath}
NovaRbdPoolName: {get_param: NovaRbdPoolName}
outputs:
role_data:
@ -246,7 +251,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.