Fixes bug 1658 package-create update with sol006 templates
[osm/osmclient.git] / osmclient / templates / vnfd.yaml.j2
index 0dfc1f2..b0a6c48 100644 (file)
 #    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