blob: 8ddc5c64880217dba46c58dd32a1dcbea45fc17b (
plain)
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
|
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 }
boot_volume:
type: OS::Cinder::Volume
properties:
size: 35
name:
str_replace:
template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-boot-volume
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] } ] }
image: { get_param: bootimage }
availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
data_volume:
type: OS::Cinder::Volume
properties:
size: 265
name:
str_replace:
template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-data-volume
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] } ] }
availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_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] } ] }
block_device_mapping:
- device_name: vda
volume_id: { get_resource: boot_volume }
delete_on_termination: false
- device_name: vdb
volume_id: { get_resource: data_volume }
delete_on_termination: false
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 }
|