Examples from OSM Hackfests: Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
No edit summary
No edit summary
Line 17: Line 17:


===VNF diagram===
===VNF diagram===
[[File:Hackfest_simple_vnf.JPG|400px]]
[[File:Hackfest simple vnf.png|400px]]
===VNF descriptor===
===VNF descriptor===
  vnfd:vnfd-catalog:
  vnfd:vnfd-catalog:
Line 48: Line 48:
             cp: vnf-cp0
             cp: vnf-cp0
===NS diagram===
===NS diagram===
[[File:Hackfest simple ns.jpg|400px]]
[[File:Hackfest simple ns.png|400px]]
===NS descriptor===
===NS descriptor===
  nsd:nsd-catalog:
  nsd:nsd-catalog:
Line 118: Line 118:


===VNF diagram===
===VNF diagram===
[[File:Hackfest multivdu vnf.jpg|500px]]
[[File:Hackfest multivdu vnf.png|500px]]
===VNF descriptor===
===VNF descriptor===
  vnfd:vnfd-catalog:
  vnfd:vnfd-catalog:
Line 201: Line 201:
                 type: VPORT
                 type: VPORT
===NS diagram===
===NS diagram===
[[File:Hackfest multivdu ns.jpg|500px]]
[[File:Hackfest multivdu ns.png|500px]]
===NS descriptor===
===NS descriptor===
  nsd:nsd-catalog:
  nsd:nsd-catalog:
Line 286: Line 286:


===VNF diagram===
===VNF diagram===
[[File:Hackfest cloudinit vnf.jpg|500px]]
[[File:Hackfest cloudinit vnf.png|500px]]
===VNF descriptor===
===VNF descriptor===
  vnfd:vnfd-catalog:
  vnfd:vnfd-catalog:
Line 370: Line 370:
                 type: VPORT
                 type: VPORT
===NS diagram===
===NS diagram===
[[File:Hackfest cloudinit ns.jpg|500px]]
[[File:Hackfest cloudinit ns.png|500px]]
===NS descriptor===
===NS descriptor===
  nsd:nsd-catalog:
  nsd:nsd-catalog:
Line 461: Line 461:


===VNF diagram===
===VNF diagram===
[[File:Hackfest epasriov vnf.jpg|500px]]
[[File:Hackfest epasriov vnf.png|500px]]
===VNF descriptor===
===VNF descriptor===
  vnfd:vnfd-catalog:
  vnfd:vnfd-catalog:
Line 563: Line 563:
                 type: VPORT
                 type: VPORT
===NS diagram===
===NS diagram===
[[File:Hackfest epasriov ns.jpg|500px]]
[[File:Hackfest epasriov ns.png|500px]]
===NS descriptor===
===NS descriptor===
  nsd:nsd-catalog:
  nsd:nsd-catalog:
Line 659: Line 659:


===VNF diagram===
===VNF diagram===
[[File:Hackfest simplecharm vnf.jpg|500px]]
[[File:Hackfest simplecharm vnf.png|500px]]
===VNF descriptor===
===VNF descriptor===
  vnfd:vnfd-catalog:
  vnfd:vnfd-catalog:
Line 767: Line 767:
                     default-value: '/home/ubuntu/touched'
                     default-value: '/home/ubuntu/touched'
===NS diagram===
===NS diagram===
[[File:Hackfest simplecharm ns.jpg|500px]]
[[File:Hackfest simplecharm ns.png|500px]]
===NS descriptor===
===NS descriptor===
  nsd:nsd-catalog:
  nsd:nsd-catalog:

Revision as of 07:57, 23 July 2018

Examples from the 3rd OSM Hackfest

Work material

Examples

Basic VNF and NS

VNF diagram

Hackfest simple vnf.png

VNF descriptor

vnfd:vnfd-catalog:
   vnfd:
   -   id: hackfest1-vnf
       name: hackfest1-vnf
       short-name: hackfest1-vnf
       version: '1.0'
       description: A simple VNF descriptor w/ one VDU
       logo: osm.png
       connection-point:
       -   name: vnf-cp0
           type: VPORT
       vdu:
       -   id: hackfest1VM
           name: hackfest1VM
           image: ubuntu1604
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: vdu-eth0
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-cp0
       mgmt-interface:
           cp: vnf-cp0

