1 # Copyright 2019 ETSI OSM
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may
6 # not use this file except in compliance with the License. You may obtain
7 # a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 # License for the specific language governing permissions and limitations
18 schema-version: "v3.0"
22 short-name: {{ name }}_vnfd
23 description: Generated by OSM package generator
27 {%- if detailed is sameas true %}
28 #Place the logo as png in icons directory and provide the name here
29 #logo: <update, optional>
33 # Management interface
37 # At least one VDU need to be specified
39 # Additional VDUs can be created by copying the
40 # VDU descriptor below
41 - id: {{ name }}_vnfd-VM
42 name: {{ name }}_vnfd-VM
43 description: {{ name }}_vnfd-VM
45 {%- if detailed is sameas true %}
46 #pdu-type: <update, optional>
47 #mgmt-vpci: <update, optional>
50 # Flavour of the VM to be instantiated for the VDU
52 vcpu-count: {{ vcpu }}
53 memory-mb: {{ memory }}
54 storage-gb: {{ storage }}
56 # Image including the full path
58 {%- if detailed is sameas true %}
59 #image-checksum: <update, optional>
63 # Specify the external interfaces
64 # There can be multiple interfaces defined
69 {%- if detailed is sameas true %}
70 #vpci: <update, optional>
71 #bandwidth: <update, optional>
73 external-connection-point-ref: vnf-cp0
74 {%- if detailed is sameas true %}
75 #internal-connection-point-ref: <update, optional>
76 #mac-address <update, optional>
77 #mgmt-interface: <update, optional>
80 {%- for x in range(1, interfaces + 1 ) %}
85 {%- if detailed is sameas true %}
86 #vpci: <update, optional>
87 #bandwidth: <update, optional>
89 external-connection-point-ref: vnf-cp{{ x }}
90 {%- if detailed is sameas true %}
91 #internal-connection-point-ref: <update, optional>
92 #mac-address <update, optional>
93 #mgmt-interface: <update, optional>
97 {%- if detailed is sameas true %}
99 # mempage-size: <update, optional>
100 # # Choice cpu-pinning / cpu-quota
101 # cpu-pinning-policy: <update, optional> [DEDICATED, SHARED, ANY]
102 # cpu-thread-pinning-policy: <update, optional> [AVOID, SEPARATED, ISOLATE, PREFER]
104 # limit: <update, optional>
105 # reserve: <update, optional>
106 # shares: <update, optional>
108 # limit: <update, optional>
109 # reserve: <update, optional>
110 # shares: <update, optional>
112 # limit: <update, optional>
113 # reserve: <update, optional>
114 # shares: <update, optional>
116 # limit: <update, optional>
117 # reserve: <update, optional>
118 # shares: <update, optional>
121 #- alarm-id: <update>
122 # vnf-monitoring-param-ref: <update, optional>
123 # operation: <update, optional>
124 # value: <update, optional>
134 #- vim-type: <update>
135 # image: <update, optional>
136 # image-checksum: <update, optional>
139 # # Configure the VNF or VDU through Juju.
141 # charm: <update, optional>
142 # proxy: <update, optional>
145 # - requires: <update>
151 # data-type: <update, optional>
152 # mandatory: <update, optional>
153 # default-value: <update, optional>
154 # parameter-pool: <update, optional>
155 # read-only: <update, optional>
156 # hidden: <update, optional>
157 # initial-config-primitive:
159 # name: <update, optional>
162 # data-type: <update, optional>
163 # value: <update, optional>
164 # terminate-config-primitive:
166 # name: <update, optional>
169 # data-type: <update, optional>
170 # value: <update, optional>
175 # required: <update, optional>
176 # default-user: <update, optional>
180 # nfvi-metric: <update, optional>
181 # interface-name-ref: <update, optional>
183 ## Choice cloud-init / cloud-init-file
184 #cloud-init: <update, optional>
185 #cloud-init-file: <update, optional>
186 #supplemental-boot-data:
187 # boot-data-drive: <update, optional>
189 #internal-connection-point:
191 # name: <update, optional>
192 # short-name: <update, optional>
193 # type: <update, optional>
194 # port-security-enabled: <update, optional>
195 # internal-vld-ref: <update, optional>
199 # position: <update, optional>
200 # mgmt-interface: <update, optional>
201 # type: <update, optional>
202 # mac-address: <update, optional>
203 # # Choice: connection-point-type | internal-connection-point-ref / external-connection-point-ref
204 # internal-connection-point-ref: <update, optional>
205 # external-connection-point-ref: <update, optional>
207 # type: <update, optional> # PARAVIRT,OM-MGMT,PCI-PASSTHROUGH,SR-IOV,VIRTIO,E1000,RTL8139,PCNET
208 # vpci: <update, optional>
209 # bandwidth: <update, optional>
213 # description: <update, optional>
214 # size: <update, optional>
215 # device-bus: <update, optional> # ide, usb, virtio, iscsi
216 # device-type: <update, optional> # disk, cdrom, floopy, lun
217 # # Choice volume-source | ephemeral / image
218 # ephemeral: <update, optional>
219 # image: <update, optional>
220 # image-checksum: <update, optional>
222 #scaling-group-descriptor:
224 # min-instance-count: <update, optional>
225 # max-instance-count: <update, optional>
228 # scaling-type: <update, optional>
229 # enabled: <update, optional>
230 # scale-in-operator-type: <update, optional>
231 # scale-out-operator-type: <update, optional>
232 # threshold-time: <update, optional>
233 # cooldown-time: <update, optional>
234 # scaling-criteria: <update, optional>
236 # scale-in-threshold: <update, optional>
237 # scale-in-relational-operation: <update, optional>
238 # scale-out-threshold: <update, optional>
239 # scale-out-relational-operation: <update, optional>
240 # vnf-monitoring-param-ref: <update, optional>
242 # - vdu-id-ref: <update>
243 # count: <update, optional>
244 # scaling-config-action:
245 # - trigger: <update>
246 # vnf-config-primitive-name-ref: <update, optional>
248 # List of monitoring params at NS level
251 # name: <update, optional>
252 # aggregation-type: <update, optional>
253 # # Choice monitoring-type | vdu-monitoring-param / vnf-metric / vdu-metric
254 # vdu-monitoring-param:
255 # vdu-ref: <update, optional>
256 # vdu-monitoring-param-ref: <update, optional>
258 # vnfm-metric-name-ref: <update, optional>
260 # vdu-ref: <update, optional>
261 # vdu-metric-name-ref: <update, optional>
263 # Placement groups at VNF Level
266 # requirement: <update, optional>
267 # strategy: <update, optional> # COLOCATION, ISOLATION
269 # - member-vdu-ref: <update>
272 {% for y in range(1, vdus ) %}
273 - id: {{ name }}_vnfd{{y}}-VM
274 name: {{ name }}_vnfd{{y}}-VM
275 description: {{ name }}_vnfd{{y}}-VM
277 {%- if detailed is sameas true %}
278 #pdu-type: <update, optional>
279 #mgmt-vpci: <update, optional>
282 # Flavour of the VM to be instantiated for the VDU
284 vcpu-count: {{ vcpu }}
285 memory-mb: {{ memory }}
286 storage-gb: {{ storage }}
288 # Image including the full path
290 {%- if detailed is sameas true %}
291 #image-checksum: <update, optional>
295 # Specify the external interfaces
296 # There can be multiple interfaces defined
301 {%- if detailed is sameas true %}
302 #vpci: <update, optional>
303 #bandwidth: <update, optional>
305 external-connection-point-ref: vnf-cp0
306 {%- if detailed is sameas true %}
307 #internal-connection-point-ref: <update, optional>
308 #mac-address <update, optional>
309 #mgmt-interface: <update, optional>
312 {%- for z in range(1, interfaces + 1 ) %}
317 {%- if detailed is sameas true %}
318 #vpci: <update, optional>
319 #bandwidth: <update, optional>
321 external-connection-point-ref: vnf-cp{{ z }}
322 {%- if detailed is sameas true %}
323 #internal-connection-point-ref: <update, optional>
324 #mac-address <update, optional>
325 #mgmt-interface: <update, optional>
332 {%- for x in range(1, interfaces + 1 ) %}
333 - name: vnf-cp{{ x }}