# 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: <update, optional>
-
- {%- 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: <update, optional>
- #mgmt-vpci: <update, optional>
- {%- 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: <update, optional>
- {%- 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: <update, optional>
- #bandwidth: <update, optional>
- {%- endif %}
- external-connection-point-ref: vnf-cp0
- {%- if detailed is sameas true %}
- #internal-connection-point-ref: <update, optional>
- #mac-address <update, optional>
- #mgmt-interface: <update, optional>
- {%- endif %}
-
- {%- for x in range(1, interfaces + 1 ) %}
- - name: eth{{ x }}
- type: EXTERNAL
- virtual-interface:
- type: PARAVIRT
- {%- if detailed is sameas true %}
- #vpci: <update, optional>
- #bandwidth: <update, optional>
- {%- endif %}
- external-connection-point-ref: vnf-cp{{ x }}
- {%- if detailed is sameas true %}
- #internal-connection-point-ref: <update, optional>
- #mac-address <update, optional>
- #mgmt-interface: <update, optional>
- {%- endif %}
- {%- endfor %}
-
- {%- if detailed is sameas true %}
- #guest-epa:
- # mempage-size: <update, optional>
- # # Choice cpu-pinning / cpu-quota
- # cpu-pinning-policy: <update, optional> [DEDICATED, SHARED, ANY]
- # cpu-thread-pinning-policy: <update, optional> [AVOID, SEPARATED, ISOLATE, PREFER]
- # cpu-quota:
- # limit: <update, optional>
- # reserve: <update, optional>
- # shares: <update, optional>
- # mem-quota:
- # limit: <update, optional>
- # reserve: <update, optional>
- # shares: <update, optional>
- # disk-io-quota:
- # limit: <update, optional>
- # reserve: <update, optional>
- # shares: <update, optional>
- # vif-quota:
- # limit: <update, optional>
- # reserve: <update, optional>
- # shares: <update, optional>
-
- #alarm:
- #- alarm-id: <update>
- # vnf-monitoring-param-ref: <update, optional>
- # operation: <update, optional>
- # value: <update, optional>
- # actions:
- # ok:
- # - url: <update>
- # insufficient-data:
- # - url: <update>
- # alarm:
- # - url: <update>
- #
- #alternative-images:
- #- vim-type: <update>
- # image: <update, optional>
- # image-checksum: <update, optional>
- #
- #vdu-configuration:
- # # Configure the VNF or VDU through Juju.
- # juju:
- # charm: <update, optional>
- # proxy: <update, optional>
- # vca-relationships:
- # relation:
- # - requires: <update>
- # provides: <update>
- # config-primitive:
- # - name: <update>
- # parameter:
- # - name: <update>
- # data-type: <update, optional>
- # mandatory: <update, optional>
- # default-value: <update, optional>
- # parameter-pool: <update, optional>
- # read-only: <update, optional>
- # hidden: <update, optional>
- # initial-config-primitive:
- # - seq: <update>
- # name: <update, optional>
- # parameter:
- # - name: <update>
- # data-type: <update, optional>
- # value: <update, optional>
- # terminate-config-primitive:
- # - seq: <update>
- # name: <update, optional>
- # parameter:
- # - name: <update>
- # data-type: <update, optional>
- # value: <update, optional>
- # metrics:
- # - name: <update>
- # config-access:
- # ssh-access:
- # required: <update, optional>
- # default-user: <update, optional>
- #
- #monitoring-param:
- #- id: <update>
- # nfvi-metric: <update, optional>
- # interface-name-ref: <update, optional>
- #
- ## Choice cloud-init / cloud-init-file
- #cloud-init: <update, optional>
- #cloud-init-file: <update, optional>
- #supplemental-boot-data:
- # boot-data-drive: <update, optional>
- #
- #internal-connection-point:
- #- id: <update>
- # name: <update, optional>
- # short-name: <update, optional>
- # type: <update, optional>
- # port-security-enabled: <update, optional>
- # internal-vld-ref: <update, optional>
- #
- #interface:
- #- name: <update>
- # position: <update, optional>
- # mgmt-interface: <update, optional>
- # type: <update, optional>
- # mac-address: <update, optional>
- # # Choice: connection-point-type | internal-connection-point-ref / external-connection-point-ref
- # internal-connection-point-ref: <update, optional>
- # external-connection-point-ref: <update, optional>
- # virtual-interface:
- # type: <update, optional> # PARAVIRT,OM-MGMT,PCI-PASSTHROUGH,SR-IOV,VIRTIO,E1000,RTL8139,PCNET
- # vpci: <update, optional>
- # bandwidth: <update, optional>
- #
- #volumes:
- #- name: <update>
- # description: <update, optional>
- # size: <update, optional>
- # device-bus: <update, optional> # ide, usb, virtio, iscsi
- # device-type: <update, optional> # disk, cdrom, floopy, lun
- # # Choice volume-source | ephemeral / image
- # ephemeral: <update, optional>
- # image: <update, optional>
- # image-checksum: <update, optional>
-
- #scaling-group-descriptor:
- #- name: <update>
- # min-instance-count: <update, optional>
- # max-instance-count: <update, optional>
- # scaling-policy:
- # - name: <update>
- # scaling-type: <update, optional>
- # enabled: <update, optional>
- # scale-in-operator-type: <update, optional>
- # scale-out-operator-type: <update, optional>
- # threshold-time: <update, optional>
- # cooldown-time: <update, optional>
- # scaling-criteria: <update, optional>
- # - name: <update>
- # scale-in-threshold: <update, optional>
- # scale-in-relational-operation: <update, optional>
- # scale-out-threshold: <update, optional>
- # scale-out-relational-operation: <update, optional>
- # vnf-monitoring-param-ref: <update, optional>
- # vdu:
- # - vdu-id-ref: <update>
- # count: <update, optional>
- # scaling-config-action:
- # - trigger: <update>
- # vnf-config-primitive-name-ref: <update, optional>
-
- # List of monitoring params at NS level
- #monitoring-param:
- #- id: <update>
- # name: <update, optional>
- # aggregation-type: <update, optional>
- # # Choice monitoring-type | vdu-monitoring-param / vnf-metric / vdu-metric
- # vdu-monitoring-param:
- # vdu-ref: <update, optional>
- # vdu-monitoring-param-ref: <update, optional>
- # vnf-metric:
- # vnfm-metric-name-ref: <update, optional>
- # vdu-metric:
- # vdu-ref: <update, optional>
- # vdu-metric-name-ref: <update, optional>
- #
- # Placement groups at VNF Level
- #placement-groups:
- #- name: <update>
- # requirement: <update, optional>
- # strategy: <update, optional> # COLOCATION, ISOLATION
- # member-vdus:
- # - member-vdu-ref: <update>
- {%- 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: <update, optional>
- #mgmt-vpci: <update, optional>
- {%- 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: <update, optional>
- {%- 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: <update, optional>
- #bandwidth: <update, optional>
- {%- endif %}
- external-connection-point-ref: vnf-cp0
- {%- if detailed is sameas true %}
- #internal-connection-point-ref: <update, optional>
- #mac-address <update, optional>
- #mgmt-interface: <update, optional>
- {%- endif %}
-
- {%- for z in range(1, interfaces + 1 ) %}
- - name: eth{{ z }}
- type: EXTERNAL
- virtual-interface:
- type: PARAVIRT
- {%- if detailed is sameas true %}
- #vpci: <update, optional>
- #bandwidth: <update, optional>
- {%- endif %}
- external-connection-point-ref: vnf-cp{{ z }}
- {%- if detailed is sameas true %}
- #internal-connection-point-ref: <update, optional>
- #mac-address <update, optional>
- #mgmt-interface: <update, optional>
- {%- endif %}
- {%- endfor %}
- {%- endfor %}
- {%- endif %}
- connection-point:
- - name: vnf-cp0
- {%- for x in range(1, interfaces + 1 ) %}
- - name: vnf-cp{{ x }}
- {%- endfor %}
\ No newline at end of file
+vnfd:
+ id: {{ name }}_vnfd
+ product-name: {{ name }}_vnfd
+ description: Generated by OSM package generator
+ provider: OSM
+ version: '1.0'
+ mgmt-cp: vnf-cp0-ext
+ virtual-storage-desc:
+ - id: {{ name }}_vnfd-VM-storage
+ size-of-storage: {{ storage }}
+ {%- if detailed is sameas true %}
+ #disk-io-quota:
+ # limit: <update, optional>
+ # reserve: <update, optional>
+ # shares: <update, optional>
+ {%- endif %}
+ virtual-compute-desc:
+ - id: {{ name }}_vnfd-VM-compute
+ virtual-cpu:
+ num-virtual-cpu: {{ vcpu }}
+ {%- if detailed is sameas true %}
+ #pinning:
+ # # Choice cpu-pinning / cpu-quota
+ # policy: <update, optional> [dynamic, static]
+ # thread-policy: <update, optional> [AVOID, SEPARATED, ISOLATE, PREFER]
+ # cpu-quota:
+ # limit: <update, optional>
+ # reserve: <update, optional>
+ # shares: <update, optional>
+ {%- endif %}
+ virtual-memory:
+ size: {{ memory }}
+ {%- if detailed is sameas true %}
+ #guest-epa:
+ # mempage-size: <update, optional>
+ # mem-quota:
+ # limit: <update, optional>
+ # reserve: <update, optional>
+ # shares: <update, optional>
+ {%- endif %}
+ sw-image-desc:
+ - id: "{{ image }}"
+ name: "{{ image }}"
+ image: "{{ image }}"
+ {%- if detailed is sameas true %}
+ #- id: <update>
+ # name: <update, optional>
+ # image: <update, optional>
+ # vim-type: <update>
+ {%- endif %}
+ df:
+ - id: default-df
+ instantiation-level:
+ - id: default-instantiation-level
+ vdu-level:
+ - vdu-id: {{ name }}_vnfd-VM
+ number-of-instances: 1
+ vdu-profile:
+ - id: {{ name }}_vnfd-VM
+ min-number-of-instances: 1
+ max-number-of-instances: 1
+ {%- if detailed is sameas true %}
+ #lcm-operations-configuration:
+ # operate-vnf-op-config:
+ # day1-2:
+ # - id: {{ name }}_vnfd-VM
+ # # Configure the VNF or VDU through Juju.
+ # juju:
+ # charm: <update, optional>
+ # proxy: <update, optional>
+ # vca-relationships:
+ # relation:
+ # - requires: <update>
+ # provides: <update>
+ # config-primitive:
+ # - name: <update>
+ # parameter:
+ # - name: <update>
+ # data-type: <update, optional>
+ # mandatory: <update, optional>
+ # default-value: <update, optional>
+ # parameter-pool: <update, optional>
+ # read-only: <update, optional>
+ # hidden: <update, optional>
+ # initial-config-primitive:
+ # - seq: <update>
+ # name: <update, optional>
+ # parameter:
+ # - name: <update>
+ # data-type: <update, optional>
+ # value: <update, optional>
+ # terminate-config-primitive:
+ # - seq: <update>
+ # name: <update, optional>
+ # parameter:
+ # - name: <update>
+ # data-type: <update, optional>
+ # value: <update, optional>
+ # metrics:
+ # - name: <update>
+ # config-access:
+ # ssh-access:
+ # required: <update, optional>
+ # default-user: <update, optional>
+ #scaling-aspect:
+ #- id: <update>
+ # name: <update>
+ # max-scale-level: <update, optional>
+ # scaling-policy:
+ # - name: <update>
+ # scaling-type: <update, optional>
+ # enabled: <update, optional>
+ # scale-in-operator-type: <update, optional>
+ # scale-out-operator-type: <update, optional>
+ # threshold-time: <update, optional>
+ # cooldown-time: <update, optional>
+ # scaling-criteria: <update, optional>
+ # - name: <update>
+ # scale-in-threshold: <update, optional>
+ # scale-in-relational-operation: <update, optional>
+ # scale-out-threshold: <update, optional>
+ # scale-out-relational-operation: <update, optional>
+ # vnf-monitoring-param-ref: <update, optional>
+ # scaling-config-action:
+ # - trigger: <update>
+ # vnf-config-primitive-name-ref: <update, optional>
+ # aspect-delta-details:
+ # id: <update>-delta
+ # vdu-delta:
+ # - number-of-instances: 1
+ # id: {{ name }}_vnfd-VM
+ {%- endif %}
+ {%- if detailed is sameas true %}
+ ## Placement groups at VNF Level
+ #placement-groups:
+ #- name: <update>
+ # requirement: <update, optional>
+ # strategy: <update, optional> # COLOCATION, ISOLATION
+ # member-vdus:
+ # - member-vdu-ref: <update>
+ {%- endif %}
+ # At least one VDU need to be specified
+ # Additional VDUs can be created by copying the
+ # VDU descriptor below
+ vdu:
+ - id: {{ name }}_vnfd-VM
+ name: {{ name }}_vnfd-VM
+ description: {{ name }}_vnfd-VM
+ sw-image-desc: "{{ image }}"
+ {%- if detailed is sameas true %}
+ ## Choice cloud-init / cloud-init-file
+ #cloud-init: <update, optional>
+ #cloud-init-file: <update, optional>
+ #supplemental-boot-data:
+ # boot-data-drive: <update, optional>
+ #alarm:
+ #- alarm-id: <update>
+ # vnf-monitoring-param-ref: <update, optional>
+ # operation: <update, optional>
+ # value: <update, optional>
+ # actions:
+ # ok:
+ # - url: <update>
+ # insufficient-data:
+ # - url: <update>
+ # alarm:
+ # - url: <update>
+ #pdu-type: <update, optional>
+ #alternative-sw-image-desc:
+ #- id: <update>
+ # name: <update, optional>
+ # image: <update, optional>
+ # vim-type: <update>
+ {%- endif %}
+ virtual-storage-desc:
+ - {{ name }}_vnfd-VM-storage
+ virtual-compute-desc: {{ name }}_vnfd-VM-compute
+ {%- if detailed is sameas true %}
+ #monitoring-parameter:
+ #- id: <update>
+ # name: <update, optional>
+ # performance-metric: <update>
+ {%- endif %}
+ int-cpd:
+ - id: eth0-int
+ virtual-network-interface-requirement:
+ - name: eth0
+ virtual-interface:
+ type: PARAVIRT
+ {%- if detailed is sameas true %}
+ #vpci: <update, optional>
+ #bandwidth: <update, optional>
+ {%- endif %}
+ ext-cpd:
+ - id: vnf-cp0-ext
+ int-cpd:
+ vdu-id: {{ name }}_vnfd-VM
+ cpd: eth0-int
+ {%- if detailed is sameas true %}
+ #port-security-enabled: <update, optional>
+ #port-security-disable-strategy: <update, optional>
+ {%- endif %}
\ No newline at end of file