Examples from OSM Hackfests: Difference between revisions

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


== Basic VNF and NS ==
== Basic VNF and NS ==


* '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_vnfd.tar.gz hackfest1-vnf]
* '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_vnfd.tar.gz hackfest1-vnf]
* '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_nsd.tar.gz hackfest1-ns]
* '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_nsd.tar.gz hackfest1-ns]
* '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626%20OSM%20Hackfest%20-%20Session%202%20-%20Creating%20a%20basic%20VNF%20and%20NS.pdf Presentation: creating a basic VNF and NS]


 
===VNF diagram===
*Creating VNF with the client
 
[[File:VNF1.JPG]]
[[File:VNF1.JPG]]
    •Generate skeleton folder (VNF with only 1 VDU):
        /usr/share/osm-devops/descriptor-packages/tools/generate_descriptor_pkg.sh-t vnfd --image ubuntu1604 -c hackfest1
    •Go to hackfest1_vnfd folder and edit the descriptor:
        Use the IM tree representation of VNFD as a reference (http://osm-download.etsi.org/ftp/osm-doc/vnfd.html)
*Editing the VNF descriptor
[[File:VNFDescriptor1.JPG]]
*Validate the VNF descriptor and generate VNF package
    •Validate VNF descriptor
        /usr/share/osm-devops/descriptor-packages/tools/validate_descriptor.py <DESCRIPTOR_FILE>
    •Generate VNF package(from parent folder)
        /usr/share/osm-devops/descriptor-packages/tools/generate_descriptor_pkg.sh -t vnfd -N <VNFD_FOLDER>   


*Creating the NS with the client
===VNF descriptor===


[[File:NS1.JPG]]
    •Generate skeleton folder (NS with only 1 VNF)
        /usr/share/osm-devops/descriptor-packages/tools/generate_descriptor_pkg.sh -t nsd -c hackfest1
    •Go to hackfest1_nsd folder and edit the descriptor:
        Use the IM tree representation of VNFD as a reference (http://osm-download.etsi.org/ftp/osm-doc/nsd.html)


*Editing the NS descriptor
===NS diagram===
[[File:NSDescriptor1.JPG]]


*Validate the NS descriptor and generate NS package
    •Validate NS descriptor
        /usr/share/osm-devops/descriptor-packages/tools/validate_descriptor.py <DESCRIPTOR_FILE>
    •Generate NS package (from parent folder)
        /usr/share/osm-devops/descripto-rpackages/tools/generate_descriptor_pkg.sh -t nsd -N <NSD_FOLDER>
*Adding VNF and NS packages
    •VNF package:
        •osm vnfd-list
        •osm vnfd-create hackfest1_vnfd.tar.gz
        •osm vnfd-show hackfest1-vnf
        •osm vnfd-delete ...


    •NS package
===NS descriptor===
        •osm nsd-list
        •osm nsd-create hackfest1_nsd.tar.gz
        •osm nsd-show hackfest1-ns
        •osm vnfd-delete ...


    •Generating an SSH key pair to access to VNFs later
===Testing with OSM client===
        •ssh-keygen
#Onboard VNF packages
*Deploying NS with the client or UI
osm vnfd-create hackfest1_vnfd.tar.gz
    •Client
osm vnfd-list
        •osm ns-list
osm vnfd-show hackfest1-vnf
        •osm ns-create --ns_name hf1 --nsd_name hackfest1-ns \
#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> \
         --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> \
         --ssh_keys <KEY1_PUBKEY_FILE> \
         --ssh_keys <KEY1_PUBKEY_FILE> \
         --config '{vld: [ {name: mgmtnet, vim-network-name: <VIM_MGMT_NAME>} ] }'
         --config '{vld: [ {name: mgmtnet, vim-network-name: <VIM_MGMT_NAME>} ] }'
        •osm ns-show hf1
        •osm ns-delete ...
#Check NS status
        •Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm ns-list
            •osm vnf-list
osm ns-show hf1
            •osm vnf-show ...
        •Connect to the VNF
#Check VNF instances to see the instance and get the mgmt IP address of the VNF
            •ssh -i <priv_key> ubuntu@<IP>
osm vnf-list
osm vnf-show ...
#Connect to the VNF
ssh -i <priv_key> ubuntu@<IP>


    •UI
#Terminate NS
        •Go to NS packages
osm ns-delete hf1
        •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”:
                    • {vld: [ {name: mgmtnet, vim-network-name: <VIM_MGMT_NAME>} ] }
                    • mgmt (openstack1)
                    • external (openstack3)
                    • public (openstack4)
            • Paste your SSH key
        •Go to VNF instances to see the instance and get the mgmt IP address of the VNF
        •Connect to the VNF:
            •ssh -i <priv_key> ubuntu@<IP>
   


* '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626%20OSM%20Hackfest%20-%20Session%202%20-%20Creating%20a%20basic%20VNF%20and%20NS.pdf Creating a basic VNF and NS]
===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 ==
== Multi-VDU VNF ==

Revision as of 11:35, 17 July 2018

Examples from the 3rd OSM Hackfest

Work material

Examples

Basic VNF and NS

VNF diagram

VNF1.JPG

VNF descriptor

NS diagram

NS descriptor

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 ...

#Connect to the VNF
ssh -i <priv_key> ubuntu@<IP>
#Terminate NS
osm ns-delete hf1

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 with Day-0 configuration

VNF with EPA requirements

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