NS diagram

Hackfest simple ns.png

NS descriptor

nsd:nsd-catalog:
   nsd:
   -   id: hackfest1-ns
       name: hackfest1-ns
       short-name: hackfest1-ns
       description: Simple NS with a single VNF and a single VL
       version: '1.0'
       logo: osm.png
       constituent-vnfd:
       -   vnfd-id-ref: hackfest1-vnf
           member-vnf-index: '1'
       vld:
       -   id: mgmtnet
           name: mgmtnet
           short-name: mgmtnet
           type: ELAN
           mgmt-network: 'true'
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest1-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-cp0

Testing with OSM client

  • Onboard VNF packages
osm vnfd-create hackfest1_vnfd.tar.gz
osm vnfd-list
osm vnfd-show hackfest1-vnf
  • Onboard NS packages
osm nsd-create hackfest1_nsd.tar.gz
osm nsd-list
osm nsd-show hackfest1-ns
  • Instantiate
osm ns-create --ns_name hf1 --nsd_name hackfest1-ns \
  --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> \
  --ssh_keys <KEY1_PUBKEY_FILE> \
  --config '{vld: [ {name: mgmtnet, vim-network-name: <VIM_MGMT_NAME>} ] }'
  • Check NS status
osm ns-list
osm ns-show hf1
  • Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list
osm vnf-show <VNF ID>
  • Connect to the VNF
ssh -i <priv_key> ubuntu@<IP>

Testing with OSM UI

  • Onboard VNF package
Go to VNF packages
Drag and drop the VNF package to the ...
  • Onboard NS package
Drag and drop the NS package to the ...
  • Instantiate NS
Go to NS packages
In hackfest1-ns, click in “Actions: Instantiate NS”
Complete the form:
    -Add a name to the NS instance
    -Select the Datacenter where the NS will be deployed
    -Specify in the config section a default VIM network name to map “mgmtnet”:
    -Paste your public SSH key to get access to the VNF (VMs need to have cloud-init enabled, in this case the hackfest1 example has cloud-init)
  • Connect to the VNF:
ssh -i <priv_key> ubuntu@<IP>

Multi-VDU VNF

VNF diagram

Hackfest multivdu vnf.png

VNF descriptor

vnfd:vnfd-catalog:
   vnfd:
   -   id: hackfest2-vnf
       name: hackfest2-vnf
       short-name: hackfest2-vnf
       version: '1.0'
       description: A VNF consisting of 2 VDUs connected to an internal VL
       logo: osm.png
       connection-point:
       -   id: vnf-mgmt
           name: vnf-mgmt
           short-name: vnf-mgmt
           type: VPORT
       -   id: vnf-data
           name: vnf-data
           short-name: vnf-data
           type: VPORT
       mgmt-interface:
           cp: vnf-mgmt
       internal-vld:
       -   id: internal
           name: internal
           short-name: internal
           type: ELAN
           internal-connection-point:
           -   id-ref: mgmtVM-internal
           -   id-ref: dataVM-internal
       vdu:
       -   id: mgmtVM
           name: mgmtVM
           image: US1604
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: mgmtVM-eth0
               position: '1'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-mgmt
           -   name: mgmtVM-eth1
               position: '2'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: mgmtVM-internal
           internal-connection-point:
           -   id: mgmtVM-internal
               name: mgmtVM-internal
               short-name: mgmtVM-internal
               type: VPORT
       -   id: dataVM
           name: dataVM
           image: US1604
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: dataVM-eth0
               position: '1'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: dataVM-internal
           -   name: dataVM-xe0
               position: '2'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-data
           internal-connection-point:
           -   id: dataVM-internal
               name: dataVM-internal
               short-name: dataVM-internal
               type: VPORT

NS diagram

Hackfest multivdu ns.png

NS descriptor

