cbc788253cf869e8d97486aa807ba40a18c2d33f
[sdc.git] /
1 heat_template_version: 2015-04-30
2
3 description: ATT Vyatta vRouter template with 3 ports total - 1 Mgmt - 2 SR-IOV. 
4
5 #Create two AIC network ports via SR-IOV provider networks -- assumes one-time site-prep template has been run already
6
7 parameters:
8 #VM Parameters
9   vce_name_0:
10     type: string
11     description: Name of the VM
12   vce_flavor_name:
13     type: string
14     description: VM instance sizing
15   availability_zone_0:
16     type: string
17     description: The Availability Zone to launch the instance.
18   vnf_name:
19     type: string
20     description: Unique name for this VF instance
21   vnf_id:
22     type: string
23     description: Unique ID for this VF instance; Unique ID for VNF for AAI metadata
24   vf_module_name:
25     type: string
26     description: Unique name for this VF Module instance -- Not used for this VNF 
27   sdnc_model_name: 
28     type: string
29     description: SDNC Blue Print Name
30   sdnc_model_version:
31     type: string
32     description: SDNC Model Version 
33   sdnc_artifact_name:
34     type: string
35     description:  SDNC Artifact Name
36   vf_module_id:
37     type: string
38     description: Unique ID for this VF Module instance -- Not used for this VNF
39   vce_volume_id_0:
40     type: string
41     description: ID of the boot disk volume
42   dcae_0:
43     type: string
44     description: IP Address of DCAE CTS Server
45   ntp_ip_0:
46     type: string
47     description: IP Address of primary NTP Server
48   ntp_ip_1: 
49     type: string
50     description: IP Address of secondary NTP Server
51   syslog_ip_0: 
52     type: string
53     description: IP Address of first syslog Server
54   syslog_ip_1: 
55     type: string
56     description: IP Address of second syslog Server
57   syslog_ip_2: 
58     type: string
59     description: IP Address of third syslog Server
60   syslog_ip_3: 
61     type: string
62     description: IP Address of fourth syslog Server
63   snmp_community_0: 
64     type: string
65     description: SNMP Community value
66   snmp_ip_0: 
67     type: string
68     description: IP Address of first SNMP Server
69   snmp_ip_1: 
70     type: string
71     description: IP Address of second SNMP Server
72   snmp_ip_2: 
73     type: string
74     description: IP Address of third SNMP Server
75   snmp_ip_3: 
76     type: string
77     description: IP Address of fourth SNMP Server
78   tacplus_key_0: 
79     type: string
80     description: TACPLUS key
81   tacplus_ip_0: 
82     type: string
83     description: IP Address of first TACPLUS Server
84   tacplus_ip_1: 
85     type: string
86     description: IP Address of first TACPLUS Server
87   tacplus_ip_2: 
88     type: string
89     description: IP Address of first TACPLUS Server
90   tacplus_ip_3: 
91     type: string
92     description: IP Address of first TACPLUS Server
93   tacplus_port_0: 
94     type: string
95     description: TACPLUS Domain Port
96 #Networking Parameters
97 #SRIOV Port 0
98   vce_SRIOV1_0_net_id:
99     type: string
100     description: SRIOV Provider 0 network id 
101   vce_SRIOV1_0_port_name:
102     type: string
103     description: name for sriov Port 0
104   ATT_VF_VLAN_FILTER_vCE_SRIOV1_0: 
105     type: json
106     description: VF VLAN Filters specified in JSON list object
107   ATT_VF_VLAN_STRIP_vCE_SRIOV1_0:
108     type: boolean
109     description: boolean to specify VLAN Strip option
110   ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0: 
111     type: boolean
112     description: boolean to specify vlan anti spoof check option
113   ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0:
114     type: boolean
115     description: boolean to specify mac anti spoof check option
116   ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0:
117     type: boolean
118     description: boolean to specify allowance of broadcast traffic
119   ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0:
120     type: boolean
121     description: boolean to specify allowance of unknown multicast
122   ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0:
123     type: boolean
124     description: boolean to specify allowance of unknown unicast
125   ATT_VF_INSERT_STAG_vCE_SRIOV1_0:
126     type: boolean
127     description: boolean to specify insertion of outer tag for traffic coming out of VM
128   ATT_VF_LINK_STATUS_vCE_SRIOV1_0:
129     type: string
130     description: specify link status of SRIOV VF
131 #SRIOV Port 1
132   vce_SRIOV2_0_net_id:
133     type: string
134     description: SRIOV Provider 1 network id 
135   vce_SRIOV2_0_port_name:
136     type: string
137     description: name for sriov Port 1
138   ATT_VF_VLAN_FILTER_vCE_SRIOV2_0: 
139     type: json
140     description: VF VLAN Filters specified in JSON list object
141   ATT_VF_VLAN_STRIP_vCE_SRIOV2_0:
142     type: boolean
143     description: boolean to specify VLAN Strip option
144   ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0: 
145     type: boolean
146     description: boolean to specify vlan anti spoof check option
147   ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0:
148     type: boolean
149     description: boolean to specify mac anti spoof check option
150   ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0:
151     type: boolean
152     description: boolean to specify allowance of broadcast traffic
153   ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0:
154     type: boolean
155     description: boolean to specify allowance of unknown multicast
156   ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0:
157     type: boolean
158     description: boolean to specify allowance of unknown unicast
159   ATT_VF_INSERT_STAG_vCE_SRIOV2_0:
160     type: boolean
161     description: boolean to specify insertion of outer tag for traffic coming out of VM
162   ATT_VF_LINK_STATUS_vCE_SRIOV2_0:
163     type: string
164     description: specify link status of SRIOV VF
165 #OAM Port 0
166   oam0_net_id:
167     type: string
168     description: OAM network - 1st vNIC
169   vce_oam0_port_name:
170     type: string
171     description: Neutron name for the OAM Port
172   vce_oam0_ip_0:
173     type: string
174     description: IP Address of OAM port
175   oam0_subnet_0_default_gateway:
176     type: string
177     description: Default Gateway for OAM network
178
179
180
181 # NOTE: Normally when creating an OS SR-IOV Neutron port, you have to specify the binding:vnic_type=direct;
182
183 resources:
184   vce_oam0_port:
185     type: OS::Neutron::Port
186     properties:
187       admin_state_up: true
188       name: { get_param: vce_oam0_port_name}
189       network: { get_param: oam0_net_id }
190       fixed_ips: [ { "ip_address": {get_param: vce_oam0_ip_0}}]
191
192   vce_SRIOV1_0_port:
193     type: OS::Neutron::Port
194     properties:
195       admin_state_up: true
196       name: { get_param: vce_SRIOV1_0_port_name}
197       network: { get_param: vce_SRIOV1_0_net_id }
198       binding:vnic_type: direct
199       value_specs:  
200            ATT_VF_VLAN_FILTER: { get_param: ATT_VF_VLAN_FILTER_vCE_SRIOV1_0 }
201            ATT_VF_VLAN_STRIP: { get_param: ATT_VF_VLAN_STRIP_vCE_SRIOV1_0 }
202            ATT_VF_VLAN_ANTI_SPOOF_CHECK: { get_param: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0 }
203            ATT_VF_MAC_ANTI_SPOOF_CHECK: { get_param: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0 }
204            ATT_VF_BROADCAST_ALLOW: { get_param: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0 }
205            ATT_VF_UNKNOWN_MULTICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0 }
206            ATT_VF_UNKNOWN_UNICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0 }
207            ATT_VF_INSERT_STAG: { get_param: ATT_VF_INSERT_STAG_vCE_SRIOV1_0 }
208            ATT_VF_LINK_STATUS: { get_param: ATT_VF_LINK_STATUS_vCE_SRIOV1_0 }
209            ATT_FABRIC_CONFIGURATION_REQUIRED: true
210
211   vce_SRIOV2_0_port:
212     type: OS::Neutron::Port
213     properties:
214       admin_state_up: true
215       name: { get_param: vce_SRIOV2_0_port_name}
216       network: { get_param: vce_SRIOV2_0_net_id }
217       binding:vnic_type: direct
218       value_specs:  
219            ATT_VF_VLAN_FILTER: { get_param: ATT_VF_VLAN_FILTER_vCE_SRIOV2_0 }
220            ATT_VF_VLAN_STRIP: { get_param: ATT_VF_VLAN_STRIP_vCE_SRIOV2_0 }
221            ATT_VF_VLAN_ANTI_SPOOF_CHECK: { get_param: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0 }
222            ATT_VF_MAC_ANTI_SPOOF_CHECK: { get_param: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0 }
223            ATT_VF_BROADCAST_ALLOW: { get_param: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0 }
224            ATT_VF_UNKNOWN_MULTICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0 }
225            ATT_VF_UNKNOWN_UNICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0 }
226            ATT_VF_INSERT_STAG: { get_param: ATT_VF_INSERT_STAG_vCE_SRIOV2_0 }
227            ATT_VF_LINK_STATUS: { get_param: ATT_VF_LINK_STATUS_vCE_SRIOV2_0 }
228
229   vce_0:
230     type: OS::Nova::Server
231     properties:
232       name: { get_param: vce_name_0 }
233       block_device_mapping: 
234       - device_name: vda
235         volume_id: { get_param: vce_volume_id_0 }
236         delete_on_termination: false
237       flavor: { get_param: vce_flavor_name }
238       availability_zone: { get_param: availability_zone_0 }
239       networks:
240       - port: { get_resource: vce_oam0_port }
241       - port: { get_resource: vce_SRIOV1_0_port }
242       - port: { get_resource: vce_SRIOV2_0_port }
243       metadata:
244         vnf_name: { get_param: vnf_name }
245         vnf_id: { get_param: vnf_id }
246         vf_module_name: { get_param: vf_module_name }
247         vf_module_id: { get_param: vf_module_id }
248         hostname: { get_param: vnf_name }
249         gateway: { get_param: oam0_subnet_0_default_gateway }
250         sdnc_model_name:  { get_param: sdnc_model_name }
251         sdnc_model_version: { get_param: sdnc_model_version }
252         sdnc_artifact_name:  { get_param: sdnc_artifact_name }
253       user_data_format: RAW
254       user_data: 
255         str_replace:
256           template: { get_file: vCE_Cloudinit.txt }
257           params: 
258             $OAM0_IP_0: { get_param: vce_oam0_ip_0 }
259             $OAM0_GATEWAY: { get_param: oam0_subnet_0_default_gateway }
260             $DCAE_CTS: { get_param: dcae_0 }
261             $HOSTNAME: { get param: vnf_name }
262             $NTP_SERVER_IPV4_1: { get_param: ntp_ip_0 }
263             $NTP_SERVER_IPV4_2: { get_param: ntp_ip_1 }
264             $SYSLOG_SERVER_IPV4_1: { get_param: syslog_ip_0 }
265             $SYSLOG_SERVER_IPV4_2: { get_param: syslog_ip_1 }
266             $SYSLOG_SERVER_IPV4_3: { get_param: syslog_ip_2 }
267             $SYSLOG_SERVER_IPV4_4: { get_param: syslog_ip_3 }
268             $SNMP_COMMUNITY: { get_param: snmp_community_0 }
269             $SNMP_TRAP_SERVER_IPV4_1: { get_param: snmp_ip_0 }
270             $SNMP_TRAP_SERVER_IPV4_2: { get_param: snmp_ip_1 }
271             $SNMP_TRAP_SERVER_IPV4_3: { get_param: snmp_ip_2 }
272             $SNMP_TRAP_SERVER_IPV4_4: { get_param: snmp_ip_3 }
273             $TACPLUS_KEY: { get_param: tacplus_key_0 }
274             $TACPLUS_SERVER_IPV4_1: { get_param: tacplus_ip_0 }
275             $TACPLUS_SERVER_IPV4_2: { get_param: tacplus_ip_1 }
276             $TACPLUS_SERVER_IPV4_3: { get_param: tacplus_ip_2 }
277             $TACPLUS_SERVER_IPV4_4: { get_param: tacplus_ip_3 }
278             $TACPLUS_DOMAIN_PORT: { get_param: tacplus_port_0 }
279