tosca_definitions_version: tosca_simple_yaml_1_2

description: Simple deployment flavour for Sample VNF

imports:
  - etsi_nfv_sol001_common_types.yaml
  - etsi_nfv_sol001_vnfd_types.yaml
  - helloworld3_types.yaml

topology_template:
  inputs:
    descriptor_id:
      type: string
    descriptor_version:
      type: string
    provider:
      type: string
    product_name:
      type: string
    software_version:
      type: string
    vnfm_info:
      type: list
      entry_schema:
        type: string
    flavour_id:
      type: string
    flavour_description:
      type: string

  substitution_mappings:
    node_type: company.provider.VNF
    properties:
      flavour_id: simple
    requirements:
      virtual_link_external: [ CP1, virtual_link ]

  node_templates:
    VNF:
      type: company.provider.VNF
      properties:
        flavour_description: A simple flavour
      interfaces:
        Vnflcm:
          # supporting only 'instantiate', 'terminate', 'modify'
          # not supporting LCM script, supporting only default LCM
          instantiate: []
          instantiate_start: []
          instantiate_end: []
          terminate: []
          terminate_start: []
          terminate_end: []
          modify_information: []
          modify_information_start: []
          modify_information_end: []

    VDU1:
      type: tosca.nodes.nfv.Vdu.Compute
      properties:
        name: VDU1
        description: VDU1 compute node
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 1
        sw_image_data:
          name: Software of VDU1
          version: '0.4.0'
          checksum:
            algorithm: sha-256
            hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
          container_format: bare
          disk_format: qcow2
          min_disk: 1 GB
          size: 1 GB

      artifacts:
        sw_image: ../Files/images/cirros-0.4.0-x86_64-disk.img

      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 512 MB
            virtual_cpu:
              num_virtual_cpu: 1
            virtual_local_storage:
              - size_of_storage: 1 GB

    VDU2:
      type: tosca.nodes.nfv.Vdu.Compute
      properties:
        name: VDU2
        description: VDU2 compute node
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 3

      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 512 MB
            virtual_cpu:
              num_virtual_cpu: 1
            virtual_local_storage:
              - size_of_storage: 1 GB
      requirements:
        - virtual_storage: VirtualStorage

    VirtualStorage:
      type: tosca.nodes.nfv.Vdu.VirtualBlockStorage
      properties:
        virtual_block_storage_data:
          size_of_storage: 30 GB
          rdma_enabled: true
        sw_image_data:
          name: VrtualStorage
          version: '0.4.0'
          checksum:
            algorithm: sha-256
            hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
          container_format: bare
          disk_format: qcow2
          min_disk: 2 GB
          min_ram: 8192 MB
          size: 2 GB
      artifacts:
        sw_image: ../Files/images/cirros-0.4.0-x86_64-disk.img

    CP1:
      type: tosca.nodes.nfv.VduCp
      properties:
        layer_protocols: [ ipv4 ]
        order: 0
        vnic_type: direct-physical
      requirements:
        - virtual_binding: VDU1
        #- virtual_link: # the target node is determined in the NSD

    CP2:
      type: tosca.nodes.nfv.VduCp
      properties:
        layer_protocols: [ ipv4 ]
        order: 1
      requirements:
        - virtual_binding: VDU1
        - virtual_link: internalVL2

    CP3:
      type: tosca.nodes.nfv.VduCp
      properties:
        layer_protocols: [ ipv4 ]
        order: 2
      requirements:
        - virtual_binding: VDU2
        - virtual_link: internalVL2

    internalVL2:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
          layer_protocols: [ ipv4 ]
        description: Internal Virtual link in the VNF
        vl_profile:
          max_bitrate_requirements:
            root: 1048576
            leaf: 1048576
          min_bitrate_requirements:
            root: 1048576
            leaf: 1048576
          virtual_link_protocol_data:
            - associated_layer_protocol: ipv4
              l3_protocol_data:
                ip_version: ipv4
                cidr: 11.11.0.0/24