nsd:nsd-catalog:
   nsd:
   -   id: hackfest2-ns
       name: hackfest2-ns
       short-name: hackfest2-ns
       description: NS with 2 VNFs connected by datanet and mgmtnet VLs
       version: '1.0'
       logo: osm.png
       constituent-vnfd:
       -   vnfd-id-ref: hackfest2-vnf
           member-vnf-index: '1'
       -   vnfd-id-ref: hackfest2-vnf
           member-vnf-index: '2'
       vld:
       -   id: mgmtnet
           name: mgmtnet
           short-name: mgmtnet
           type: ELAN
           mgmt-network: 'true'
           vim-network-name: mgmt
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest2-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-mgmt
           -   vnfd-id-ref: hackfest2-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-mgmt
       -   id: datanet
           name: datanet
           short-name: datanet
           type: ELAN
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest2-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-data
           -   vnfd-id-ref: hackfest2-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-data

Testing with OSM client

  • Onboard VNF packages
osm vnfd-create hackfest2_vnfd.tar.gz
osm vnfd-list
osm vnfd-show hackfest2-vnf
  • Onboard NS packages
osm nsd-create hackfest2_nsd.tar.gz
osm nsd-list
osm nsd-show hackfest2-ns
  • Instantiate
osm ns-create --ns_name hf2 --nsd_name hackfest2-ns \
  --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> 
  • Check NS status
osm ns-list
osm ns-show hf2
  • Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list
osm vnf-show <VNF ID>
  • Connect to the VNF
ssh osm@<IP> (pwd:osm4u)

Testing with OSM UI

  • Onboard VNF package
Go to VNF packages
Drag and drop the VNF package to the ...
  • Onboard NS package
Drag and drop the NS package to the ...
  • Instantiate NS
Go to NS packages
In hackfest2-ns, click in “Actions: Instantiate NS”
    -Complete the form
    -Add a name to the NS instance
    -Select the Datacenter where the NS will be deployed
    -Specify in the config section a default VIM network name to map “MGMTNET”:
    -Click the info button to see the mgmt IP address
  • Connect to each VNF:
ssh osm@<IP>  (pwd:osm4u)

VNF with Day-0 configuration

VNF diagram

Hackfest cloudinit vnf.png

VNF descriptor

vnfd:vnfd-catalog:
   vnfd:
   -   id: hackfest3-vnf
       name: hackfest3-vnf
       short-name: hackfest3-vnf
       version: '1.0'
       description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
       logo: osm.png
       connection-point:
       -   id: vnf-mgmt
           name: vnf-mgmt
           short-name: vnf-mgmt
           type: VPORT
       -   id: vnf-data
           name: vnf-data
           short-name: vnf-data
           type: VPORT
       mgmt-interface:
           cp: vnf-mgmt
       internal-vld:
       -   id: internal
           name: internal
           short-name: internal
           type: ELAN
           internal-connection-point:
           -   id-ref: mgmtVM-internal
           -   id-ref: dataVM-internal
       vdu:
       -   id: mgmtVM
           name: mgmtVM
           image: hackfest3-mgmt
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: mgmtVM-eth0
               position: '1'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-mgmt
           -   name: mgmtVM-eth1
               position: '2'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: mgmtVM-internal
           internal-connection-point:
           -   id: mgmtVM-internal
               name: mgmtVM-internal
               short-name: mgmtVM-internal
               type: VPORT
           cloud-init-file: cloud-config.txt
       -   id: dataVM
           name: dataVM
           image: hackfest3-mgmt
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: dataVM-eth0
               position: '1'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: dataVM-internal
           -   name: dataVM-xe0
               position: '2'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-data
           internal-connection-point:
           -   id: dataVM-internal
               name: dataVM-internal
               short-name: dataVM-internal
               type: VPORT

NS diagram

Hackfest cloudinit ns.png

NS descriptor

nsd:nsd-catalog:
   nsd:
   -   id: hackfest3-ns
       name: hackfest3-ns
       short-name: hackfest3-ns
       description: NS with 2 VNFs hackfest3-vnf connected by datanet and mgmtnet VLs
       version: '1.0'
       logo: osm.png
       constituent-vnfd:
       -   vnfd-id-ref: hackfest3-vnf
           member-vnf-index: '1'
       -   vnfd-id-ref: hackfest3-vnf
           member-vnf-index: '2'
       vld:
       -   id: mgmtnet
           name: mgmtnet
           short-name: mgmtnet
           type: ELAN
           mgmt-network: 'true'
           vim-network-name: mgmt
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest3-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-mgmt
           -   vnfd-id-ref: hackfest3-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-mgmt
       -   id: datanet
           name: datanet
           short-name: datanet
           type: ELAN
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest3-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-data
           -   vnfd-id-ref: hackfest3-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-data

