## Copyright:: Nokia Corporation 2017 ## Note: Nokia VM HOT file for CFX ## Name: "tdcore.yaml" ## Date: 20 Mar 2017 ## Kilo Version heat_template_version: 2015-04-30 description: IMS TDCORE VM parameters: vcscf_name_delimeter: type: string description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)' constraints: - allowed_values: [ '-', '', '_', '.'] vnf_name: type: string description: Unique name for this VF instance vnf_id: type: string description: Unique ID for this VF instance vf_module_name: type: string description: Unique name for this VF Module instance vf_module_id: type: string description: Unique ID for this VF Module instance tdcore_security_group: type: string description: security group tdcore_flavor_name: type: string description: flavor name tdcore_image_name: type: string description: image name internal_net_id: type: string description: internal network name/uuid internal_dpdk_net_id: type: string description: internal dpdk network name/uuid vcscf_internal_netmask: type: string description: internal netmask vcscf_release: type: string description: "IMS release" vcscf_dn: type: string description: "DN name" vcscf_du: type: string description: "DU name" vcscf_cmrepo_address: type: string description: "CMRepo IP or FQDN" vcscf_swrepo_address: type: string description: SWRepo IP or FQDN vcscf_dns_address: type: string description: DNS server IP vcscf_internal_network_mtu: type: number description: MTU for internal network interface (eth0) constraints: - range: { min: 1000, max: 9100 } vcscf_gateway: type: string description: OAM unit virtual ip tdcore_names: type: comma_delimited_list description: "List of instance names for TDCORE instances" tdcore_internal_ips: type: comma_delimited_list description: "List of Internal Lan IPs for TDCORE instances" tdcore_dpdk_ips: type: comma_delimited_list description: "List of DPDK Lan IPs for TDCORE instances" tdcore_uuids: type: comma_delimited_list description: "List of UUIDs generated by cmrepo for TDCORE instances" availability_zone_0: type: string description: Availability zone name. tdcore_server_group: type: string description: server group name/id index: type: number description: index constraints: - range: { min: 0, max: 7 } resources: tdcore_internal_0_port_0: type: OS::Neutron::Port properties: name: str_replace: template: $PREFIX$DELeth0 params: $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] } $DEL: { get_param: vcscf_name_delimeter } network: { get_param: internal_net_id } security_groups: - { get_param: tdcore_security_group } fixed_ips: - ip_address: { get_param: [ tdcore_internal_ips, { get_param: index } ] } tdcore_dpdk_0_port_1: type: OS::Neutron::Port properties: name: str_replace: template: $PREFIX$DELeth1 params: $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] } $DEL: { get_param: vcscf_name_delimeter } network: { get_param: internal_dpdk_net_id } security_groups: - { get_param: tdcore_security_group } fixed_ips: - ip_address: { get_param: [ tdcore_dpdk_ips, { get_param: index } ] } allowed_address_pairs: - ip_address: "0.0.0.0/1" - ip_address: "128.0.0.0/1" - ip_address: "::/1" - ip_address: "8000::/1" tdcore_server_0: type: OS::Nova::Server properties: availability_zone: { get_param: availability_zone_0 } scheduler_hints: { group: { get_param: tdcore_server_group } } name: { get_param: [ tdcore_names, { get_param: index } ] } flavor: { get_param: tdcore_flavor_name } image: { get_param: tdcore_image_name } metadata: vnf_id: {get_param: vnf_id} vm_role: tdcore vnf_name: {get_param: vnf_name} vf_module_id: {get_param: vf_module_id} vf_module_name: {get_param: vf_module_name} networks: - port: { get_resource: tdcore_internal_0_port_0 } - port: { get_resource: tdcore_dpdk_0_port_1 } config_drive: True user_data_format: RAW user_data: str_replace: template: | DN=$dn_name DUName=$du_name Uuid=$uuid SwRepoIp=$swrepo_ip CmRepoIp=$cmrepo_ip OamDnsIp=$dns_ip eth0_MTU=$mtu eth1_MTU=$mtu UniqueId=$dn_name/$du_name/$release/$uuid OAMUnitInternalIp=$oam_unit_ip NodeIp=$node_ip Netmask=$netmask Gateway=$oam_unit_ip NodeType=TD_Core DUType=CSCF Release=$release SwRepoPort=5571 CmRepoPort=8051 LbGroupId=1 NodeName=$instance_name params: $dn_name: { get_param: vcscf_dn } $du_name: { get_param: vcscf_du } $uuid: { get_param: [ tdcore_uuids, { get_param: index } ] } $dns_ip: { get_param: vcscf_dns_address } $cmrepo_ip: { get_param: vcscf_cmrepo_address } $swrepo_ip: { get_param: vcscf_swrepo_address } $oam_unit_ip: { get_param: vcscf_gateway } $netmask: { get_param: vcscf_internal_netmask } $release: { get_param: vcscf_release } $mtu: { get_param: vcscf_internal_network_mtu } $node_ip: { get_param: [ tdcore_internal_ips, { get_param: index } ] } $instance_name: { get_param: [ tdcore_names, { get_param: index } ] }