NS Deployment with OSM, MAAS, and RPI
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)
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: The change to original example are number of VDUs, network interfaces and VDU image name. 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.