heat_template_version: 2013-05-23 description: > Metaswitch MVS (Metaview Server) parameters: cloud_zone_id: type: string description: The cloud zone for this VF instance index_parameter: type: string vf_name: type: string description: The VF Name; defaults to VMVM for the virtual MVM VNF. constraints: - allowed_pattern: "[a-zA-Z0-9]+" - length: { min: 4, max: 4 } description: Each VF will have a 4-character alphanumeric identifier vf_instance_num: type: string description: The number for this VF instance constraints: - allowed_pattern: "[0-9]+" - length: { min: 2, max: 2 } description: VF instance number must be a two-digit numeric value vf_component: type: string description: The component that this VF instance is running constraints: - allowed_pattern: "[a-zA-Z0-9]+" - length: { min: 3, max: 3 } description: Each VF component will have a 3-character alphanumeric identifier vm_instance_num: type: comma_delimited_list description: VM instance number list must be a list of three-digit numeric value vnf_id: type: string description: Unique ID for this VF instance vf_module_id: type: string description: Unique ID for this VF_MODULE instance bootimage: type: string description: Master bootimage volume id flavor: type: string description: Server flavor constraints: - custom_constraint: nova.flavor key_name: type: string description: SSH key name constraints: - custom_constraint: nova.keypair type_name: type: string availability_zone_0: type: comma_delimited_list description: List of Availability Zone IDs or Names sec_groups: type: comma_delimited_list description: Security groups mgmt_net_id: type: string description: Neutron UUID for the Management network constraints: - custom_constraint: neutron.network virtual_mgmt_ip_0: type: string description: Virtual management network ip address mvs_mgmt_ip_0: type: comma_delimited_list description: List of Management network IP addresses for IPv4 num_instances: type: number description: number of instance of the VF_module compute_image_name: type: string resources: mvs_modules: type: OS::Heat::ResourceGroup properties: count: 3 index_var: { get_param: index_parameter } resource_def: type: mvs.nested.heat.yaml properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } mgmt_net_id: { get_param: mgmt_net_id } virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } indx: "%index%" not_supported_resourceGroup1: type: OS::Heat::ResourceGroup properties: count: 3 resource_def: type: OS::Heat::ResourceGroup properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } mgmt_net_id: { get_param: mgmt_net_id } virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } indx: "%index%" not_supported_resourceGroup2: type: OS::Heat::ResourceGroup properties: count: 3 resource_def: type: { get_param: type_name } properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } mgmt_net_id: { get_param: mgmt_net_id } virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } indx: "%index%" server_compute_get_attr_test: type: OS::Nova::Server properties: config_drive: {get_attr: [mvs_modules]} name: compute_name image: { get_param: compute_image_name } flavor: compute_flavor_name user_data_format: { get_attr: [mvs_modules , resource.1.vnfci_id_1] } user_data: { get_attr: [mvs_modules, resource.vnfci_id_2]}