From 777dcf40c766e52825a376604bbd5dfcded6697e Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Sun, 17 Mar 2024 14:38:44 +0900 Subject: [PATCH] Add max_over_subscription_ratio parameter ... to each driver configurations, so that users can customize this option in individual driver sections. Note that this option works only when the driver supports thin provisioning. Change-Id: I3da6dd142c2ae5967da09787f01cd39052f14f42 --- manifests/backend/dellemc_powermax.pp | 9 ++++- manifests/backend/dellemc_powerstore.pp | 7 ++++ manifests/backend/dellemc_unity.pp | 7 ++++ manifests/backend/dellemc_xtremio.pp | 7 ++++ manifests/backend/emc_vnx.pp | 23 +++++++---- manifests/backend/hpe3par_iscsi.pp | 7 ++++ manifests/backend/ibm_svf.pp | 7 ++++ manifests/backend/iscsi.pp | 7 ++++ manifests/backend/netapp.pp | 7 ++++ manifests/backend/nfs.pp | 7 ++++ manifests/backend/nvmeof.pp | 24 ++++++++---- manifests/backend/pure.pp | 7 ++++ manifests/backend/rbd.pp | 7 ++++ manifests/backend/solidfire.pp | 7 ++++ manifests/params.pp | 4 ++ ...r_subscription_ratio-c025d4bad81160f4.yaml | 20 ++++++++++ .../cinder_backend_dellemc_powermax_spec.rb | 7 +++- .../cinder_backend_dellemc_powerstore_spec.rb | 2 + .../cinder_backend_dellemc_unity_spec.rb | 2 + .../cinder_backend_dellemc_xtremio_spec.rb | 2 + spec/defines/cinder_backend_emc_vnx_spec.rb | 3 ++ .../cinder_backend_hpe3par_iscsi_spec.rb | 7 +++- spec/defines/cinder_backend_ibm_svf_spec.rb | 7 +++- spec/defines/cinder_backend_iscsi_spec.rb | 3 ++ spec/defines/cinder_backend_netapp_spec.rb | 1 + spec/defines/cinder_backend_nfs_spec.rb | 3 ++ spec/defines/cinder_backend_nvmeof_spec.rb | 39 ++++++++++++++++++- spec/defines/cinder_backend_pure_spec.rb | 11 ++++-- spec/defines/cinder_backend_rbd_spec.rb | 3 ++ spec/defines/cinder_backend_solidfire_spec.rb | 2 + 30 files changed, 221 insertions(+), 28 deletions(-) create mode 100644 releasenotes/notes/max_over_subscription_ratio-c025d4bad81160f4.yaml diff --git a/manifests/backend/dellemc_powermax.pp b/manifests/backend/dellemc_powermax.pp index b6395fde..7c638c3d 100644 --- a/manifests/backend/dellemc_powermax.pp +++ b/manifests/backend/dellemc_powermax.pp @@ -29,7 +29,7 @@ # This will determine # which Volume Driver will be configured; PowerMaxISCSIDriver or PowerMaxFCDriver. # Defaults to 'iSCSI' - +# # [*volume_backend_name*] # (optional) Allows for the volume_backend_name to be separate of $name. # Defaults to: $name @@ -56,6 +56,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -82,6 +87,7 @@ define cinder::backend::dellemc_powermax ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, ) { @@ -107,6 +113,7 @@ define cinder::backend::dellemc_powermax ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/san_ip": value => $san_ip; "${name}/san_login": value => $san_login; diff --git a/manifests/backend/dellemc_powerstore.pp b/manifests/backend/dellemc_powerstore.pp index fb91a7f8..62532513 100644 --- a/manifests/backend/dellemc_powerstore.pp +++ b/manifests/backend/dellemc_powerstore.pp @@ -42,6 +42,11 @@ # (Optional) Max number of entries allowed in the image volume cache. # Defaults to $facts['os_service_default'], # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -65,6 +70,7 @@ define cinder::backend::dellemc_powerstore ( $image_volume_cache_enabled = $facts['os_service_default'], $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], Boolean $manage_volume_type = false, Hash $extra_options = {}, ) { @@ -79,6 +85,7 @@ define cinder::backend::dellemc_powerstore ( "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; "${name}/san_ip": value => $san_ip; "${name}/san_login": value => $san_login; diff --git a/manifests/backend/dellemc_unity.pp b/manifests/backend/dellemc_unity.pp index db806da7..acf43cca 100644 --- a/manifests/backend/dellemc_unity.pp +++ b/manifests/backend/dellemc_unity.pp @@ -42,6 +42,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*unity_io_ports*] # (optional) A list of iSCSI or FC ports to be used. Each port can be # Unix-style glob expressions. The Unity Unisphere API port. @@ -74,6 +79,7 @@ define cinder::backend::dellemc_unity ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $unity_io_ports = $facts['os_service_default'], $unity_storage_pool_names = $facts['os_service_default'], Boolean $manage_volume_type = false, @@ -86,6 +92,7 @@ define cinder::backend::dellemc_unity ( cinder_config { "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; diff --git a/manifests/backend/dellemc_xtremio.pp b/manifests/backend/dellemc_xtremio.pp index 992b0d8e..727aa24f 100644 --- a/manifests/backend/dellemc_xtremio.pp +++ b/manifests/backend/dellemc_xtremio.pp @@ -43,6 +43,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*xtremio_array_busy_retry_count*] # (optional) Number of retries in case array is busy. # Defaults to $facts['os_service_default'] @@ -90,6 +95,7 @@ define cinder::backend::dellemc_xtremio ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $xtremio_array_busy_retry_count = $facts['os_service_default'], $xtremio_array_busy_retry_interval = $facts['os_service_default'], $xtremio_volumes_per_glance_cache = $facts['os_service_default'], @@ -115,6 +121,7 @@ define cinder::backend::dellemc_xtremio ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; "${name}/san_ip": value => $san_ip; "${name}/san_login": value => $san_login; diff --git a/manifests/backend/emc_vnx.pp b/manifests/backend/emc_vnx.pp index 2bf70d2b..ffe0cd92 100644 --- a/manifests/backend/emc_vnx.pp +++ b/manifests/backend/emc_vnx.pp @@ -6,6 +6,15 @@ # # == Parameters # +# [*san_ip*] +# (required) IP address of SAN controller. +# +# [*san_password*] +# (required) Password of SAN controller. +# +# [*storage_vnx_pool_names*] +# (required) Storage pool names. +# # [*volume_backend_name*] # (optional) Allows for the volume_backend_name to be separate of $name. # Defaults to: $name @@ -32,19 +41,15 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # -# [*san_ip*] -# (required) IP address of SAN controller. -# -# [*san_password*] -# (required) Password of SAN controller. +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. # # [*san_login*] # (optional) Login of SAN controller. # Defaults to : 'admin' # -# [*storage_vnx_pool_names*] -# (required) Storage pool names. -# # [*default_timeout*] # (optional) Default timeout for CLI operations in minutes. # Defaults to: '10' @@ -141,6 +146,7 @@ define cinder::backend::emc_vnx ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], Hash $extra_options = {}, $volume_driver = 'cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver', $storage_protocol = 'iscsi', @@ -176,6 +182,7 @@ define cinder::backend::emc_vnx ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/storage_protocol": value => $storage_protocol; "${name}/destroy_empty_storage_group": value => $destroy_empty_storage_group; diff --git a/manifests/backend/hpe3par_iscsi.pp b/manifests/backend/hpe3par_iscsi.pp index 079a589f..807acfeb 100644 --- a/manifests/backend/hpe3par_iscsi.pp +++ b/manifests/backend/hpe3par_iscsi.pp @@ -53,6 +53,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (optional) Setup cinder-volume to use HPE 3par volume driver. # Defaults to 'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver'. @@ -101,6 +106,7 @@ define cinder::backend::hpe3par_iscsi( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $volume_driver = 'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver', $hpe3par_iscsi_chap_enabled = false, $hpe3par_cpg_snap = 'userCPG', @@ -123,6 +129,7 @@ define cinder::backend::hpe3par_iscsi( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/hpe3par_username": value => $hpe3par_username; "${name}/hpe3par_password": value => $hpe3par_password, secret => true; diff --git a/manifests/backend/ibm_svf.pp b/manifests/backend/ibm_svf.pp index 69f5a145..554cd525 100644 --- a/manifests/backend/ibm_svf.pp +++ b/manifests/backend/ibm_svf.pp @@ -69,6 +69,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -97,6 +102,7 @@ define cinder::backend::ibm_svf ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, ) { @@ -117,6 +123,7 @@ define cinder::backend::ibm_svf ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/san_ip": value => $san_ip; "${name}/san_login": value => $san_login; diff --git a/manifests/backend/iscsi.pp b/manifests/backend/iscsi.pp index 7439375b..2a61aea8 100644 --- a/manifests/backend/iscsi.pp +++ b/manifests/backend/iscsi.pp @@ -33,6 +33,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (Optional) Driver to use for volume creation # Defaults to 'cinder.volume.drivers.lvm.LVMVolumeDriver'. @@ -73,6 +78,7 @@ define cinder::backend::iscsi ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', $volume_group = $facts['os_service_default'], $volumes_dir = '/var/lib/cinder/volumes', @@ -106,6 +112,7 @@ define cinder::backend::iscsi ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/target_ip_address": value => $target_ip_address; "${name}/target_helper": value => $target_helper_real; diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp index 4f100f5e..4e88150f 100644 --- a/manifests/backend/netapp.pp +++ b/manifests/backend/netapp.pp @@ -43,6 +43,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*netapp_server_port*] # (optional) The TCP port to use for communication with the storage # system or proxy. If not specified, Data ONTAP drivers will use 80 @@ -192,6 +197,7 @@ define cinder::backend::netapp ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $netapp_server_port = $facts['os_service_default'], $netapp_size_multiplier = $facts['os_service_default'], $netapp_storage_family = $facts['os_service_default'], @@ -237,6 +243,7 @@ and will be removed in a future release.") "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver'; "${name}/netapp_login": value => $netapp_login; "${name}/netapp_password": value => $netapp_password, secret => true; diff --git a/manifests/backend/nfs.pp b/manifests/backend/nfs.pp index 1577647d..0e73b735 100644 --- a/manifests/backend/nfs.pp +++ b/manifests/backend/nfs.pp @@ -27,6 +27,11 @@ # (Optional) Max number of entries allowed in the image volume cache. # Defaults to $facts['os_service_default'], # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*nfs_mount_attempts*] # (optional) The number of attempts to mount nfs shares before raising an # error. At least one attempt will be made to mount an nfs share, regardless @@ -107,6 +112,7 @@ define cinder::backend::nfs ( $image_volume_cache_enabled = $facts['os_service_default'], $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $nfs_mount_attempts = $facts['os_service_default'], $nfs_mount_options = $facts['os_service_default'], $nfs_sparsed_volumes = $facts['os_service_default'], @@ -136,6 +142,7 @@ define cinder::backend::nfs ( "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => 'cinder.volume.drivers.nfs.NfsDriver'; "${name}/nfs_shares_config": value => $nfs_shares_config; "${name}/nfs_mount_attempts": value => $nfs_mount_attempts; diff --git a/manifests/backend/nvmeof.pp b/manifests/backend/nvmeof.pp index 2e086c2e..cf94e3ec 100644 --- a/manifests/backend/nvmeof.pp +++ b/manifests/backend/nvmeof.pp @@ -54,6 +54,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (Optional) Driver to use for volume creation # Defaults to 'cinder.volume.drivers.lvm.LVMVolumeDriver'. @@ -88,6 +93,7 @@ define cinder::backend::nvmeof ( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', $volume_group = $facts['os_service_default'], $nvmeof_conn_info_version = $facts['os_service_default'], @@ -112,6 +118,7 @@ define cinder::backend::nvmeof ( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/volume_group": value => $volume_group; "${name}/nvmeof_conn_info_version": value => $nvmeof_conn_info_version; @@ -119,16 +126,19 @@ define cinder::backend::nvmeof ( "${name}/target_secondary_ip_addresses": value => join(any2array($target_secondary_ip_addresses), ','); } - ensure_packages ( 'nvmetcli', { - ensure => present, - name => 'nvmetcli', - tag => 'cinder-support-package', - }) + if $::cinder::params::nvmetcli_package_name { + ensure_packages ( 'nvmetcli', { + ensure => present, + name => $::cinder::params::nvmetcli_package_name, + tag => 'cinder-support-package', + }) + } else { + warning('The nvmetcli package is not available in this operating system.') + } ensure_packages ( 'nvme-cli', { ensure => present, - name => 'nvme-cli', + name => $::cinder::params::nvme_cli_package_name, tag => 'cinder-support-package', }) - } diff --git a/manifests/backend/pure.pp b/manifests/backend/pure.pp index dd1b74ea..e10e542a 100644 --- a/manifests/backend/pure.pp +++ b/manifests/backend/pure.pp @@ -25,6 +25,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*pure_storage_protocol*] # (optional) Must be either 'iSCSI', 'FC' or 'NVMe'. This will determine # which Volume Driver will be configured; PureISCSIDriver, PureFCDriver @@ -109,6 +114,7 @@ define cinder::backend::pure( $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], Enum['iSCSI', 'FC', 'NVMe'] $pure_storage_protocol = 'iSCSI', $use_chap_auth = $facts['os_service_default'], $use_multipath_for_image_xfer = true, @@ -138,6 +144,7 @@ define cinder::backend::pure( "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/san_ip": value => $san_ip; "${name}/pure_api_token": value => $pure_api_token, secret => true; diff --git a/manifests/backend/rbd.pp b/manifests/backend/rbd.pp index 58fc0a09..a89377de 100644 --- a/manifests/backend/rbd.pp +++ b/manifests/backend/rbd.pp @@ -31,6 +31,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*rbd_ceph_conf*] # (optional) Path to the ceph configuration file to use # Defaults to '/etc/ceph/ceph.conf' @@ -115,6 +120,7 @@ define cinder::backend::rbd ( $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $rbd_ceph_conf = '/etc/ceph/ceph.conf', $rbd_flatten_volume_from_snapshot = $facts['os_service_default'], $rbd_secret_uuid = $facts['os_service_default'], @@ -148,6 +154,7 @@ define cinder::backend::rbd ( "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => 'cinder.volume.drivers.rbd.RBDDriver'; "${name}/rbd_ceph_conf": value => $rbd_ceph_conf; "${name}/rbd_user": value => $rbd_user; diff --git a/manifests/backend/solidfire.pp b/manifests/backend/solidfire.pp index 415dd294..8f30dfcf 100644 --- a/manifests/backend/solidfire.pp +++ b/manifests/backend/solidfire.pp @@ -31,6 +31,11 @@ # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. # +# [*max_over_subscription_ratio*] +# (Optional) Representation of the over subscription ratio when thin +# provisionig is involved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (optional) Setup cinder-volume to use SolidFire volume driver. # Defaults to 'cinder.volume.drivers.solidfire.SolidFireDriver' @@ -125,6 +130,7 @@ define cinder::backend::solidfire( $image_volume_cache_max_size_gb = $facts['os_service_default'], $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], + $max_over_subscription_ratio = $facts['os_service_default'], $volume_driver = 'cinder.volume.drivers.solidfire.SolidFireDriver', $sf_emulate_512 = $facts['os_service_default'], $sf_allow_tenant_qos = $facts['os_service_default'], @@ -152,6 +158,7 @@ define cinder::backend::solidfire( "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/max_over_subscription_ratio": value => $max_over_subscription_ratio; "${name}/volume_driver": value => $volume_driver; "${name}/san_ip": value => $san_ip; "${name}/san_login": value => $san_login; diff --git a/manifests/params.pp b/manifests/params.pp index fcd3cf78..21bad0f0 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -31,6 +31,8 @@ class cinder::params { $lock_path = '/var/lock/cinder' $cinder_wsgi_script_path = '/usr/lib/cgi-bin/cinder' $pywbem_package_name = 'python-pywbem' + $nvme_cli_package_name = 'nvme-cli' + $nvmetcli_package_name = undef } 'RedHat': { $package_name = 'openstack-cinder' @@ -52,6 +54,8 @@ class cinder::params { $lock_path = '/var/lib/cinder/tmp' $cinder_wsgi_script_path = '/var/www/cgi-bin/cinder' $pywbem_package_name = 'pywbem' + $nvme_cli_package_name = 'nvme-cli' + $nvmetcli_package_name = 'nvmetcli' } default: { fail("Unsupported osfamily: ${facts['os']['family']}") diff --git a/releasenotes/notes/max_over_subscription_ratio-c025d4bad81160f4.yaml b/releasenotes/notes/max_over_subscription_ratio-c025d4bad81160f4.yaml new file mode 100644 index 00000000..bd57e412 --- /dev/null +++ b/releasenotes/notes/max_over_subscription_ratio-c025d4bad81160f4.yaml @@ -0,0 +1,20 @@ +--- +features: + - | + The ``max_over_subscription_ratio`` parameter has been added to + the following defined resource types. + + - ``cinder::backend::dellemc_powermax`` + - ``cinder::backend::dellemc_powerstore`` + - ``cinder::backend::dellemc_unity`` + - ``cinder::backend::dellemc_xtremio`` + - ``cinder::backend::emc_vnx`` + - ``cinder::backend::hpe3par_iscsi`` + - ``cinder::backend::ibm_svf`` + - ``cinder::backend::iscsi`` + - ``cinder::backend::netapp`` + - ``cinder::backend::nvmeof`` + - ``cinder::backend::nfs`` + - ``cinder::backend::pure`` + - ``cinder::backend::rbd`` + - ``cinder::backend::solidfire`` diff --git a/spec/defines/cinder_backend_dellemc_powermax_spec.rb b/spec/defines/cinder_backend_dellemc_powermax_spec.rb index 5a27d16f..d3669abb 100644 --- a/spec/defines/cinder_backend_dellemc_powermax_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powermax_spec.rb @@ -31,6 +31,7 @@ describe 'cinder::backend::dellemc_powermax' do is_expected.to contain_cinder_config("#{title}/powermax_port_groups").with_value('[OS-ISCSI-PG]') is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value('') + is_expected.to contain_cinder_config("#{title}/max_over_subscription_ratio").with_value('') is_expected.to contain_cinder_config("#{title}/image_volume_cache_enabled").with_value('') is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_size_gb").with_value('') is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_count").with_value('') @@ -86,14 +87,16 @@ describe 'cinder::backend::dellemc_powermax' do context 'with parameters' do before do params.merge!({ - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, }) end it 'should configure the customized values' do is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('my_zone') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value(10) + is_expected.to contain_cinder_config("#{title}/max_over_subscription_ratio").with_value(1.5) end end diff --git a/spec/defines/cinder_backend_dellemc_powerstore_spec.rb b/spec/defines/cinder_backend_dellemc_powerstore_spec.rb index cfa37cb1..7c7d5acc 100644 --- a/spec/defines/cinder_backend_dellemc_powerstore_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powerstore_spec.rb @@ -20,6 +20,7 @@ describe 'cinder::backend::dellemc_powerstore' do :image_volume_cache_enabled => '', :image_volume_cache_max_size_gb => '', :image_volume_cache_max_count => '', + :max_over_subscription_ratio => '', :storage_protocol => 'iSCSI' , } end @@ -31,6 +32,7 @@ describe 'cinder::backend::dellemc_powerstore' do :image_volume_cache_enabled => true, :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, + :max_over_subscription_ratio => 1.5, :storage_protocol => 'iSCSI' , } end diff --git a/spec/defines/cinder_backend_dellemc_unity_spec.rb b/spec/defines/cinder_backend_dellemc_unity_spec.rb index 9cf68f17..47e36a0c 100644 --- a/spec/defines/cinder_backend_dellemc_unity_spec.rb +++ b/spec/defines/cinder_backend_dellemc_unity_spec.rb @@ -21,6 +21,7 @@ describe 'cinder::backend::dellemc_unity' do :image_volume_cache_max_size_gb => '', :image_volume_cache_max_count => '', :reserved_percentage => '', + :max_over_subscription_ratio => '', :unity_io_ports => '', :unity_storage_pool_names => '', } @@ -33,6 +34,7 @@ describe 'cinder::backend::dellemc_unity' do :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, :unity_io_ports => '1,42,66', :unity_storage_pool_names => 'pool_1,pool_2', } diff --git a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb index a7a41a68..ac702244 100644 --- a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb +++ b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb @@ -21,6 +21,7 @@ describe 'cinder::backend::dellemc_xtremio' do :image_volume_cache_max_size_gb => '', :image_volume_cache_max_count => '', :reserved_percentage => '', + :max_over_subscription_ratio => '', :xtremio_array_busy_retry_count => '', :xtremio_array_busy_retry_interval => '', :xtremio_volumes_per_glance_cache => '', @@ -35,6 +36,7 @@ describe 'cinder::backend::dellemc_xtremio' do :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, :xtremio_array_busy_retry_count => 15, :xtremio_array_busy_retry_interval => 6, :xtremio_volumes_per_glance_cache => 100, diff --git a/spec/defines/cinder_backend_emc_vnx_spec.rb b/spec/defines/cinder_backend_emc_vnx_spec.rb index 46584cb9..7c9a83b3 100644 --- a/spec/defines/cinder_backend_emc_vnx_spec.rb +++ b/spec/defines/cinder_backend_emc_vnx_spec.rb @@ -41,6 +41,7 @@ describe 'cinder::backend::emc_vnx' do is_expected.to contain_cinder_config('emc/image_volume_cache_max_size_gb').with_value('') is_expected.to contain_cinder_config('emc/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('emc/reserved_percentage').with_value('') + is_expected.to contain_cinder_config('emc/max_over_subscription_ratio').with_value('') } end @@ -66,6 +67,7 @@ describe 'cinder::backend::emc_vnx' do :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, }) end @@ -88,6 +90,7 @@ describe 'cinder::backend::emc_vnx' do is_expected.to contain_cinder_config('emc/image_volume_cache_max_size_gb').with_value(params[:image_volume_cache_max_size_gb]) is_expected.to contain_cinder_config('emc/image_volume_cache_max_count').with_value(params[:image_volume_cache_max_count]) is_expected.to contain_cinder_config('emc/reserved_percentage').with_value(params[:reserved_percentage]) + is_expected.to contain_cinder_config('emc/max_over_subscription_ratio').with_value(1.5) } it { is_expected.to contain_cinder_type('emc').with( diff --git a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb index 17e0259c..96d5536e 100644 --- a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb +++ b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb @@ -28,6 +28,7 @@ describe 'cinder::backend::hpe3par_iscsi' do is_expected.to contain_cinder_config('hpe3par_iscsi/image_volume_cache_max_size_gb').with_value('') is_expected.to contain_cinder_config('hpe3par_iscsi/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('hpe3par_iscsi/reserved_percentage').with_value('') + is_expected.to contain_cinder_config('hpe3par_iscsi/max_over_subscription_ratio').with_value('') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_api_url').with_value('https://172.0.0.2:8080/api/v1') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_username').with_value('3paradm') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_password').with_value('password') @@ -41,13 +42,15 @@ describe 'cinder::backend::hpe3par_iscsi' do context 'with parameters' do before :each do params.merge!({ - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, }) end it { is_expected.to contain_cinder_config('hpe3par_iscsi/backend_availability_zone').with_value('my_zone') is_expected.to contain_cinder_config('hpe3par_iscsi/reserved_percentage').with_value(10) + is_expected.to contain_cinder_config('hpe3par_iscsi/max_over_subscription_ratio').with_value(1.5) } end diff --git a/spec/defines/cinder_backend_ibm_svf_spec.rb b/spec/defines/cinder_backend_ibm_svf_spec.rb index 44abebb0..79caa704 100644 --- a/spec/defines/cinder_backend_ibm_svf_spec.rb +++ b/spec/defines/cinder_backend_ibm_svf_spec.rb @@ -34,6 +34,7 @@ describe 'cinder::backend::ibm_svf' do is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_size_gb").with_value('') is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_count").with_value('') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value('') + is_expected.to contain_cinder_config("#{title}/max_over_subscription_ratio").with_value('') end end @@ -62,14 +63,16 @@ describe 'cinder::backend::ibm_svf' do context 'with parameters' do before do params.merge!( - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, ) end it 'should configure the customized values' do is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('my_zone') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value(10) + is_expected.to contain_cinder_config("#{title}/max_over_subscription_ratio").with_value(1.5) end end diff --git a/spec/defines/cinder_backend_iscsi_spec.rb b/spec/defines/cinder_backend_iscsi_spec.rb index 7325095a..ea8c0d8b 100644 --- a/spec/defines/cinder_backend_iscsi_spec.rb +++ b/spec/defines/cinder_backend_iscsi_spec.rb @@ -12,6 +12,7 @@ describe 'cinder::backend::iscsi' do is_expected.to contain_cinder_config('hippo/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('') is_expected.to contain_cinder_config('hippo/reserved_percentage').with_value('') + is_expected.to contain_cinder_config('hippo/max_over_subscription_ratio').with_value('') is_expected.to contain_cinder_config('hippo/volume_driver').with_value('cinder.volume.drivers.lvm.LVMVolumeDriver') is_expected.to contain_cinder_config('hippo/target_ip_address').with_value('') is_expected.to contain_cinder_config('hippo/target_helper').with_value(platform_params[:target_helper]) @@ -29,6 +30,7 @@ describe 'cinder::backend::iscsi' do :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, :target_ip_address => '192.0.2.1', :volume_group => 'volumegroup', :volumes_dir => '/etc/cinder/volumes', @@ -41,6 +43,7 @@ describe 'cinder::backend::iscsi' do is_expected.to contain_cinder_config('hippo/image_volume_cache_max_size_gb').with_value(100) is_expected.to contain_cinder_config('hippo/image_volume_cache_max_count').with_value(101) is_expected.to contain_cinder_config('hippo/reserved_percentage').with_value(10) + is_expected.to contain_cinder_config('hippo/max_over_subscription_ratio').with_value(1.5) is_expected.to contain_cinder_config('hippo/target_ip_address').with_value('192.0.2.1') is_expected.to contain_cinder_config('hippo/volume_group').with_value('volumegroup') is_expected.to contain_cinder_config('hippo/volumes_dir').with_value('/etc/cinder/volumes') diff --git a/spec/defines/cinder_backend_netapp_spec.rb b/spec/defines/cinder_backend_netapp_spec.rb index c3d49dab..41749bfd 100644 --- a/spec/defines/cinder_backend_netapp_spec.rb +++ b/spec/defines/cinder_backend_netapp_spec.rb @@ -21,6 +21,7 @@ describe 'cinder::backend::netapp' do :image_volume_cache_max_size_gb => '', :image_volume_cache_max_count => '', :reserved_percentage => '', + :max_over_subscription_ratio => '', :netapp_server_port => '', :netapp_size_multiplier => '', :netapp_storage_family => '', diff --git a/spec/defines/cinder_backend_nfs_spec.rb b/spec/defines/cinder_backend_nfs_spec.rb index 84446c67..f54741cf 100644 --- a/spec/defines/cinder_backend_nfs_spec.rb +++ b/spec/defines/cinder_backend_nfs_spec.rb @@ -15,6 +15,7 @@ describe 'cinder::backend::nfs' do is_expected.to contain_cinder_config('hippo/volume_backend_name').with_value('hippo') is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('') is_expected.to contain_cinder_config('hippo/volume_driver').with_value('cinder.volume.drivers.nfs.NfsDriver') + is_expected.to contain_cinder_config('hippo/max_over_subscription_ratio').with_value('') is_expected.to contain_cinder_config('hippo/nfs_shares_config').with_value('/etc/cinder/shares.conf') is_expected.to contain_cinder_config('hippo/nfs_mount_attempts').with_value('') is_expected.to contain_cinder_config('hippo/nfs_mount_options').with_value('') @@ -39,6 +40,7 @@ describe 'cinder::backend::nfs' do before :each do params.merge!({ :backend_availability_zone => 'my_zone', + :max_over_subscription_ratio => 1.5, :nfs_mount_attempts => '4', :nfs_mount_options => 'vers=3', :nfs_shares_config => '/etc/cinder/other_shares.conf', @@ -57,6 +59,7 @@ describe 'cinder::backend::nfs' do is_expected.to contain_cinder_config('hippo/volume_backend_name').with_value('hippo') is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('my_zone') is_expected.to contain_cinder_config('hippo/volume_driver').with_value('cinder.volume.drivers.nfs.NfsDriver') + is_expected.to contain_cinder_config('hippo/max_over_subscription_ratio').with_value(1.5) is_expected.to contain_cinder_config('hippo/nfs_shares_config').with_value('/etc/cinder/other_shares.conf') is_expected.to contain_cinder_config('hippo/nfs_mount_attempts').with_value('4') is_expected.to contain_cinder_config('hippo/nfs_mount_options').with_value('vers=3') diff --git a/spec/defines/cinder_backend_nvmeof_spec.rb b/spec/defines/cinder_backend_nvmeof_spec.rb index 391d24dc..c3dfb01b 100644 --- a/spec/defines/cinder_backend_nvmeof_spec.rb +++ b/spec/defines/cinder_backend_nvmeof_spec.rb @@ -30,20 +30,41 @@ describe 'cinder::backend::nvmeof' do is_expected.to contain_cinder_config('nvme-backend/image_volume_cache_max_size_gb').with_value('') is_expected.to contain_cinder_config('nvme-backend/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('nvme-backend/reserved_percentage').with_value('') + is_expected.to contain_cinder_config('nvme-backend/max_over_subscription_ratio').with_value('') is_expected.to contain_cinder_config('nvme-backend/volume_driver').with_value('cinder.volume.drivers.lvm.LVMVolumeDriver') is_expected.to contain_cinder_config('nvme-backend/nvmeof_conn_info_version').with_value('') is_expected.to contain_cinder_config('nvme-backend/lvm_share_target').with_value('') is_expected.to contain_cinder_config('nvme-backend/target_secondary_ip_addresses').with_value('') } + end + end + shared_examples 'cinder::backend::nvmeof in RedHat' do + context 'with default params' do it { is_expected.to contain_package('nvmetcli').with( - :name => 'nvmetcli', + :name => platform_params[:nvmetcli_package_name], :ensure => 'installed', :tag => 'cinder-support-package', )} it { is_expected.to contain_package('nvme-cli').with( - :name => 'nvme-cli', + :name => platform_params[:nvme_cli_package_name], + :ensure => 'installed', + :tag => 'cinder-support-package', + )} + end + end + + shared_examples 'cinder::backend::nvmeof in Debian' do + context 'with default params' do + it { is_expected.to contain_package('nvmetcli').with( + :name => platform_params[:nvmetcli_package_name], + :ensure => 'installed', + :tag => 'cinder-support-package', + )} + + it { is_expected.to contain_package('nvme-cli').with( + :name => platform_params[:nvme_cli_package_name], :ensure => 'installed', :tag => 'cinder-support-package', )} @@ -58,6 +79,20 @@ describe 'cinder::backend::nvmeof' do facts.merge!(OSDefaults.get_facts()) end + let :platform_params do + case facts[:os]['family'] + when 'Debian' + { + :nvme_cli_package_name => 'nvme-cli', + } + when 'RedHat' + { + :nvme_cli_package_name => 'nvme-cli', + :nvmetcli_package_name => 'nvmetcli', + } + end + end + it_behaves_like 'cinder::backend::nvmeof' end end diff --git a/spec/defines/cinder_backend_pure_spec.rb b/spec/defines/cinder_backend_pure_spec.rb index c93a3c83..0131e59f 100644 --- a/spec/defines/cinder_backend_pure_spec.rb +++ b/spec/defines/cinder_backend_pure_spec.rb @@ -23,6 +23,7 @@ describe 'cinder::backend::pure' do is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('pure/reserved_percentage').with_value('') + is_expected.to contain_cinder_config('pure/max_over_subscription_ratio').with_value('') is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') @@ -37,10 +38,11 @@ describe 'cinder::backend::pure' do context 'pure iscsi volume driver' do let :params do req_params.merge({ - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, - :pure_storage_protocol => 'iSCSI', - :use_chap_auth => 'true', + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, + :pure_storage_protocol => 'iSCSI', + :use_chap_auth => 'true', }) end @@ -51,6 +53,7 @@ describe 'cinder::backend::pure' do is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('pure/reserved_percentage').with_value(10) + is_expected.to contain_cinder_config('pure/max_over_subscription_ratio').with_value(1.5) is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') diff --git a/spec/defines/cinder_backend_rbd_spec.rb b/spec/defines/cinder_backend_rbd_spec.rb index e21016e8..1e2d884d 100644 --- a/spec/defines/cinder_backend_rbd_spec.rb +++ b/spec/defines/cinder_backend_rbd_spec.rb @@ -32,6 +32,7 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_host").with_value('rbd:'"#{req_params[:rbd_pool]}") is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_availability_zone").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/reserved_percentage").with_value('') + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/max_over_subscription_ratio").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connect_timeout").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_interval").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_retries").with_value('') @@ -51,6 +52,7 @@ describe 'cinder::backend::rbd' do :backend_host => 'test_host.fqdn.com', :backend_availability_zone => 'my_zone', :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, :rbd_ceph_conf => '/opt/ceph.conf', :rbd_flatten_volume_from_snapshot => true, :rbd_secret_uuid => 'b129523a-61a5-4653-86d1-2b055f970801', @@ -81,6 +83,7 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_host").with_value('test_host.fqdn.com') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_availability_zone").with_value('my_zone') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/reserved_percentage").with_value(10) + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/max_over_subscription_ratio").with_value(1.5) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connect_timeout").with_value(params[:rados_connect_timeout]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_interval").with_value(params[:rados_connection_interval]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_retries").with_value(params[:rados_connection_retries]) diff --git a/spec/defines/cinder_backend_solidfire_spec.rb b/spec/defines/cinder_backend_solidfire_spec.rb index 7a5c5b3c..fa85e123 100644 --- a/spec/defines/cinder_backend_solidfire_spec.rb +++ b/spec/defines/cinder_backend_solidfire_spec.rb @@ -20,6 +20,7 @@ describe 'cinder::backend::solidfire' do :image_volume_cache_max_size_gb => '', :image_volume_cache_max_count => '', :reserved_percentage => '', + :max_over_subscription_ratio => '', :sf_emulate_512 => '', :sf_allow_tenant_qos => '', :sf_account_prefix => '', @@ -43,6 +44,7 @@ describe 'cinder::backend::solidfire' do :image_volume_cache_max_size_gb => 100, :image_volume_cache_max_count => 101, :reserved_percentage => 10, + :max_over_subscription_ratio => 1.5, :sf_emulate_512 => true, :sf_allow_tenant_qos => false, :sf_account_prefix => 'acc_prefix',