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 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 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 indx: type: number description: Index of the current instance resources: mgmt_port: type: OS::Neutron::Port properties: name: str_replace: template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port params: $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: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] } network_id: { get_param: mgmt_net_id } security_groups: [{ get_param: sec_groups }] fixed_ips: - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] } allowed_address_pairs: - ip_address: { get_param: virtual_mgmt_ip_0 } vnfci: type: OS::Nova::Server properties: name: str_replace: template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM params: $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: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] } flavor: { get_param: flavor } key_name: { get_param: key_name } networks: - port: { get_resource: mgmt_port } availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } outputs: vnfci_id_1: value: { get_resource: vnfci } vnfci_id_2: value: { get_resource: vnfci }