Testing with OSM client

  • Onboard VNF packages
osm vnfd-create hackfest3_vnfd.tar.gz
osm vnfd-list
osm vnfd-show hackfest3-vnf
  • Onboard NS packages
osm nsd-create hackfest3_nsd.tar.gz
osm nsd-list
osm nsd-show hackfest3-ns
  • Instantiate
osm ns-create --ns_name hf3 --nsd_name hackfest3-ns \
  --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> 
  • Check NS status
osm ns-list
osm ns-show hf3
  • Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list
osm vnf-show <VNF ID>
  • Connect to the VNF
ssh osm@<IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that Cloud init worked:
         sudo ls /root/helloworld.txt
         sudo cat /root/helloworld.txt

Testing with OSM UI

  • Onboard VNF package
Go to VNF packages
Drag and drop the VNF package to the ...
  • Onboard NS package
Drag and drop the NS package to the ...
  • Instantiate NS
Go to NS packages
In hackfest3-ns, click in “Actions: Instantiate NS”
    -Complete the form
    -Add a name to the NS instance
    -Select the Datacenter where the NS will be deployed
    -Specify in the config section a default VIM network name to map “MGMTNET”:
    -Click the info button to see the mgmt IP address
  • Connect to the VNF
ssh osm@<IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that Cloud init worked:
         sudo ls /root/helloworld.txt
         sudo cat /root/helloworld.txt

VNF with EPA requirements

VNF diagram

Hackfest epasriov vnf.png

VNF descriptor

vnfd:vnfd-catalog:
   vnfd:
   -   id: hackfest4-vnf
       name: hackfest4-vnf
       short-name: hackfest4-vnf
       version: '1.0'
       description: A VNF consisting of 2 VDUs with EPA capabilities connected to an internal VL, mgmtVM VDU with cloud-init
       logo: osm.png
       connection-point:
       -   id: vnf-mgmt
           name: vnf-mgmt
           short-name: vnf-mgmt
           type: VPORT
       -   id: vnf-data
           name: vnf-data
           short-name: vnf-data
           type: VPORT
       mgmt-interface:
           cp: vnf-mgmt
       internal-vld:
       -   id: internal
           name: internal
           short-name: internal
           type: ELAN
           internal-connection-point:
           -   id-ref: mgmtVM-internal
           -   id-ref: dataVM-internal
       vdu:
       -   id: mgmtVM
           name: mgmtVM
           image: hackfest3-mgmt
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           guest-epa:
               cpu-pinning-policy: DEDICATED
               cpu-thread-pinning-policy: PREFER
               mempage-size: LARGE
               numa-node-policy:
                   mem-policy: STRICT
                   node-cnt: '1'
                   node:
                   -   id: '1'
           interface:
           -   name: mgmtVM-eth0
               position: '1'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-mgmt
           -   name: mgmtVM-eth1
               position: '2'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: mgmtVM-internal
           internal-connection-point:
           -   id: mgmtVM-internal
               name: mgmtVM-internal
               short-name: mgmtVM-internal
               type: VPORT
           cloud-init-file: cloud-config.txt
       -   id: dataVM
           name: dataVM
           image: hackfest-pktgen
           count: '1'
           vm-flavor:
               vcpu-count: '8'
               memory-mb: '4096'
               storage-gb: '10'
           guest-epa:
               cpu-pinning-policy: DEDICATED
               cpu-thread-pinning-policy: PREFER
               mempage-size: LARGE
               numa-node-policy:
                   mem-policy: STRICT
                   node-cnt: '1'
                   node:
                   -   id: '1'
           interface:
           -   name: eth0
               position: '1'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: dataVM-internal
           -   name: xe0
               position: '2'
               type: EXTERNAL
               virtual-interface:
                   type: SR-IOV
               external-connection-point-ref: vnf-data
           internal-connection-point:
           -   id: dataVM-internal
               name: dataVM-internal
               short-name: dataVM-internal
               type: VPORT

