# Copyright 2019 ETSI OSM # # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. vnfd-catalog: schema-version: "v3.0" vnfd: - id: {{ name }}_vnfd name: {{ name }}_vnfd short-name: {{ name }}_vnfd description: Generated by OSM package generator vendor: OSM version: '1.0' {%- if detailed is sameas true %} #Place the logo as png in icons directory and provide the name here #logo: {%- endif %} # Management interface mgmt-interface: cp: vnf-cp0 # At least one VDU need to be specified vdu: # Additional VDUs can be created by copying the # VDU descriptor below - id: {{ name }}_vnfd-VM name: {{ name }}_vnfd-VM description: {{ name }}_vnfd-VM count: 1 {%- if detailed is sameas true %} #pdu-type: #mgmt-vpci: {%- endif %} # Flavour of the VM to be instantiated for the VDU vm-flavor: vcpu-count: {{ vcpu }} memory-mb: {{ memory }} storage-gb: {{ storage }} # Image including the full path image: "{{ image }}" {%- if detailed is sameas true %} #image-checksum: {%- endif %} interface: # Specify the external interfaces # There can be multiple interfaces defined - name: eth0 type: EXTERNAL virtual-interface: type: PARAVIRT {%- if detailed is sameas true %} #vpci: #bandwidth: {%- endif %} external-connection-point-ref: vnf-cp0 {%- if detailed is sameas true %} #internal-connection-point-ref: #mac-address #mgmt-interface: {%- endif %} {%- for x in range(1, interfaces + 1 ) %} - name: eth{{ x }} type: EXTERNAL virtual-interface: type: PARAVIRT {%- if detailed is sameas true %} #vpci: #bandwidth: {%- endif %} external-connection-point-ref: vnf-cp{{ x }} {%- if detailed is sameas true %} #internal-connection-point-ref: #mac-address #mgmt-interface: {%- endif %} {%- endfor %} {%- if detailed is sameas true %} #guest-epa: # mempage-size: # # Choice cpu-pinning / cpu-quota # cpu-pinning-policy: [DEDICATED, SHARED, ANY] # cpu-thread-pinning-policy: [AVOID, SEPARATED, ISOLATE, PREFER] # cpu-quota: # limit: # reserve: # shares: # mem-quota: # limit: # reserve: # shares: # disk-io-quota: # limit: # reserve: # shares: # vif-quota: # limit: # reserve: # shares: #alarm: #- alarm-id: # vnf-monitoring-param-ref: # operation: # value: # actions: # ok: # - url: # insufficient-data: # - url: # alarm: # - url: # #alternative-images: #- vim-type: # image: # image-checksum: # #vdu-configuration: # # Configure the VNF or VDU through Juju. # juju: # charm: # proxy: # vca-relationships: # relation: # - requires: # provides: # config-primitive: # - name: # parameter: # - name: # data-type: # mandatory: # default-value: # parameter-pool: # read-only: # hidden: # initial-config-primitive: # - seq: # name: # parameter: # - name: # data-type: # value: # terminate-config-primitive: # - seq: # name: # parameter: # - name: # data-type: # value: # metrics: # - name: # config-access: # ssh-access: # required: # default-user: # #monitoring-param: #- id: # nfvi-metric: # interface-name-ref: # ## Choice cloud-init / cloud-init-file #cloud-init: #cloud-init-file: #supplemental-boot-data: # boot-data-drive: # #internal-connection-point: #- id: # name: # short-name: # type: # port-security-enabled: # internal-vld-ref: # #interface: #- name: # position: # mgmt-interface: # type: # mac-address: # # Choice: connection-point-type | internal-connection-point-ref / external-connection-point-ref # internal-connection-point-ref: # external-connection-point-ref: # virtual-interface: # type: # PARAVIRT,OM-MGMT,PCI-PASSTHROUGH,SR-IOV,VIRTIO,E1000,RTL8139,PCNET # vpci: # bandwidth: # #volumes: #- name: # description: # size: # device-bus: # ide, usb, virtio, iscsi # device-type: # disk, cdrom, floopy, lun # # Choice volume-source | ephemeral / image # ephemeral: # image: # image-checksum: #scaling-group-descriptor: #- name: # min-instance-count: # max-instance-count: # scaling-policy: # - name: # scaling-type: # enabled: # scale-in-operator-type: # scale-out-operator-type: # threshold-time: # cooldown-time: # scaling-criteria: # - name: # scale-in-threshold: # scale-in-relational-operation: # scale-out-threshold: # scale-out-relational-operation: # vnf-monitoring-param-ref: # vdu: # - vdu-id-ref: # count: # scaling-config-action: # - trigger: # vnf-config-primitive-name-ref: # List of monitoring params at NS level #monitoring-param: #- id: # name: # aggregation-type: # # Choice monitoring-type | vdu-monitoring-param / vnf-metric / vdu-metric # vdu-monitoring-param: # vdu-ref: # vdu-monitoring-param-ref: # vnf-metric: # vnfm-metric-name-ref: # vdu-metric: # vdu-ref: # vdu-metric-name-ref: # # Placement groups at VNF Level #placement-groups: #- name: # requirement: # strategy: # COLOCATION, ISOLATION # member-vdus: # - member-vdu-ref: {%- endif %} {%- if vdus > 1 %} {% for y in range(1, vdus ) %} - id: {{ name }}_vnfd{{y}}-VM name: {{ name }}_vnfd{{y}}-VM description: {{ name }}_vnfd{{y}}-VM count: 1 {%- if detailed is sameas true %} #pdu-type: #mgmt-vpci: {%- endif %} # Flavour of the VM to be instantiated for the VDU vm-flavor: vcpu-count: {{ vcpu }} memory-mb: {{ memory }} storage-gb: {{ storage }} # Image including the full path image: "{{ image }}" {%- if detailed is sameas true %} #image-checksum: {%- endif %} interface: # Specify the external interfaces # There can be multiple interfaces defined - name: eth0 type: EXTERNAL virtual-interface: type: PARAVIRT {%- if detailed is sameas true %} #vpci: #bandwidth: {%- endif %} external-connection-point-ref: vnf-cp0 {%- if detailed is sameas true %} #internal-connection-point-ref: #mac-address #mgmt-interface: {%- endif %} {%- for z in range(1, interfaces + 1 ) %} - name: eth{{ z }} type: EXTERNAL virtual-interface: type: PARAVIRT {%- if detailed is sameas true %} #vpci: #bandwidth: {%- endif %} external-connection-point-ref: vnf-cp{{ z }} {%- if detailed is sameas true %} #internal-connection-point-ref: #mac-address #mgmt-interface: {%- endif %} {%- endfor %} {%- endfor %} {%- endif %} connection-point: - name: vnf-cp0 {%- for x in range(1, interfaces + 1 ) %} - name: vnf-cp{{ x }} {%- endfor %}