blob: d3baf41da5bdc14510624de9d4840be339aa9ef8 [file] [log] [blame]
heat_template_version: 2013-05-23
description: nested heat template that creates a PCRF OAM node stack
parameters:
pcrf_oam_server_name:
type: string
label: PCRF OAM server name
description: PCRF OAM server name
pcrf_oam_image_name:
type: string
label: image name
description: PCRF OAM image name
pcrf_oam_flavor_name:
type: string
label: PCRF OAM flavor name
description: flavor name of PCRF OAM instance
availabilityzone_name:
type: string
label: availabilityzone name
description: availabilityzone name
pcrf_cps_net_name:
type: string
label: CPS network name
description: CPS network name
pcrf_cps_net_ip:
type: string
label: CPS network ip
description: CPS network ip
pcrf_cps_net_mask:
type: string
label: CPS network mask
description: CPS network mask
pcrf_arbiter_vip:
type: string
label: OAM Arbiter LB VIP
description: OAM Arbiter LB VIP
pcrf_oam_net_name:
type: string
label: OAM network name
description: OAM network name
pcrf_oam_net_ip:
type: string
label: OAM network ip
description: OAM network ip
pcrf_oam_net_gw:
type: string
label: CPS network gateway
description: CPS network gateway
pcrf_oam_net_mask:
type: string
label: CPS network mask
description: CPS network mask
pcrf_oam_volume_id:
type: string
label: CPS OAM Cinder Volume
description: CPS OAM Cinder Volume
pcrf_security_group_name:
type: string
label: security group name
description: the name of security group
pcrf_vnf_id:
type: string
label: PCRF VNF Id
description: PCRF VNF Id
resources:
network:
type: OS::Heat::CloudConfig
properties:
cloud_config:
write_files:
- path: /etc/sysconfig/network-scripts/ifcfg-eth0
permissions: "0644"
content:
str_replace:
template: { get_file: nimbus-ethernet }
params:
$dev: eth0
$ip: { get_param: pcrf_cps_net_ip }
$netmask: { get_param: pcrf_cps_net_mask }
- path: /etc/sysconfig/network-scripts/ifcfg-eth1
permissions: "0644"
content:
str_replace:
template: { get_file: nimbus-ethernet-gw }
params:
$dev: eth1
$ip: { get_param: pcrf_oam_net_ip }
$netmask: { get_param: pcrf_oam_net_mask }
$gateway: { get_param: pcrf_oam_net_gw }
runcmd:
- ifdown eth0 && ifup eth0
- ifdown eth1 && ifup eth1
script_init:
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
str_replace:
template: { get_file: cloud-nimbus.sh }
params:
$vm_name: { get_param: pcrf_oam_server_name }
pcrf_server_init:
type: OS::Heat::MultipartMime
properties:
parts:
- config: { get_resource: network}
- config: { get_resource: script_init}
pcrf_server_oam:
type: OS::Nova::Server
properties:
config_drive: "True"
name: { get_param: pcrf_oam_server_name }
image: { get_param: pcrf_oam_image_name }
flavor: { get_param: pcrf_oam_flavor_name }
availability_zone: { get_param: availabilityzone_name }
networks:
- port: { get_resource: pcrf_oam_port_0}
- port: { get_resource: pcrf_oam_port_1}
user_data_format: RAW
user_data:
get_resource: pcrf_server_init
metadata:
vnf_id: {get_param: pcrf_vnf_id}
pcrf_oam_port_0:
type: OS::Neutron::Port
properties:
network: { get_param: pcrf_cps_net_name }
fixed_ips:
- ip_address: { get_param: pcrf_cps_net_ip }
allowed_address_pairs:
- ip_address: { get_param: pcrf_arbiter_vip }
security_groups: [{ get_param: pcrf_security_group_name }]
pcrf_oam_port_1:
type: OS::Neutron::Port
properties:
network: { get_param: pcrf_oam_net_name }
fixed_ips:
- ip_address: { get_param: pcrf_oam_net_ip }
security_groups: [{ get_param: pcrf_security_group_name }]
pcrf_oam_vol_attachment:
type: OS::Cinder::VolumeAttachment
properties:
volume_id: { get_param: pcrf_oam_volume_id }
mountpoint: /dev/vdd
instance_uuid: { get_resource: pcrf_server_oam }
outputs:
pcrf_oam_vol_attachment_id:
description: the pcrf_oam_vol_attachment_id id
value: { get_resource: pcrf_oam_vol_attachment }