MainServiceTemplate_sriov.yaml 16.9 KB
Newer Older
1 2 3 4 5
tosca_definitions_version: tosca_simple_yaml_1_0
metadata:
  template_name: vCPE_vbng
  template_version: "1.0"
  template_author: onap
6
  VNFD_SCHEMA_VERSION: "2.5.1+1"
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
description: vCPE_vbng

imports:
  - onap_dm.yaml

topology_template:
#  substitution_mappings:
#    node_type: onap.vcpe_vbng
#    requirements:
#      virtual_link: [ Cp_vbng_public, virtual_link ] # expose as external CP
#      virtual_link: [ Cp_vbng_onap_private, virtual_link ] # expose as external CP

  inputs:
    vcpe_image_name:
      type: string
      description: image name for vcpe in openstack glance
      default: ubuntu_16.04
    public_net_id:
      type: string
      description: public network id used during onap installation
    onap_private_net_id:
      type: string
      description: onap OAM network id
    onap_private_net_cidr:
      type: string
      description: oanp OAM network cidr
      default: 10.0.0.0/16
    brgemu_bng_private_net_id:
      type: string
      description: Private network that connects vBRG to vBNG
      default: zdfw1bngin01_private
    brgemu_bng_private_net_cidr:
      type: string
      description: The CIDR of the input side of vBNG private network
      default: 10.3.0.0/24
    bng_gmux_private_net_id:
      type: string
      description: Private network that connects vBNG to vGMUX
      default: zdfw1bngmux01_private
    bng_gmux_private_net_cidr:
      type: string
      description: The CIDR of the input side of vGMUX private network
      default: 10.1.0.0/24
    cpe_signal_net_id:
      type: string
      description: Private network that connects vCPE elements with vCPE infrastructure elements
      default: zdfw1cpe01_private
    cpe_signal_private_net_cidr:
      type: string
      description: The CIDR of the vAAA private network
      default: 10.4.0.0/24
    vbng_private_ip_0:
      type: string
      description: Private IP address that is assigned to the vBNG IN
      default: 10.3.0.1
    vbng_private_ip_1:
      type: string
      description: Private IP address that is assigned to the vBNG to communicate with ONAP components
      default: 10.0.101.10
    vbng_private_ip_2:
      type: string
      description: Private IP address that is assigned to the vBNG in the CPE_SIGNAL network
      default: 10.4.0.3
    vbng_private_ip_3:
      type: string
      description: Private IP address that is assigned to the vBNG to vGMUX port
      default: 10.1.0.10
    vbng_name_0:
      type: string
      description: Name of the vBNG
      default: zdcpe1cpe01bng01
    vnf_id:
      type: string
      description: The VNF ID is provided by ONAP
      default: vCPE_Infrastructure_Metro_vBNG_demo_app
    vf_module_id:
      type: string
      description: The vCPE Module ID is provided by ONAP
      default: vCPE_Intrastructure_Metro_vBNG
    dcae_collector_ip:
      type: string
      description: dcae collector ip
      default: 10.0.4.102
    dcae_collector_port:
91
      type: string
92
      description: dcae collector port
93
      default: "8080"
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
    pub_key:
      type: string
      description: ssh public key
      default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/
    nexus_artifact_repo:
      type: string
      description: Root URL for the Nexus repository for Maven artifacts
      default: https://nexus.onap.org
    demo_artifacts_version:
      type: string
      description: artifacts version used in demo vnfs
      default: 1.2.0
    install_script_version:
      type: string
      description: install script version number
      default: 1.2.0-SNAPSHOT
    cloud_env:
      type: string
      description: cloud environment(openstack or rackspace)
      default: openstack
    sdnc_ip_addr:
      type: string
      description: IP address of the SDNC
      default: 10.0.7.1

  node_templates:
120 121 122 123 124 125 126 127 128 129 130 131 132
    LLU_VNF:
      type: tosca.nodes.nfv.VNF
      properties:
        descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1177
        provider: onap
        product_name: vcpe_vbng
        software_version: '1.0'
        descriptor_version: '1.0'
        flavour_id: simple
        flavour_description: simple
        vnfm_info: ['gvnfm']


133 134 135 136 137
    #onap public net
#    VL_public:
#      type: tosca.nodes.nfv.VnfVirtualLink
#      properties:
#        connectivity_type:
138
#          layer_protocols: [ipv4]
139
#        vl_profile:
140
#          max_bitrate_requirements:
141 142
#            root: 10000000
#            leaf: 10000000
143
#          min_bitrate_requirements:
144 145
#            root: 10000000
#            leaf: 10000000
146 147 148 149 150
#          virtual_link_protocol_data:
#            - associated_layer_protocol: ipv4
#              l3_protocol_data:
#                ip_version: ipv4
#                name: { get_input: public_net_id }
151 152 153 154 155 156
#
#    #onap oam net
#    VL_onap_private:
#      type: tosca.nodes.nfv.VnfVirtualLink
#      properties:
#        connectivity_type:
157
#          layer_protocols: [ipv4]
158
#        vl_profile:
159
#          max_bitrate_requirements:
160 161
#            root: 10000000
#            leaf: 10000000
162
#          min_bitrate_requirements:
163 164
#            root: 10000000
#            leaf: 10000000
165 166 167 168 169 170
#          virtual_link_protocol_data:
#            - associated_layer_protocol: ipv4
#              l3_protocol_data:
#                ip_version: ipv4
#                name: { get_input: onap_private_net_id }
#                cidr: { get_input: onap_private_net_cidr }
171 172 173 174 175 176

    #Private network that connects vBRG to vBNG
    VL_brgemu_bng_private_net:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
