95 lines
3.7 KiB
YAML
95 lines
3.7 KiB
YAML
heat_template_version: wallaby
|
|
|
|
description: >
|
|
Openstack Cinder NVMeOF backend
|
|
|
|
parameters:
|
|
CinderEnableNVMeOFBackend:
|
|
default: false
|
|
description: Whether to enable or not the NVMeOF backend for Cinder
|
|
type: boolean
|
|
CinderNVMeOFBackendName:
|
|
type: string
|
|
default: 'tripleo_nvmeof'
|
|
CinderNVMeOFAvailabilityZone:
|
|
default: ''
|
|
description: >
|
|
The availability zone of the NVMeOF Cinder backend.
|
|
When set, it overrides the default CinderStorageAvailabilityZone.
|
|
type: string
|
|
CinderNVMeOFTargetPort:
|
|
type: number
|
|
default: 4420
|
|
CinderNVMeOFTargetHelper:
|
|
type: string
|
|
default: 'nvmet'
|
|
CinderNVMeOFTargetProtocol:
|
|
type: string
|
|
default: 'nvmet_rdma'
|
|
description: >
|
|
The target protocol, supported values are nvmet_rdma and nvmet_tcp.
|
|
constraints:
|
|
- allowed_values: ['nvmet_rdma', 'nvmet_tcp']
|
|
CinderNVMeOFTargetPrefix:
|
|
type: string
|
|
default: 'nvme-subsystem'
|
|
CinderNVMeOFTargetPortId:
|
|
type: number
|
|
default: 1
|
|
CinderNVMeOFTargetNameSpaceId:
|
|
type: number
|
|
default: 10
|
|
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 NVMeOF backend.
|
|
value:
|
|
service_name: cinder_backend_nvmeof
|
|
firewall_rules:
|
|
'120 LVM nvmet target':
|
|
dport: {get_param: CinderNVMeOFTargetPort}
|
|
config_settings:
|
|
map_merge:
|
|
- tripleo::profile::base::cinder::volume::cinder_enable_nvmeof_backend: {get_param: CinderEnableNVMeOFBackend}
|
|
tripleo::profile::base::cinder::volume::nvmeof::volume_backend_name: {get_param: CinderNVMeOFBackendName}
|
|
tripleo::profile::base::cinder::volume::nvmeof::target_port: {get_param: CinderNVMeOFTargetPort}
|
|
tripleo::profile::base::cinder::volume::nvmeof::target_helper: {get_param: CinderNVMeOFTargetHelper}
|
|
tripleo::profile::base::cinder::volume::nvmeof::target_protocol: {get_param: CinderNVMeOFTargetProtocol}
|
|
tripleo::profile::base::cinder::volume::nvmeof::target_prefix: {get_param: CinderNVMeOFTargetPrefix}
|
|
tripleo::profile::base::cinder::volume::nvmeof::nvmet_port_id: {get_param: CinderNVMeOFTargetPortId}
|
|
tripleo::profile::base::cinder::volume::nvmeof::nvmet_ns_id: {get_param: CinderNVMeOFTargetNameSpaceId}
|
|
tripleo::profile::base::cinder::volume::nvmeof::target_ip_address:
|
|
str_replace:
|
|
template:
|
|
"%{lookup('$NETWORK')}"
|
|
params:
|
|
$NETWORK: {get_param: [ServiceNetMap, CinderIscsiNetwork]}
|
|
# This is also needed (in addition to tripleo::profile::base::cinder::volume::nvmeof::volume_backend_name)
|
|
cinder::backend::nvmeof::volume_backend_name: {get_param: CinderNVMeOFBackendName}
|
|
- if:
|
|
- not: {equals : [{get_param: CinderNVMeOFAvailabilityZone}, '']}
|
|
- tripleo::profile::base::cinder::volume::nvmeof::backend_availability_zone: {get_param: CinderNVMeOFAvailabilityZone}
|