1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
## 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 } ] }
|