# # Define: cinder::backend::nvmeof # # === Parameters: # # [*target_ip_address*] # (Required) The IP address of NVMe target. # # [*target_helper*] # (Required) Target user-land tool to use. # # [*target_protocol*] # (Required) Target protocol to use. # # [*target_port*] # (Optional) Port that NVMe target is listening on. # Defaults to 4420, the NVMe standard I/O port. # # [*target_prefix*] # (Optional) Prefix for LVM volumes. # Defaults to $facts['os_service_default']. # # [*nvmet_port_id*] # (Optional) Port id of the NVMe target. # Defaults to $facts['os_service_default']. # # [*nvmet_ns_id*] # (Optional) The namespace id associated with the subsystem. # Defaults to $facts['os_service_default']. # # [*volume_backend_name*] # (optional) Allows for the volume_backend_name to be separate of $name. # Defaults to: $name # # [*backend_availability_zone*] # (Optional) Availability zone for this volume backend. # If not set, the storage_availability_zone option value # is used as the default for all backends. # Defaults to $facts['os_service_default']. # # [*image_volume_cache_enabled*] # (Optional) Enable Cinder's image cache function for this backend. # Defaults to $facts['os_service_default'], # # [*image_volume_cache_max_size_gb*] # (Optional) Max size of the image volume cache for this backend in GB. # Defaults to $facts['os_service_default'], # # [*image_volume_cache_max_count*] # (Optional) Max number of entries allowed in the image volume cache. # Defaults to $facts['os_service_default'], # # [*reserved_percentage*] # (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'. # # [*volume_group*] # (Optional) Name for the VG that will contain exported volumes # Defaults to $facts['os_service_default'] # # [*nvmeof_conn_info_version*] # (Optional) NVMe-oF Connection Information version # Defaults to $facts['os_service_default'] # # [*lvm_share_target*] # (Optional) Use shared targets or per-volume targets # Defaults to $facts['os_service_default'] # # [*target_secondary_ip_addresses*] # (Optional) Additional, list or comma separated string, ip addresses to map the NVMe-oF volume # Defaults to $facts['os_service_default'] # # [*lvm_type*] # (Optional) Type of LVM volumes to deploy # Defaults to $facts['os_service_default']. # define cinder::backend::nvmeof ( $target_ip_address, $target_helper, $target_protocol, $target_port = '4420', $target_prefix = $facts['os_service_default'], $nvmet_port_id = $facts['os_service_default'], $nvmet_ns_id = $facts['os_service_default'], $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], $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'], $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'], $lvm_share_target = $facts['os_service_default'], $target_secondary_ip_addresses = $facts['os_service_default'], $lvm_type = $facts['os_service_default'], ) { include cinder::deps include cinder::params cinder_config { "${name}/target_ip_address": value => $target_ip_address; "${name}/target_port": value => $target_port; "${name}/target_helper": value => $target_helper; "${name}/target_protocol": value => $target_protocol; "${name}/target_prefix": value => $target_prefix; "${name}/nvmet_port_id": value => $nvmet_port_id; "${name}/nvmet_ns_id": value => $nvmet_ns_id; "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; "${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}/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; "${name}/lvm_share_target": value => $lvm_share_target; "${name}/target_secondary_ip_addresses": value => join(any2array($target_secondary_ip_addresses), ','); "${name}/lvm_type": value => $lvm_type; } 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 => $::cinder::params::nvme_cli_package_name, tag => 'cinder-support-package', }) }