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}