Merge "new tht for Cinder NFS backend"

This commit is contained in:
Zuul 2022-09-23 18:43:54 +00:00 committed by Gerrit Code Review
commit 705826845b
14 changed files with 134 additions and 74 deletions

View File

@ -72,6 +72,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -0,0 +1,109 @@
heat_template_version: wallaby
description: >
Openstack Cinder NFS backend
parameters:
CinderEnableNfsBackend:
default: false
description: Whether to enable or not the NFS backend for Cinder
type: boolean
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
CinderNfsMountOptions:
default: 'context=system_u:object_r:container_file_t:s0'
description: >
Mount options for NFS mounts used by Cinder NFS backend. Effective
when CinderEnableNfsBackend is true.
type: string
CinderNfsServers:
default: ''
description: >
NFS servers used by Cinder NFS backend. Effective when
CinderEnableNfsBackend is true.
type: comma_delimited_list
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.
CinderNfsSnapshotSupport:
default: false
description: >
Whether to enable support for snapshots in the NFS driver. Effective
when CinderEnableNfsBackend is true.
type: boolean
CinderNasSecureFileOperations:
default: false
description: >
Controls whether security enhanced NFS file operations are enabled.
Valid values are 'auto', 'true' or 'false'. Effective when
CinderEnableNfsBackend is true.
type: string
CinderNasSecureFilePermissions:
default: false
description: >
Controls whether security enhanced NFS file permissions are enabled.
Valid values are 'auto', 'true' or 'false'. Effective when
CinderEnableNfsBackend is true.
type: string
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. Use
parameter_merge_strategies to merge it with the defaults.
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
type: json
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
outputs:
role_data:
description: Role data for the Cinder NFS backend.
value:
service_name: cinder_backend_nfs
config_settings:
map_merge:
- tripleo::profile::base::cinder::volume::cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
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}
tripleo::profile::base::cinder::volume::nfs::cinder_nas_secure_file_permissions: {get_param: CinderNasSecureFilePermissions}
- if:
- not: {equals : [{get_param: CinderNfsAvailabilityZone}, '']}
- tripleo::profile::base::cinder::volume::nfs::backend_availability_zone: {get_param: CinderNfsAvailabilityZone}

View File

@ -67,10 +67,6 @@ parameters:
be managed by pacemaker. If these criteria are not met then the cluster
name must be left blank.
type: string
CinderEnableNfsBackend:
default: false
description: Whether to enable or not the NFS backend for Cinder
type: boolean
CinderEnableIscsiBackend:
default: true
description: Whether to enable or not the Iscsi backend for Cinder
@ -93,62 +89,6 @@ 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: >
Mount options for NFS mounts used by Cinder NFS backend. Effective
when CinderEnableNfsBackend is true.
type: string
CinderNfsServers:
default: ''
description: >
NFS servers used by Cinder NFS backend. Effective when
CinderEnableNfsBackend is true.
type: comma_delimited_list
CinderNfsSnapshotSupport:
default: false
description: >
Whether to enable support for snapshots in the NFS driver. Effective
when CinderEnableNfsBackend is true.
type: boolean
CinderNasSecureFileOperations:
default: false
description: >
Controls whether security enhanced NFS file operations are enabled.
Valid values are 'auto', 'true' or 'false'. Effective when
CinderEnableNfsBackend is true.
type: string
CinderNasSecureFilePermissions:
default: false
description: >
Controls whether security enhanced NFS file permissions are enabled.
Valid values are 'auto', 'true' or 'false'. Effective when
CinderEnableNfsBackend is true.
type: string
CinderRbdBackendName:
type: comma_delimited_list
default: 'tripleo_ceph'
@ -255,17 +195,8 @@ outputs:
- get_attr: [CinderCommon, cinder_volume_config_settings]
- tripleo::profile::base::lvm::enable_udev: false
tripleo::profile::base::cinder::volume::cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
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}
tripleo::profile::base::cinder::volume::nfs::cinder_nas_secure_file_permissions: {get_param: CinderNasSecureFilePermissions}
tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_helper: {get_param: CinderISCSIHelper}
tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_protocol: {get_param: CinderISCSIProtocol}
tripleo::profile::base::cinder::volume::rbd::backend_name: {get_param: CinderRbdBackendName}
@ -296,9 +227,6 @@ outputs:
- if:
- not: {equals : [{get_param: CinderISCSIAvailabilityZone}, '']}
- tripleo::profile::base::cinder::volume::iscsi::backend_availability_zone: {get_param: CinderISCSIAvailabilityZone}
- if:
- not: {equals : [{get_param: CinderNfsAvailabilityZone}, '']}
- tripleo::profile::base::cinder::volume::nfs::backend_availability_zone: {get_param: CinderNfsAvailabilityZone}
- if:
- not: {equals : [{get_param: CinderRbdAvailabilityZone}, '']}
- tripleo::profile::base::cinder::volume::rbd::backend_availability_zone: {get_param: CinderRbdAvailabilityZone}

View File

@ -108,6 +108,9 @@ resource_registry:
OS::TripleO::Services::CephIngress: OS::Heat::None
OS::TripleO::Services::CinderApi: deployment/cinder/cinder-api-container-puppet.yaml
OS::TripleO::Services::CinderBackup: OS::Heat::None
# NFS Backend is still optional unless it is explicitly enabled, this is just a separate template.
# This is done in order to retain the legacy behavior, and avoid accidental problems when doing an update.
OS::TripleO::Services::CinderBackendNfs: deployment/cinder/cinder-backend-nfs-puppet.yaml
OS::TripleO::Services::CinderScheduler: deployment/cinder/cinder-scheduler-container-puppet.yaml
OS::TripleO::Services::CinderVolume: deployment/cinder/cinder-volume-pacemaker-puppet.yaml
# BlockStorageCinderVolume uses the non-pcmk cinder-volume template

View File

@ -0,0 +1,9 @@
---
features:
- |
Relocate the existing cinder NFS parameters in their own template.
There are no new parameters, and the existing parameters retain the same default values.
upgrade:
- |
Although the cinder NFS parameters have been moved to their own file, there
is no impact on upgrades because the parameters themselves are unchanged.

View File

@ -71,6 +71,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -58,6 +58,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -60,6 +60,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -68,6 +68,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVxFlexOS
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -69,6 +69,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -69,6 +69,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -67,6 +67,7 @@
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackup
- OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume

View File

@ -74,6 +74,7 @@
- OS::TripleO::Services::CinderBackendDellEMCVNX
- OS::TripleO::Services::CinderBackendDellEMCXtremio
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::CinderBackendNfs
- OS::TripleO::Services::CinderBackendPure
- OS::TripleO::Services::CinderBackendNVMeOF
- OS::TripleO::Services::CinderBackup

View File

@ -4,15 +4,17 @@ environments:
title: Enable Cinder NFS Backend
files:
deployment/cinder/cinder-volume-container-puppet.yaml:
parameters:
- CinderEnableIscsiBackend
deployment/cinder/cinder-backend-nfs-puppet.yaml:
parameters:
- CinderNfsMountOptions
- CinderNfsServers
- CinderEnableNfsBackend
- CinderEnableIscsiBackend
sample_values:
CinderEnableNfsBackend: True
CinderEnableIscsiBackend: False
CinderNfsMountOption: 'context=system_u:object_r:container_file_t:s0'
CinderNfsMountOptions: 'context=system_u:object_r:container_file_t:s0'
CinderNfsServers: '192.168.122.1:/export/cinder'
description: |
Configure and include this environment to enable the use of an NFS