All Projects → medianetlab → katana-slice_manager

medianetlab / katana-slice_manager

Licence: Apache-2.0 license
5G Network E2E Slice Manager

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to katana-slice manager

sdn-nfv-papers
This is a paper list about Resource Allocation in Network Functions Virtualization (NFV) and Software-Defined Networking (SDN).
Stars: ✭ 40 (-34.43%)
Mutual labels:  sdn, nfv
iovisor-ovn
IOVisor OVN integration
Stars: ✭ 62 (+1.64%)
Mutual labels:  sdn, nfv
docker-free5gc
Docker images for the Free5GC open source 5G Core Network
Stars: ✭ 24 (-60.66%)
Mutual labels:  5g
open5gs 5gc ueransim sample config
Open5GS 5GC & UERANSIM UE / RAN Sample Configuration
Stars: ✭ 24 (-60.66%)
Mutual labels:  5g
SOL
SOL: SDN optimization layer. A framework for writing network optimization problems more easily.
Stars: ✭ 22 (-63.93%)
Mutual labels:  sdn
ArRtspTool
将RTSP或者NV-RTX上的摄像头流转为webrtc可直接观看的流,延迟低至200ms,Web无插件、Native等全平台低延时拉流
Stars: ✭ 38 (-37.7%)
Mutual labels:  5g
gpxstudio.github.io
The online GPX file editor
Stars: ✭ 233 (+281.97%)
Mutual labels:  osm
netbox-joined-inventory
Netbox_joined_inventory is a python script that gathers data from a Netbox source-of-truth and stores them as Ansible inventory, group_vars and host_vars files.
Stars: ✭ 21 (-65.57%)
Mutual labels:  sdn
Vector-Tile-Spark-Process
🌏 Clip geographic data into MVT files based on Apache Spark
Stars: ✭ 16 (-73.77%)
Mutual labels:  osm
zero-ui
ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller.
Stars: ✭ 432 (+608.2%)
Mutual labels:  sdn
mapcontrib
Thematic OpenStreetMap contribution
Stars: ✭ 63 (+3.28%)
Mutual labels:  osm
gazetteer
OSM ElasticSearch geocoder and addresses exporter
Stars: ✭ 93 (+52.46%)
Mutual labels:  osm
pathman-sr
Pathman SR is an open-source app to compute paths and deploy routes in Segment Routing-enabled network.
Stars: ✭ 79 (+29.51%)
Mutual labels:  sdn
Delphi OSMMap
Visual control for Delphi and Lazarus to display OSM map
Stars: ✭ 27 (-55.74%)
Mutual labels:  osm
osmcz
JS mapová appka pro openstreetmap.cz (osmcz-app)
Stars: ✭ 35 (-42.62%)
Mutual labels:  osm
vnf-asterisk
Documentation, configuration, reference material and other information around an Asterisk-based VNF
Stars: ✭ 38 (-37.7%)
Mutual labels:  nfv
Osmunda
An offline geocode library for android, powered by SQLite, using osm data. 离线地理编码Android库,基于SQLite,使用开放街道地图数据。
Stars: ✭ 37 (-39.34%)
Mutual labels:  osm
coord-sim
Lightweight flow-level simulator for inter-node network and service coordination (e.g., in cloud/edge computing or NFV).
Stars: ✭ 33 (-45.9%)
Mutual labels:  nfv
osm-data-classification
Migrated to: https://gitlab.com/Oslandia/osm-data-classification
Stars: ✭ 23 (-62.3%)
Mutual labels:  osm
oshdb
OpenStreetMap History Data Analysis Framework
Stars: ✭ 82 (+34.43%)
Mutual labels:  osm

Katana Slice Manager

Katana Logo


Stargazers Forks Commit Activity

Watchers Contributors Issues

Build Status


📃 Introduction to Network Slicing

Network slicing is a 5G cutting edge technology that enables the creation of multiple virtual networks on top of shared physical infrastructure, allowing operators to provide portions of their networks that fit the requirements defined by various vertical industries. A network slice can be described as the collection of multiple sub-slices of different domains, such as the Core Datacenter, the Transport network, and one or numerous Edge Locations. The figure below depicts some examples of 5G Network Slices:

Network Slices Examples

Katana Slice Manager is a centralized software component that provides an interface for creating, modifying, monitoring, and deleting slices. Through the North Bound Interface (NBI), the Slice Manager 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 communicates with the Network Sub-Slice Manager components of the Management Layer, namely the Virtual Infrastructure Manager (VIM), the NFV Orchestrator (NFVO), the Element Management System (EMS), and the WAN Infrastructure Management (WIM).

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
  • Integrated CLI tool
  • Slice Day-2 operations
  • Prometheus and Grafana Monitoring modules
  • Integrated Policy Engine System
  • Slice Deployment and Configuration measurements
  • CI/CD procedures

⚒️ Quick Start