177
          layer_protocols: [ipv4]
178
        vl_profile:
179
          max_bitrate_requirements:
180 181
            root: 10000000
            leaf: 10000000
182
          min_bitrate_requirements:
183 184
            root: 10000000
            leaf: 10000000
185 186 187 188 189 190 191 192 193
          virtual_link_protocol_data:
            - associated_layer_protocol: ipv4
              l3_protocol_data:
                ip_version: ipv4
                name: { get_input: brgemu_bng_private_net_id}
                cidr: { get_input: brgemu_bng_private_net_cidr }
                dhcp_enabled: false
              l2_protocol_data:
                physical_network: "physnet1"
194 195 196 197 198 199

    #cpe signal network
    VL_cpe_signal:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
200
          layer_protocols: [ipv4]
201
        vl_profile:
202
          max_bitrate_requirements:
203 204
            root: 10000000
            leaf: 10000000
205
          min_bitrate_requirements:
206 207
            root: 10000000
            leaf: 10000000
208 209 210 211 212 213 214
          virtual_link_protocol_data:
            - associated_layer_protocol: ipv4
              l3_protocol_data:
                ip_version: ipv4
                name: { get_input: cpe_signal_net_id}
                cidr: { get_input: cpe_signal_private_net_cidr }
                dhcp_enabled: false
215 216 217 218 219 220

    #Private network that connects vBNG to vGMUX
    VL_bng_gmux_private_net:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
221
          layer_protocols: [ipv4]
222
        vl_profile:
223
          max_bitrate_requirements:
224 225
            root: 10000000
            leaf: 10000000
226
          min_bitrate_requirements:
227 228
            root: 10000000
            leaf: 10000000
229 230 231 232 233 234 235 236 237
          virtual_link_protocol_data:
            - associated_layer_protocol: ipv4
              l3_protocol_data:
                ip_version: ipv4
                name: { get_input: bng_gmux_private_net_id}
                cidr: { get_input: bng_gmux_private_net_cidr }
                dhcp_enabled: false
              l2_protocol_data:
                physical_network: "physnet1"
238 239 240 241 242

    # vbng related
    Cp_vbng_public:
      type: tosca.nodes.nfv.VduCp
      properties:
243
        layer_protocols: [ipv4]
244
        trunk_mode: false
245 246
        protocol:
          - associated_layer_protocol: ipv4
247
            address_data:
248 249 250 251
              - address_type: ip_address
                l3_address_data:
                  ip_address_assignment: false
                  floating_ip_activated: false
252 253 254 255 256 257 258
      requirements:
        - virtual_binding: VDU_vbng_0
        #- virtual_link: VL_public

    Cp_vbng_onap_private:
      type: tosca.nodes.nfv.VduCp
      properties:
259
        layer_protocols: [ipv4]
260
        trunk_mode: false
261 262
        protocol:
          - associated_layer_protocol: ipv4
263
            address_data:
264 265 266 267 268 269
              - address_type: ip_address
                l3_address_data:
                  ip_address_assignment: false
                  floating_ip_activated: false
                  fixed_ip_address:
                    - { get_input: vbng_private_ip_1 }
270 271 272 273 274 275 276
      requirements:
        - virtual_binding: VDU_vbng_0
        #- virtual_link: VL_onap_private

    Cp_vbng_brgemu_bng_private_net:
      type: tosca.nodes.nfv.VduCp
      properties:
277
        layer_protocols: [ipv4]
278
        trunk_mode: false
279 280
        protocol:
          - associated_layer_protocol: ipv4
281
            address_data:
282 283 284 285 286 287
              - address_type: ip_address
                l3_address_data:
                  ip_address_assignment: false
                  floating_ip_activated: false
                  fixed_ip_address:
                    - { get_input: vbng_private_ip_0 }
288
        vnic_type: "direct"
289 290 291 292 293 294
        virtual_network_interface_requirements:
          - name: "sriov-support"
            support_mandatory: true
            network_interface_requirements:
              interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}'
            nic_io_requirements:
Huang Haibin's avatar
Huang Haibin committed
295 296 297 298
              logical_node_requirements:
                pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}'
                pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}'
                pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}'
299 300 301 302 303 304 305
      requirements:
        - virtual_binding: VDU_vbng_0
        - virtual_link: VL_brgemu_bng_private_net

    Cp_vbng_cpe_signal:
      type: tosca.nodes.nfv.VduCp
      properties:
306
        layer_protocols: [ipv4]
307
        trunk_mode: false
308 309
        protocol:
          - associated_layer_protocol: ipv4
