NS Deployment with OSM, MAAS, and RPI

From UNamur InfoSec
Jump to navigation Jump to search

Introduction

Objective

Deployment architecture

The NS deployment follows 3 days process. All 3 days process can be summarized as follows:

  • Day0: VNF Instantiation & Management setup

This is the first of 3 steps, it prepares infrastructure for network service by deploying the operating system, configuring user authentication (SSH, login), reading network connection, etc. In this step, OSM extracts deployment specs (OS, CPU, RAM, Network, etc.), cloud-init script, and sends to MAAS (RO-VIM Plugin) to select a machine, deployment OS image, and run cloud-init. Once deployed, OSM will get the machine management IP address (accessible from OSM). This IP address is for the Day1-2 configuration.

  • Day1: VNF Services Initialization:

The goal of Day1 is to install the software on the deployed OS from Day0. The JuJu Charms is used to define actions for: install software, start service, update config, stop service, relate multiple applications (Exchange data between applications such as: IP, Port, Auth, etc.), collect metrics, etc.

  • Day2: VNF Runtime Operations:

After completing Day1, JuJu still continues to monitor the deployed applications, collect metrics, and run Charm actions (custom actions run manually by users).

More information about VNF onboarding: https://osm.etsi.org/docs/vnf-onboarding-guidelines/00-introduction.html

The deployment architecture starts from the top to the bottom (Day0, Day1, and Day2) NS deployment architecture

Example Deployment

To deploy a NS with OSM, we need to create a NS Package and VNF Package that contains: NS descriptor, VNF descriptor, JuJu Charms, cloud-config, etc.

To quickly getting start with NS deployment, we can use the example NS packages in this repository: [1](https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages)

In this example, we will use the "native_charm_ns" and "native_charm_vnf" to deploy a NS with JuJU Native Charms, the charm only have one action called "touch", which allow user to execute it to create a file in the VDU. The two packages are available here: [2](https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages/-/tree/master/charm-packages/native_charm_ns) and here: [3](https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages/-/tree/master/charm-packages/native_charm_vnf)

Because our MAAS setup has different image and network setup, we will modify the accordingly. The modified the files are native_charm_nsd.yaml and native_charm_vnfd.yaml. And they are available here: native_charm_ns_descriptors

To upload the packages with "osm" command. osm nfpkg-create <ns_or_vnf_directory>

osm nfpkg-create native_charm_vnf/
osm nspkg-create native_charm_ns/

To deploy NS with OSM CLI

osm ns-create --ns_name nativeCharmNS --nsd_name native_charm-ns --vim_account maas

MAAS Plugin for the deployment: MAAS VIM plugin for the example deployment

Note: For Native charm to work, OSM and RPIs need to be able to communicate with each other via the mgmt network.