NS diagram

Hackfest epasriov ns.png

NS descriptor

nsd:nsd-catalog:
   nsd:
   -   id: hackfest4-ns
       name: hackfest4-ns
       short-name: hackfest4-ns
       description: NS with 2 VNFs hackfest4-vnf connected by datanet and mgmtnet VLs
       version: '1.0'
       logo: osm.png
       constituent-vnfd:
       -   vnfd-id-ref: hackfest4-vnf
           member-vnf-index: '1'
       -   vnfd-id-ref: hackfest4-vnf
           member-vnf-index: '2'
       vld:
       -   id: mgmtnet
           name: mgmtnet
           short-name: mgmtnet
           type: ELAN
           mgmt-network: 'true'
           vim-network-name: mgmt
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest4-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-mgmt
           -   vnfd-id-ref: hackfest4-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-mgmt
       -   id: datanet
           name: datanet
           short-name: datanet
           type: ELAN
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest4-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-data
           -   vnfd-id-ref: hackfest4-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-data

Testing with OSM client

  • Onboard VNF packages
osm vnfd-create hackfest4_vnfd.tar.gz
osm vnfd-list
osm vnfd-show hackfest4-vnf
  • Onboard NS packages
osm nsd-create hackfest4_nsd.tar.gz
osm nsd-list
osm nsd-show hackfest4-ns
  • Instantiate
osm ns-create --ns_name hf4 --nsd_name hackfest4-ns \
  --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> 
  • Check NS status
osm ns-list
osm ns-show hf4
  • Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list
osm vnf-show <VNF ID>
  • Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that EPA is working:
         ssh -i test4.pem ubuntu<IP_dataVM>
         Run pktgen

Testing with OSM UI

  • Onboard VNF package
Go to VNF packages
Drag and drop the VNF package to the ...
  • Onboard NS package
Drag and drop the NS package to the ...
  • Instantiate NS
Go to NS packages
In hackfest4-ns, click in “Actions: Instantiate NS”
    -Complete the form
    -Add a name to the NS instance
    -Select the Datacenter where the NS will be deployed
    -Specify in the config section a default VIM network name to map “MGMTNET”:
    -Click the info button to see the mgmt IP address
  • Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that EPA is working:
         ssh -i test4.pem ubuntu<IP_dataVM>
         Run pktgen


VNF with Day-1/Day-2 configuration (adding a charm)

VNF diagram

Hackfest simplecharm vnf.png

VNF descriptor

vnfd:vnfd-catalog:
   vnfd:
   -   id: hackfest-simplecharm-vnf
       name: hackfest-simplecharm-vnf
       short-name: hackfest-simplecharm-vnf
       version: '1.0'
       description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
       logo: osm.png
       connection-point:
       -   id: vnf-mgmt
           name: vnf-mgmt
           short-name: vnf-mgmt
           type: VPORT
       -   id: vnf-data
           name: vnf-data
           short-name: vnf-data
           type: VPORT
       mgmt-interface:
           cp: vnf-mgmt
       internal-vld:
       -   id: internal
           name: internal
           short-name: internal
           type: ELAN
           internal-connection-point:
           -   id-ref: mgmtVM-internal
           -   id-ref: dataVM-internal
       vdu:
       -   id: mgmtVM
           name: mgmtVM
           image: hackfest3-mgmt
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: mgmtVM-eth0
               position: '1'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-mgmt
           -   name: mgmtVM-eth1
               position: '2'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: mgmtVM-internal
           internal-connection-point:
           -   id: mgmtVM-internal
               name: mgmtVM-internal
               short-name: mgmtVM-internal
               type: VPORT
           cloud-init-file: cloud-config.txt
       -   id: dataVM
           name: dataVM
           image: hackfest3-mgmt
           count: '1'
           vm-flavor:
               vcpu-count: '1'
               memory-mb: '1024'
               storage-gb: '10'
           interface:
           -   name: dataVM-eth0
               position: '1'
               type: INTERNAL
               virtual-interface:
                   type: VIRTIO
               internal-connection-point-ref: dataVM-internal
           -   name: dataVM-xe0
               position: '2'
               type: EXTERNAL
               virtual-interface:
                   type: VIRTIO
               external-connection-point-ref: vnf-data
           internal-connection-point:
           -   id: dataVM-internal
               name: dataVM-internal
               short-name: dataVM-internal
               type: VPORT
       vnf-configuration:
           juju:
               charm: simple
           initial-config-primitive:
           -   seq: '1'
               name: config
               parameter:
               -   name: ssh-hostname
                   value: <rw_mgmt_ip>
               -   name: ssh-username
                   value: ubuntu
               -   name: ssh-password
                   value: osm4u
           -   seq: '2'
               name: touch
               parameter:
               -   name: filename
                   value: '/home/ubuntu/first-touch'
           config-primitive:
           -   name: touch
               parameter:
               -   name: filename
                   data-type: STRING
                   default-value: '/home/ubuntu/touched'

