## Copyright:: Nokia Corporation 2017 ## Note: Nokia VM HOT file for CFX ## Name: "cscf.yaml" ## Date: 20 Mar 2017 ## Kilo Version heat_template_version: 2015-04-30 description: IMS CSCF 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 cscf_security_group: type: string description: security group cscf_flavor_name: type: string description: flavor name cscf_image_name: type: string description: image name internal_net_id: type: string description: internal 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 cipa ip cscf_internal_ips: type: comma_delimited_list description: "List of Internal Lan IPs for CSCF instances" cscf_internal_v6_ips: type: comma_delimited_list description: "List of Internal Lan v6 IPs for CSCF instances" cscf_names: type: comma_delimited_list description: "List of instance names for CSCF instances" cscf_uuids: type: comma_delimited_list description: "List of UUIDs generated by cmrepo for CSCF instances" availability_zone_0: type: string description: Availability zone name for CSCF instances. index: type: number description: index constraints: - range: { min: 0, max: 119 } resources: cscf_internal_0_port_0: type: OS::Neutron::Port properties: name: str_replace: template: $PREFIX$DELeth0 params: $PREFIX: { get_param: [ cscf_names, { get_param: index } ] } $DEL: { get_param: vcscf_name_delimeter } network: { get_param: internal_net_id } security_groups: - { get_param: cscf_security_group } fixed_ips: - ip_address: { get_param: [ cscf_internal_ips, { get_param: index } ] } - ip_address: { get_param: [ cscf_internal_v6_ips, { get_param: index } ] } cscf_server_0: type: OS::Nova::Server properties: availability_zone: { get_param: availability_zone_0 } name: { get_param: [ cscf_names, { get_param: index } ] } flavor: { get_param: cscf_flavor_name } image: { get_param: cscf_image_name } metadata: vnf_id: {get_param: vnf_id} vm_role: cscf 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: cscf_internal_0_port_0 } 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 UniqueId=$dn_name/$du_name/$release/$uuid OAMUnitInternalIp=$oam_unit_ip NodeIp=$node_ip Netmask=$netmask Gateway=$oam_unit_ip NodeType=CSCF 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: [ cscf_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: [ cscf_internal_ips, { get_param: index } ] } $instance_name: { get_param: [ cscf_names, { get_param: index } ] }