310
            address_data:
311 312 313 314 315 316
              - address_type: ip_address
                l3_address_data:
                  ip_address_assignment: false
                  floating_ip_activated: false
                  fixed_ip_address:
                    - { get_input: vbng_private_ip_2 }
317 318 319 320 321 322 323
      requirements:
        - virtual_binding: VDU_vbng_0
        - virtual_link: VL_cpe_signal

    Cp_vbng_bng_gmux_private_net:
      type: tosca.nodes.nfv.VduCp
      properties:
324
        layer_protocols: [ipv4]
325
        trunk_mode: false
326 327
        protocol:
          - associated_layer_protocol: ipv4
328
            address_data:
329 330 331 332 333 334
              - address_type: ip_address
                l3_address_data:
                  ip_address_assignment: false
                  floating_ip_activated: false
                  fixed_ip_address:
                    - { get_input: vbng_private_ip_3 }
335
        vnic_type: "direct"
336 337 338 339 340 341
        virtual_network_interface_requirements:
          - name: "sriov-support"
            support_mandatory: true
            network_interface_requirements:
              interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}'
            nic_io_requirements:
Huang Haibin's avatar
Huang Haibin committed
342 343 344 345
              logical_node_requirements:
                pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}'
                pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}'
                pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}'
346 347 348 349 350 351 352 353 354 355 356 357 358 359
      requirements:
        - virtual_binding: VDU_vbng_0
        - virtual_link: VL_bng_gmux_private_net

    VDU_vbng_0:
      type: tosca.nodes.nfv.Vdu.Compute
      properties:
        name: { get_input: vbng_name_0 }
        description: vbng
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 1
          watchdog: none
        inject_files: #TODO SDC bug
Haibin Huang's avatar
Haibin Huang committed
360
          source_path: ../Artifacts/Deployment/OTHER/authorized_keys #SSH authorized_keys
361 362 363 364 365 366 367 368 369
          dest_path: /home/ubuntu/.ssh/authorized_keys
        meta_data:
          vnf_id: { get_input: vnf_id }
          vf_module_id: { get_input: vf_module_id }

          brgemu_bng_net_ipaddr: { get_input: vbng_private_ip_0 }
          cpe_signal_net_ipaddr: { get_input: vbng_private_ip_2 }
          bng_gmux_net_ipaddr: { get_input: vbng_private_ip_3 }
          oam_ipaddr: { get_input: vbng_private_ip_1 }
370
          oam_cidr: { get_input: onap_private_net_cidr }
371 372 373 374 375 376 377
          bng_gmux_cidr: { get_input: bng_gmux_private_net_cidr }
          cpe_signal_cidr: { get_input: cpe_signal_private_net_cidr }
          brgemu_bng_cidr: { get_input: brgemu_bng_private_net_cidr }
          dcae_collector_ip: { get_input: dcae_collector_ip }
          dcae_collector_port: { get_input: dcae_collector_port }
          demo_artifacts_version: { get_input: demo_artifacts_version }
          install_script_version: { get_input: install_script_version }
378
          sdnc_ip: { get_input: sdnc_ip_addr }
379 380
          cloud_env: { get_input: cloud_env }
          nexus_artifact_repo: { get_input: nexus_artifact_repo }
381
        boot_data: |
382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
          #!/bin/bash
          METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json`
          apt-get -y install jq

          get_metadata () {
            echo $METADATA | jq -r ".meta.$1"
          }

          # Create configuration files
          mkdir /opt/config
          echo "$(get_metadata brgemu_bng_net_ipaddr)" > /opt/config/brgemu_bng_net_ipaddr.txt
          echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt
          echo "$(get_metadata bng_gmux_net_ipaddr)" > /opt/config/bng_gmux_net_ipaddr.txt
          echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt
          echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt
          echo "$(get_metadata bng_gmux_cidr)" > /opt/config/bng_gmux_net_cidr.txt
          echo "$(get_metadata cpe_signal_cidr)" > /opt/config/cpe_signal_net_cidr.txt
          echo "$(get_metadata brgemu_bng_cidr)" > /opt/config/brgemu_bng_net_cidr.txt
          echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt
          echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt
          echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt
          echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt
          echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt
          echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt
          echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt

          # Download and run install script
          apt-get -y install unzip
          INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version)
          NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo)
          if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
          curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip
          unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_bng_install.sh
          cd /opt
          chmod +x v_bng_install.sh
          ./v_bng_install.sh
      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 4096 MB
423
              vdu_mem_requirements:
424 425 426 427 428
                memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}'
                numberOfPages: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1024"}'
            virtual_cpu:
              num_virtual_cpu: 2
              cpu_architecture: generic
429 430
            virtual_local_storage:
              - size_of_storage: 40 GB
431 432 433
      artifacts:
        sw_image: #TODO need to put glance image name here
          #file: { get_input: vcpe_image_name }
Haibin Huang's avatar
Haibin Huang committed
434
          file: ../Artifacts/Deployment/OTHER/image
435
          type: tosca.artifacts.nfv.SwImage