Skip to content

5genesis/katana-slice_manager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Katana Slice Manager

Katana Logo


Stargazers Forks Commit Activity

Watchers Contributors Issues

Build Status


Network slicing is a 5G cutting edge technology, that enables the creation of multiple virtual networks on top of a physical architecture, allowing operators to provide portions of their networks that fit with the requirementsby different vertical industries. A network slice can be described as the sum of various sub-slices of different network domains, such as the WAN, the Core Cloud and the Edge Cloud.

Katana Slice Manager is a central software component responsible for controlling all the devices comprising the network, providing an interface for creating, modifying, monitoring and deleting slices. Through the NBI, Katana interacts with a coordination layer or directly with the network operator. It receives the Network Slice Template (NEST) for creating network slices and provides the API for managing and monitoring them. Through the South Bound Interface (SBI), it talks to the components of the Management and Orchestration Layer (MANO), namely the NFV Orchestrator (NFVO), the Virtual Infrastructure Manager (VIM), the Element Management System (EMS) and the WAN Infrastructure Management (WIM), in order to manage the functions in the network and perform CRUD operations on End-to-End network slices.

Katana Slice Manager is based on a highly modular architecture, built as a mesh of microservices, each of which is running on a docker container. The key advantages of this architectural approach are that it offers simplicity in building and maintaining applications, flexibility and scalability, while the containerized approach makes the applications independent of the underlying system.

Features

  • Start, Stop, Inspect End-to-End Network SLices
  • OpenAPIs supported by Swagger-io tool
  • Modular architecture for supporting different infrastructure technologies
  • Lightweight web UI
  • Integrated CLI tool
  • Prometheus and Grafana Monitoring modules
  • Slice Deployment and Configuration measurements
  • CI/CD procedures

Quick Start

Requirements

  • docker version >= 18.09.6
  • docker-compose version >= 1.17.1

Installation

sudo ./install.sh

Start

Start katana Slice Manager service:

./start.sh [-p | --publish] [-g | --graphical-ui] [-m | --monitoring] [-h | --help]
  • -p | --publish: Expose Kafka end Swagger-ui using katana public IP
  • -g | --graphical-ui: Start katana Slice Manager service and the web UI module
  • -m | --monitoring: Start Katana Slice Manager Slice Monitoring module
  • -h | --help: Print help message and quit

Logs

Get the logs of katana-mngr and katana-nbi modules:

katana logs [-l | --limit N]
  • -l | --limit: Show limited number of lines from the end of the logs (default "all")

Stop

Stop Katana Slice Manager:

./stop.sh [-c | --clear] [-h | --help]
  • -c | --clear: Remove the container volumes
  • -h | --help: Print help message and quit

Uninstall

Uninstall katana docker images and commands

sudo ./uninstall.sh

Monitoring

To start Prometheus and Grafana Monitoring modules add the -m | --monitoring flag to ./start.sh binary. Prometheus is running at port 9090 and Grafana at port 3000. A new dashboard will be created on Grafana for every new slice that is created.

By default Grafana credentials are admin:admin. To change it, create the katana-grafana/.env file with the following environmental variables:

GF_SECURITY_ADMIN_USER=USER
GF_SECURITY_ADMIN_PASSWORD=PASSWORD

Development Environment

To create a development environment for katana on a Linux host, run:

./install.sh --dev

This will create hard links of the shared_utils directory of both katana-mngr and katana-nbi on the root directory ./dev_shared_utils. So any changes done on the existing files ./shared_utils directory will be reflected to katana-mngr/katana/shared_utils and katana-nbi/katana/shared_utils directories. To add new files that are created in the dev_shared_utils directory, run the command:

for dest in katana-{mngr,nbi}/katana/shared_utils/; do cp -al dev_shared_utils/{PATH_TO_NEW_FILE} $dest; done

It will also create a dev folder, where the example_config_files will be copied for a more direct access to testing configuration files

You can also check the Wiki "For Developers" page for more details.

CI/CD

Current implementation supports two pipelines, using the respective Jenkinsfile:

  • Multibranch Pipeline using the file Jenkinsfile:

    • Builds the docker images if there was a change on the code
    • Runns the Integration test
    • If the changes are occuring on the master branch, the built images will be packaged and uploaded to docker hub
    • Sends notification on Slack
  • Pipeline for tagging using the file jenkins/tag/Jenkinsfile. For every new tag:

    • Builds the docker images using as tag the git push tag
    • Runns the Integration test
    • The built images will be packaged and uploaded to docker hub
    • Sends notification on Slack

The two Jenkins jobs can be created using a seed DSL job and the script jenkins/Jenkins_Seed_DSL_Jobs/jobs

Documentation

Packages

No packages published

Languages

  • JavaScript 48.3%
  • Python 25.1%
  • CSS 21.9%
  • HTML 3.6%
  • Other 1.1%