d2330a6fba49e338a1e0139dff1b77b52d00bf12
[vnfrqts/requirements.git] /
1 .. Licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright 2017 AT&T Intellectual Property.  All rights reserved.
4
5 .. _ONAP Output Parameter Names:
6
7 ONAP Output Parameter Names
8 -------------------------------------------------------------
9
10 ONAP defines three types of Output Parameters as detailed in
11 :ref:`Output Parameters`.
12
13 ONAP Base Module Output Parameters:
14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15
16 ONAP Base Module Output Parameters do not have an explicit naming
17 convention.
18
19 .. req::
20     :id: R-97726
21     :target: VNF
22     :keyword: MUST
23     :test: no test found
24     :test_case: no test found
25     :test_file: no test found
26
27     A VNF's Heat Orchestration Template's Base Module Output
28     Parameter names **MUST** contain {vm-type} and/or {network-role}
29     when appropriate.
30
31 ONAP Volume Template Output Parameters:
32 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33
34 .. req::
35     :id: R-88524
36     :target: VNF
37     :keyword: MUST
38     :test: no test found
39     :test_case: no test found
40     :test_file: no test found
41
42     A VNF's Heat Orchestration Template's Volume Template
43     Output Parameter names **MUST** contain {vm-type} when appropriate.
44
45 Predefined Output Parameters
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
47
48 ONAP currently defines one predefined output parameter the OAM
49 Management IP Addresses.
50
51 .. _OAM Management IP Addresses:
52
53 OAM Management IP Addresses
54 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55
56 A VNF may have a management interface for application controllers to
57 interact with and configure the VNF. Typically, this will be via a
58 specific VM that performs a VNF administration function. The IP address
59 of this interface must be captured and inventoried by ONAP. The IP
60 address might be a VIP if the VNF contains an HA pair of management VMs,
61 or may be a single IP address assigned to one VM.
62
63 .. req::
64     :id: R-47874
65     :target: VNF
66     :keyword: MAY
67     :test: no test found
68     :test_case: no test found
69     :test_file: no test found
70
71     A VNF **MAY** have
72
73      * Only an IPv4 OAM Management IP Address
74      * Only an IPv6 OAM Management IP Address
75      * Both a IPv4 and IPv6 OAM Management IP Addresses
76
77 .. req::
78     :id: R-18683
79     :target: VNF
80     :keyword: MUST
81     :test: no test found
82     :test_case: no test found
83     :test_file: no test found
84
85     If a VNF has one IPv4 OAM Management IP Address and the
86     IP Address needs to be inventoried in ONAP's A&AI
87     database, an output parameter **MUST** be declared in only one of the
88     VNF's Heat Orchestration Templates and the parameter **MUST** be named
89     'oam_management_v4_address'.
90
91 .. req::
92     :id: R-94669
93     :target: VNF
94     :keyword: MUST
95     :test: no test found
96     :test_case: no test found
97     :test_file: no test found
98
99     If a VNF has one IPv6 OAM Management IP Address and the
100     IP Address needs to be inventoried in ONAP's AAI
101     database, an output parameter **MUST** be declared in only one of the
102     VNF's Heat Orchestration Templates and the parameter **MUST** be named
103     'oam_management_v6_address'.
104
105 The OAM Management IP Address maybe assigned either via
106   *  ONAP SDN-C
107   *  DHCP
108
109 .. req::
110     :id: R-56287
111     :target: VNF
112     :keyword: MUST
113     :test: no test found
114     :test_case: no test found
115     :test_file: no test found
116
117     If the VNF's OAM Management IP Address is assigned by ONAP SDN-C and
118     assigned in the VNF's Heat Orchestration Template's via a heat resource
119     'OS::Neutron::Port' property 'fixed_ips' map property
120     'ip_adress' parameter (e.g., '{vm-type}_{network-role}_ip_{index}',
121     '{vm-type}_{network-role}_v6_ip_{index}')
122     and the OAM IP Address is required to be inventoried in ONAP AAI,
123     then the parameter **MUST** be echoed in an output statement.
124
125 .. code-block:: yaml
126
127    outputs:
128        oam_management_v4_address:
129          value: {get_param: {vm-type}_{network-role}_ip_{index} }
130        oam_management_v6_address:
131          value: {get_param: {vm-type}_{network-role}_v6_ip_{index} }
132
133 *Example: ONAP SDN-C Assigned IP Address echoed as
134 oam_management_v4_address*
135
136 .. code-block:: yaml
137
138   parameters:
139     admin_oam_ip_0:
140       type: string
141       description: Fixed IPv4 assignment for admin VM 0 on the OAM network
142   . . .
143   resources:
144     admin_0_oam_port_0:
145       type: OS::Neutron::Port
146       properties:
147         name:
148           str_replace:
149             template: VNF_NAME_admin_oam_port_0
150             params:
151               VNF_NAME: {get_param: vnf_name}
152         network: { get_param: oam_net_id }
153         fixed_ips: [{ "ip_address": { get_param: admin_oam_ip_0 }}]
154         security_groups: [{ get_param: security_group }]
155     admin_server_0:
156       type: OS::Nova::Server
157       properties:
158         name: { get_param: admin_names }
159         image: { get_param: admin_image_name }
160         flavor: { get_param: admin_flavor_name }
161         availability_zone: { get_param: availability_zone_0 }
162       networks:
163         - port: { get_resource: admin_0_oam_net_port_0 }
164       metadata:
165         vnf_id: { get_param: vnf_id }
166         vf_module_id: { get_param: vf_module_id }
167         vnf_name: {get_param: vnf_name }
168   outputs:
169       oam_management_v4_address:
170         value: {get_param: admin_oam_ip_0 }
171
172
173 .. req::
174     :id: R-48987
175     :target: VNF
176     :keyword: MUST
177     :test: no test found
178     :test_case: no test found
179     :test_file: no test found
180
181     If the VNF's OAM Management IP Address is Cloud assigned and
182     and the OAM IP Address is required to be inventoried in ONAP AAI,
183     then the parameter **MUST** be obtained by the resource 'OS::Neutron::Port'
184     attribute 'ip_address'.
185
186 .. code-block:: yaml
187
188    outputs:
189        oam_management_v4_address:
190          value: {get_attr: [ {OS::Neutron Port Resource ID}, fixed_ips, 0, ip_address] }
191
192 *Example: Cloud Assigned IP Address output as oam_management_v4_address*
193
194 .. code-block:: yaml
195
196   parameters:
197   . . .
198   resources:
199     admin_0_oam_port_0:
200       type: OS::Neutron::Port
201       properties:
202         name:
203           str_replace:
204             template: VNF_NAME_admin_oam_0_port
205             params:
206               VNF_NAME: {get_param: vnf_name}
207         network: { get_param: oam_net_id }
208         security_groups: [{ get_param: security_group }]
209     admin_server_0:
210       type: OS::Nova::Server
211       properties:
212         name: { get_param: admin_name_0 }
213         image: { get_param: admin_image_name }
214         flavor: { get_param: admin_flavor_name }
215         availability_zone: { get_param: availability_zone_0 }
216         networks:
217           - port: { get_resource: admin_0_oam_port_0 }
218         metadata:
219           vnf_id: { get_param: vnf_id }
220           vf_module_id: { get_param: vf_module_id }
221           vnf_name: {get_param: vnf_name }
222   outputs:
223     oam_management_v4_address:
224       value: {get_attr: [admin_0_oam_port_0, fixed_ips, 0, ip_address] }