From b624324e63aac92de50edfa691cf3e09b0e24ff9 Mon Sep 17 00:00:00 2001 From: katarimanoj Date: Wed, 24 Aug 2022 21:17:23 +0530 Subject: [PATCH] new tht for Cinder NFS backend Currently, Cinder NFS storage backend is configured as part of cinder-volume-container-puppet.yaml. This change will just relocate the existing cinder NFS parameters in their own template. There are no new parameters, and the existing parameters retain the same default values. Change-Id: I10364adb761cc225173cc437cf2876ed7e896f19 --- ci/custom_ci_roles_data.yaml | 1 + .../cinder/cinder-backend-nfs-puppet.yaml | 109 ++++++++++++++++++ .../cinder-volume-container-puppet.yaml | 72 ------------ overcloud-resource-registry-puppet.j2.yaml | 3 + ...backend_new_template-21243ef33346ed9a.yaml | 9 ++ roles/Controller.yaml | 1 + roles/ControllerNoCeph.yaml | 1 + roles/ControllerNovaStandalone.yaml | 1 + roles/ControllerSriov.yaml | 1 + roles/ControllerStorageDashboard.yaml | 1 + roles/ControllerStorageNfs.yaml | 1 + roles/Standalone.yaml | 1 + roles_data.yaml | 1 + sample-env-generator/storage.yaml | 6 +- 14 files changed, 134 insertions(+), 74 deletions(-) create mode 100644 deployment/cinder/cinder-backend-nfs-puppet.yaml create mode 100644 releasenotes/notes/cinder_nfs_backend_new_template-21243ef33346ed9a.yaml diff --git a/ci/custom_ci_roles_data.yaml b/ci/custom_ci_roles_data.yaml index f5af73ff33..c9e460af11 100644 --- a/ci/custom_ci_roles_data.yaml +++ b/ci/custom_ci_roles_data.yaml @@ -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 diff --git a/deployment/cinder/cinder-backend-nfs-puppet.yaml b/deployment/cinder/cinder-backend-nfs-puppet.yaml new file mode 100644 index 0000000000..b76d92ff03 --- /dev/null +++ b/deployment/cinder/cinder-backend-nfs-puppet.yaml @@ -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} diff --git a/deployment/cinder/cinder-volume-container-puppet.yaml b/deployment/cinder/cinder-volume-container-puppet.yaml index c9157c2306..c1103e6bfb 100644 --- a/deployment/cinder/cinder-volume-container-puppet.yaml +++ b/deployment/cinder/cinder-volume-container-puppet.yaml @@ -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} diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index 870b8a4782..b77e7cf8b4 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -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 diff --git a/releasenotes/notes/cinder_nfs_backend_new_template-21243ef33346ed9a.yaml b/releasenotes/notes/cinder_nfs_backend_new_template-21243ef33346ed9a.yaml new file mode 100644 index 0000000000..8b30275fe0 --- /dev/null +++ b/releasenotes/notes/cinder_nfs_backend_new_template-21243ef33346ed9a.yaml @@ -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. diff --git a/roles/Controller.yaml b/roles/Controller.yaml index 7b647c2620..85b65a2530 100644 --- a/roles/Controller.yaml +++ b/roles/Controller.yaml @@ -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 diff --git a/roles/ControllerNoCeph.yaml b/roles/ControllerNoCeph.yaml index ea67f1a65c..b02c4ff3df 100644 --- a/roles/ControllerNoCeph.yaml +++ b/roles/ControllerNoCeph.yaml @@ -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 diff --git a/roles/ControllerNovaStandalone.yaml b/roles/ControllerNovaStandalone.yaml index 4be43a8048..6651249fc7 100644 --- a/roles/ControllerNovaStandalone.yaml +++ b/roles/ControllerNovaStandalone.yaml @@ -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 diff --git a/roles/ControllerSriov.yaml b/roles/ControllerSriov.yaml index b483027079..cf1e9bac57 100644 --- a/roles/ControllerSriov.yaml +++ b/roles/ControllerSriov.yaml @@ -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 diff --git a/roles/ControllerStorageDashboard.yaml b/roles/ControllerStorageDashboard.yaml index cda1055dfa..b0c59acae0 100644 --- a/roles/ControllerStorageDashboard.yaml +++ b/roles/ControllerStorageDashboard.yaml @@ -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 diff --git a/roles/ControllerStorageNfs.yaml b/roles/ControllerStorageNfs.yaml index ca38891bd0..6ccf63fd90 100644 --- a/roles/ControllerStorageNfs.yaml +++ b/roles/ControllerStorageNfs.yaml @@ -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 diff --git a/roles/Standalone.yaml b/roles/Standalone.yaml index b9971bee13..450eeec7a3 100644 --- a/roles/Standalone.yaml +++ b/roles/Standalone.yaml @@ -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 diff --git a/roles_data.yaml b/roles_data.yaml index 9d18546112..ed49cf1205 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -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 diff --git a/sample-env-generator/storage.yaml b/sample-env-generator/storage.yaml index b4afceb356..a9098f0bba 100644 --- a/sample-env-generator/storage.yaml +++ b/sample-env-generator/storage.yaml @@ -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