{"heat_template_version": "wallaby", "description": "Openstack Cinder NVMeOF backend\n", "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.\n", "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.\n", "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": {"cinder_nvmeof_host_prep_tasks": {"description": "Host prep tasks related to cinder's NVMeOF backend", "value": {"if": [{"get_param": "CinderEnableNVMeOFBackend"}, [{"name": "ensure /etc/nvme exists", "file": {"path": "/etc/nvme", "state": "directory", "setype": "container_file_t"}}]]}}, "cinder_nvmeof_volumes": {"description": "Volumes related to cinder's NVMeOF backend", "value": {"if": [{"get_param": "CinderEnableNVMeOFBackend"}, ["/etc/nvme:/etc/nvme:z"]]}}, "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": "%{hiera('$NETWORK')}", "params": {"$NETWORK": {"get_param": ["ServiceNetMap", "CinderIscsiNetwork"]}}}}, "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"}}]}]}}}}}