Requirements

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

Build

Build the Katana Docker images and install the katana CLI command on the local system.

bash bin/build.sh [-r | --release <RELEASE_NUMBER>] [--docker_reg <REMOTE_DOCKER_REGISTRY>] [--docker_repo <DOCKER_REPOSITORY>] [--docker_reg_user <REGISTRY_USER>] [--docker_reg_passwd <REGISTRY_PASSWORD>] [--push] [--dev] [-h | --help]

Options:

  • [-r | --release <RELEASE_NUMBER>] : Define the release that will match the Docker Tag of Katana Docker images (Default: :test).
  • [--docker_reg <REMOTE_DOCKER_REGISTRY>] : Define the remote Docker registry. If no docker registry is specified, Katana will try to use the public Docker hub
  • [--docker_repo <DOCKER_REPOSITORY>] : Define the Docker repository
  • [--docker_reg_user <REGISTRY_USER>] : Define the user of the remote Docker registry
  • [--docker_reg_passwd <REGISTRY_PASSWORD>] : Define the password for the user of the remote Docker registry
  • [--push] : Push the images to the remote Docker registry
  • [--dev] : Create a dev workspace for development purposes
  • [-h | --help] : Print this message and quit

Sudo privileges will be needed for installing the CLI command tool

Deploy

Deploy katana Slice Manager service. The script will attempt to pull the defined Docker tag from the defined Docker registry/repository. Otherwise, it will build the images using the ":test" tag.

bash bin/deploy.sh [-p | --publish] [-r | --release <RELEASE_NUMBER>] [--docker_reg <REMOTE_DOCKER_REGISTRY>] [--docker_repo <DOCKER_REPOSITORY>] [--docker_reg_user <REGISTRY_USER>] [--docker_reg_passwd <REGISTRY_PASSWORD>] [-m | --monitoring] [--no-build] [--apex] [-h | --help]

Options:

  • [-p | --publish] : Expose Kafka end Swagger-ui using katana public IP
  • [-r | --release <RELEASE_NUMBER>] : Define the release that will match the Docker Tag of Katana Docker images (Default: :test).
  • [--docker_reg <REMOTE_DOCKER_REGISTRY>] : Define the remote Docker registry. If no docker registry is specified, Katana will try to use the public Docker hub
  • [--docker_repo <DOCKER_REPOSITORY>] : Define the Docker repository
  • [--docker_reg_user <REGISTRY_USER>] : Define the user of the remote Docker registry
  • [--docker_reg_passwd <REGISTRY_PASSWORD>] : Define the password for the user of the remote Docker registry
  • [-m | --monitoring] : Start Katana Slice Manager Slice Monitoring module
  • [--no_build] : Try to download Docker images, but do not build them
  • [--apex] : Initiate the APEX Policy Engine
  • [-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 a limited number of lines from the end of the logs (default "all")

Stop

Stop Katana Slice Manager:

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

Uninstall

Remove katana Docker resources and the CLI command tool

bash bin/uninstall.sh

Sudo privileges will be needed for removing the CLI command tool

Monitoring

To start Prometheus and Grafana Monitoring modules add the -m | --monitoring flag to deploy.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:

bash bin/build.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 providing direct access to testing configuration files.

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

✔️ CI/CD

The current implementation supports two pipelines, using the respective Jenkinsfile:

Development/Integration Pipeline

  • CI Pipeline using the file jenkins/ci/Jenkinsfile:
    • Builds the Katana Docker images and deploys a testing instance of Katana SM
    • Runs the defined Functional and Integration tests. Tests are defined in the folder jenkins/ci/tests
    • If the changes are occurring on the master branch, the built images will be packaged and uploaded to the defined Docker registry
    • Required parameters/variables on Jenkins:
      • katana_reg: The remote Docker registry that will be used for pushing Docker Images
      • katana_repo: The remote Docker repository that will be used for pushing Docker Images
      • test_server: The label of the Jenkins agent that will be used for running the testing Katana instance
    • Required credentials on Jenkins:
      • katana-reg-creds: Username/Password for the remote Docker registry

This Pipeline is executed on a testing environment

Deployment Pipeline

  • CD Pipeline using the file jenkins/cd/Jenkinsfile:
    • Builds the docker images using the latest tag
    • Deploys the latest version of Katana SM on the defined Operational environment
    • Sends notification on Slack
      • Required parameters/variables on Jenkins:
      • katana_reg: The remote Docker registry that will be used for pushing Docker Images
      • katana_repo: The remote Docker repository that will be used for pushing Docker Images
      • prod_server: The label of the Jenkins agent that will be used for running the stable Katana instance
      • prod_server_ip: The IP Address of the production server that will be used for hosting the stable Katana instance
    • Required credentials on Jenkins:
      • katana-reg-creds: Username/Password for the remote Docker registry

This Pipeline is executed on a stable production/staging environment

📖 Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].