Support for multiple Cinder NFS storage backends

CinderNfsBackendName is enhanced to support a list of backend names,
and the following new parameters are added.

 - CinderNfsMultiConfig provides a way to specify
   parameter values for each backend.

 - CinderNfsSharesConfig allows you to pass NFS shares config for
   a backend instead of hard coded input.
   This parameter is required to support multi-config where
   unique NFS shares config is needed for every backend.

Depends-On: I6d387f6df0e9b85896b25b414ae2cf8bfea4152c
Change-Id: I3c3299ceb9557ca42e7c3bd89dae740f8bd79996
This commit is contained in:
katarimanoj 2022-05-18 19:11:47 +05:30 committed by Manojkatari
parent 37dec41e31
commit 8ee95985b2
3 changed files with 54 additions and 0 deletions

View File

@ -93,12 +93,30 @@ parameters:
default: iscsi
description: Whether to use TCP ('iscsi') or iSER RDMA ('iser') for iSCSI
type: string
CinderNfsBackendName:
type: comma_delimited_list
default: 'tripleo_nfs'
description: A list of Cinder NFS backend names.
CinderNfsMultiConfig:
type: json
default: {}
description: >
Dictionary of settings when configuring multiple NFS backends. The
hash key is the backend name, and the value is a dictionary of parameter
values unique to that backend.
CinderNfsAvailabilityZone:
default: ''
description: >
The availability zone of the NFS Cinder backend.
When set, it overrides the default CinderStorageAvailabilityZone.
type: string
CinderNfsSharesConfig:
type: string
default: '/etc/cinder/shares-nfs.conf'
description: >
File with the list of available NFS shares for the backend. While
configuring multiple NFS backends, the parameter values must be unique
across all of the backends.
CinderNfsMountOptions:
default: 'context=system_u:object_r:container_file_t:s0'
description: >
@ -254,7 +272,10 @@ outputs:
tripleo::profile::base::cinder::volume::cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
tripleo::profile::base::cinder::volume::cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
tripleo::profile::base::cinder::volume::cinder_volume_cluster: {get_param: CinderVolumeCluster}
tripleo::profile::base::cinder::volume::nfs::backend_name: {get_param: CinderNfsBackendName}
tripleo::profile::base::cinder::volume::nfs::multi_config: {get_param: CinderNfsMultiConfig}
tripleo::profile::base::cinder::volume::nfs::cinder_nfs_mount_options: {get_param: CinderNfsMountOptions}
tripleo::profile::base::cinder::volume::nfs::cinder_nfs_shares_config: {get_param: CinderNfsSharesConfig}
tripleo::profile::base::cinder::volume::nfs::cinder_nfs_servers: {get_param: CinderNfsServers}
tripleo::profile::base::cinder::volume::nfs::cinder_nfs_snapshot_support: {get_param: CinderNfsSnapshotSupport}
tripleo::profile::base::cinder::volume::nfs::cinder_nas_secure_file_operations: {get_param: CinderNasSecureFileOperations}

View File

@ -0,0 +1,21 @@
# A Heat environment file which can be used to enable a
# a Cinder NFS backend, configured via puppet
parameter_defaults:
CinderNfsBackendName: ['tripleo_nfs']
CinderEnableNfsBackend: True
CinderNfsMountOptions: context=system_u:object_r:container_file_t:s0
CinderNfsServers: ''
CinderNfsSharesConfig: /etc/cinder/shares-nfs.conf
# To configure multiple NFS backends, use CinderNfsMultiConfig to
# assign parameter values specific to that backend. For example:
# CinderNfsBackendName: ['tripleo_nfs_1', 'tripleo_nfs_2']
# CinderNfsMultiConfig:
# tripleo_nfs_1:
# CinderNfsSnapshotSupport : True
# tripleo_nfs_2:
# CinderNfsSharesConfig: '/etc/cinder/shares-nfs_2.conf'
#
# NOTE - Each NFS backend's CinderNfsSharesConfig must be unique.
# In the above example, tripleo_nfs_1 will be configured with the
# default CinderNfsSharesConfig value ('/etc/cinder/shares-nfs.conf'),
# and tripleo_nfs_2 will be configured with '/etc/cinder/shares-nfs_2.conf'

View File

@ -0,0 +1,12 @@
---
features:
- |
Support deploying multiple Cinder NFS storage backends.
CinderNfsBackendName is enhanced to support a list of backend names,
and the following new parameters are added.
- ``CinderNfsMultiConfig`` provides a way to specify parameter values
for each backend.
- ``CinderNfsSharesConfig`` allows you to pass NFS shares config for
a backend instead of hard coded input.