Orchestrating a VNF in OSM - caprivm/virtualization GitHub Wiki
caprivm ([email protected])
This page explains all the steps required to orchestrate a VNF (Virtual Network Function) in OSM. All steps that expose this section has been tested in a Virtual Machine using the following OS preparation requirements.
| Feature | Value |
|---|---|
| OS Used | Ubuntu 18.04 LTS |
| vCPU | 4 |
| RAM (GB) | 8 |
| Disk (GB) | 50 |
The contents of the page are:
The only prerequisite to follow is the installation of OSM. For this you can consult the following link:
In this case, a OSM community VNF specifically intended for instantiation testing is used as the test. The VNF is named hackfest_basic and uses Ubuntu 16.04 as the OS base image under the name of ubuntu16.04, so the first validation to do is to see if the image exists in the VIM. For this, using the OpenStack client, the following command can be executed:
openstack image list
# +--------------------------------------+--------------------+--------+
# | ID | Name | Status |
# +--------------------------------------+--------------------+--------+
# | 6a8b3f3b-883b-45fc-9ce7-cc26ae56aab3 | cirros | active |
# | 6f4f426d-dcc0-4003-b126-eb94a5962392 | cloudlinux-8.3 | active |
# | fe0fa9e4-ca0d-41f6-a7a0-5641f76cd249 | debian9 | active |
# | 2fd3f83e-f064-4100-b314-501574d36bda | epc-image | active |
# | 8b0ea9ae-e2b4-42d2-8c2c-b484367d658b | focal | active |
# | 1979a24c-b87c-44ea-9c1f-ac6fbe39ea8e | ubuntu-cloud-18-04 | active |
# | b97de7e7-5681-44b9-8fb6-b0ce1940765c | ubuntu16.04 | active |
# +--------------------------------------+--------------------+--------+As you can, the last image of the CLI output is the one that corresponds to the VNF. Next, make sure the VIM is added and its status is ENABLED:
osm vim-list
# +-------------+--------------------------------------+-------------------+
# | vim name | uuid | operational state |
# +-------------+--------------------------------------+-------------------+
# | ID Tolu VIM | ed9987fa-310f-4482-9936-48a2ec11a320 | ENABLED |
# +-------------+--------------------------------------+-------------------+Following this, download the OSM package repository and build the NS and VNF for testing:
cd ~/osm
git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git osm_packages
cd osm_packages/NOTE: Remember that the VNF uses the
ubuntu 16.04image as a base. You can change this image by editing the VNF descriptors. Now create the packages:
osm package-build hackfest_basic_ns
osm package-build hackfest_basic_vnfThe above commands generate two .tar.gz files in the folder where the command was run. Consider these two files to create the NS/VNF packages in OSM:
osm nfpkg-create hackfest_basic_vnf.tar.gz
osm nspkg-create hackfest_basic_ns.tar.gzVerify that the packages were created using the following commands:
osm nfpkg-list
# +--------------------+--------------------------------------+-----------+
# | nfpkg name | id | desc type |
# +--------------------+--------------------------------------+-----------+
# | hackfest_basic-vnf | 1d23f660-3ef5-4038-bb0b-8a67c45452d9 | sol006 |
# +--------------------+--------------------------------------+-----------+
osm nspkg-list
# +-------------------+--------------------------------------+
# | nsd name | id |
# +-------------------+--------------------------------------+
# | hackfest_basic-ns | cb37fd39-1635-4029-a15b-0f063d676664 |
# +-------------------+--------------------------------------+Now, with the packages loaded, you can instantiate the VNF from the following command:
osm ns-create --ns_name basic_ns --nsd_name hackfest_basic-ns --vim_account <VIM_ID>
# In CLI must be appears the ID assigned to NS/VNF instance
# 6c781267-bfd4-4267-b1a6-268d9fb5fd61In the CLI you should see the NS displayed and in READY state:
osm ns-list
# +------------------+--------------------------------------+---------------------+----------+-------------------+---------------+
# | ns instance name | id | date | ns state | current operation | error details |
# +------------------+--------------------------------------+---------------------+----------+-------------------+---------------+
# | basic_ns | 6c781267-bfd4-4267-b1a6-268d9fb5fd61 | 2021-05-24T17:22:04 | READY | IDLE (None) | N/A |
# +------------------+--------------------------------------+---------------------+----------+-------------------+---------------+The same validation could be done from the OSM graphical interface, in the Instances -> NS Instances tab as shown in the following figure:

Likewise, from the OpenStack interface you can see the instance created from OSM:

From OSM it is easy to delete the VNF instantiation. It can be done with the following command:
osm ns-delete --wait basic_ns