NS diagram

Hackfest simplecharm ns.png

NS descriptor

nsd:nsd-catalog:
   nsd:
   -   id: hackfest-simplecharm-ns
       name: hackfest-simplecharm-ns
       short-name: hackfest-simplecharm-ns
       description: NS with 2 VNFs hackfest-simplecharm-vnf connected by datanet and mgmtnet VLs
       version: '1.0'
       logo: osm.png
       constituent-vnfd:
       -   vnfd-id-ref: hackfest-simplecharm-vnf
           member-vnf-index: '1'
       -   vnfd-id-ref: hackfest-simplecharm-vnf
           member-vnf-index: '2'
       vld:
       -   id: mgmtnet
           name: mgmtnet
           short-name: mgmtnet
           type: ELAN
           mgmt-network: 'true'
           vim-network-name: mgmt
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest-simplecharm-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-mgmt
           -   vnfd-id-ref: hackfest-simplecharm-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-mgmt
       -   id: datanet
           name: datanet
           short-name: datanet
           type: ELAN
           vnfd-connection-point-ref:
           -   vnfd-id-ref: hackfest-simplecharm-vnf
               member-vnf-index-ref: '1'
               vnfd-connection-point-ref: vnf-data
           -   vnfd-id-ref: hackfest-simplecharm-vnf
               member-vnf-index-ref: '2'
               vnfd-connection-point-ref: vnf-data


Testing with OSM client

  • Onboard VNF packages
osm vnfd-create hackfest3_simplecharm_vnf.tar.gz
osm vnfd-list
osm vnfd-show hackfest3charmed-vnf
  • Onboard NS packages
osm nsd-create hackfest_simplecharm_ns.tar.gz
osm nsd-list
osm nsd-show hackfest3charmed-ns
  • Instantiate
osm ns-create --ns_name hackfest3charmed --nsd_name hackfest3charmed-ns \
  --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> 
  • Check NS status
osm ns-list
osm ns-show hackfest3charmed
  • Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list
osm vnf-show <VNF ID>
  • Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that file /home/ubuntu/first-touch exists (this file is created by the charm):
         ls  /home/ubuntu/first-touch
    OSM ns-action
         osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID)
         osm ns-op-list hackfest3charmed
         osm ns-op-show OP_ID
         -Check that the file were created from the actions
                    ssh ubuntu@<MGMT_IP>
                    ls /home/ubuntu/mytouch1

Testing with OSM UI

  • Onboard VNF package
Go to VNF packages
Drag and drop the VNF package to the ...
  • Onboard NS package
Drag and drop the NS package to the ...
  • Instantiate NS
Go to NS packages
In hackfest3-simplecharm-ns, click in “Actions: Instantiate NS”
    -Complete the form
    -Add a name to the NS instance
    -Select the Datacenter where the NS will be deployed
    -Specify in the config section a default VIM network name to map “MGMTNET”:
    -Click the info button to see the mgmt IP address
  • Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u)  #The password to the default user was injected via cloud-init
    Check that file /home/ubuntu/first-touch exists (this file is created by the charm):
         ls  /home/ubuntu/first-touch
    OSM ns-action
         osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID)
         osm ns-op-list hackfest3charmed
         osm ns-op-show OP_ID
         -Check that the file were created from the actions
                    ssh ubuntu@<MGMT_IP>
                    ls /home/ubuntu/mytouch1