Orchestrating a CNF in OSM - caprivm/virtualization GitHub Wiki

caprivm ([email protected])

Description

This page explains all the steps required to orchestrate a CNF (Container 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:

Prerequisites

The only prerequisite to follow is the installation of OSM. For this you can consult the following link:

Configure a CNF in OSM

In this case, we use the repository for Facebook Magma Orchestrator helm Chart. The base of this repository is in felipevicens GitHub. For more details about the orchestrator functionality, please see the Facebook Magma official documentation. Now, let's to add the helm repository in OSM using the next command executed from OSM machine:

osm repo-add --type helm-chart --description "Repository for Facebook Magma helm Chart" magma https://felipevicens.github.io/fb-magma-helm-chart

Next, add the NS (Network Service) and NF (Network Function) descriptors. It is important to note that the descriptors must be compatible with OSM 9, for this reason, structure conforms to recommendation SOL0006 of OSM.

cd ~/osm
git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git osm_packages
cd osm_packages/magma/
# Create the NS and NF compatible with OSM SOL0006
osm nfpkg-create fb_magma_knf
osm nspkg-create fb_magma_ns

You can validate the NS and NF creation using:

# For NF:
osm nfpkg-list
# +--------------+--------------------------------------+-----------+
# | nfpkg name   | id                                   | desc type |
# +--------------+--------------------------------------+-----------+
# | fb_magma_knf | 4c20c983-f494-45d8-a208-a008c3dec9d2 | sol006    |
# +--------------+--------------------------------------+-----------+
# For more details, use:
osm nfpkg-show fb_magma_knf

# For NS:
osm nspkg-list
# +-------------+--------------------------------------+
# | nsd name    | id                                   |
# +-------------+--------------------------------------+
# | fb_magma_ns | c933c91b-26eb-4e40-a708-eba158a3315e |
# +-------------+--------------------------------------+
# For more details, use:
osm nspkg-show fb_magma_ns

Now, instantiate the CNF using the next command:

osm ns-create --ns_name magma_orc8r --nsd_name fb_magma_ns --vim_account <VIM_name_in_OSM> --config_file ~/osm/osm_packages/magma/params_knf.yaml

Where ~/osm/osm_packages/magma/params_knf.yaml have the next content:

---
additionalParamsForVnf:
- member-vnf-index: 'orc8r'
  additionalParamsForKdu:
  - kdu_name: orc8r
    additionalParams:
      proxyserviceloadBalancerIP: '172.16.101.120' # MetalLB IP Address

NOTE: It is important to note that a MetalLB configuration must be installed in the deployed cluster. For more details, please see the MetalLB documentation.

You can validate the CNF instantiation using some of the next commands:

osm ns-list
osm ns-show magma_orc8r
osm vnf-list --ns magma_orc8r
osm vnf-show <vnf_id> --kdu orc8r

To access to the NMS (Network Management System) interface of the orchestrator, consider go to the external IP of the orc8r-proxy service. To find it, use the next command:

osm vnf-show <vnf_id> --kdu orc8r | grep "^orc8r-proxy" | grep LoadBalancer

Once you enter the interface, consider navigating it, using the instructions available in the Magma documentation.

⚠️ **GitHub.com Fallback** ⚠️