{"id":13799782,"url":"https://github.com/medianetlab/katana-slice_manager","last_synced_at":"2026-01-18T08:38:56.981Z","repository":{"id":41198904,"uuid":"198665536","full_name":"medianetlab/katana-slice_manager","owner":"medianetlab","description":"5G Network E2E Slice Manager","archived":false,"fork":false,"pushed_at":"2023-05-01T23:38:13.000Z","size":5075,"stargazers_count":106,"open_issues_count":6,"forks_count":37,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-11-18T14:59:29.505Z","etag":null,"topics":["5g","5genesis","athens5g","monitoring","network-slicing","nfv","osm","sdn"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/medianetlab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-07-24T15:47:06.000Z","updated_at":"2024-10-07T02:13:28.000Z","dependencies_parsed_at":"2023-01-25T14:45:59.425Z","dependency_job_id":"33e8a717-19c9-43ad-b39e-7f3aa4864385","html_url":"https://github.com/medianetlab/katana-slice_manager","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medianetlab%2Fkatana-slice_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medianetlab%2Fkatana-slice_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medianetlab%2Fkatana-slice_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medianetlab%2Fkatana-slice_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/medianetlab","download_url":"https://codeload.github.com/medianetlab/katana-slice_manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253903866,"owners_count":21981762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5g","5genesis","athens5g","monitoring","network-slicing","nfv","osm","sdn"],"created_at":"2024-08-04T00:01:06.083Z","updated_at":"2026-01-18T08:38:56.951Z","avatar_url":"https://github.com/medianetlab.png","language":"Python","funding_links":[],"categories":["Core","Edge/Applications"],"sub_categories":["5G","Network Slice"],"readme":"# Katana Slice Manager\n\n![Katana Logo](./templates/images/katana-logo.svg)\n\n----------\n\n[![Stargazers](https://img.shields.io/github/stars/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/stargazers)\n[![Forks](https://img.shields.io/github/forks/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/network/members)\n[![Commit Activity](https://img.shields.io/github/commit-activity/m/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/graphs/commit-activity)\n\n[![Watchers](https://img.shields.io/github/watchers/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/watchers)\n[![Contributors](https://img.shields.io/github/contributors/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/graphs/contributors)\n[![Issues](https://img.shields.io/github/issues/medianetlab/katana-slice_manager?style=for-the-badge)](https://github.com/medianetlab/katana-slice_manager/issues)\n\n[![Build Status](https://jenkins.medianetlab.gr/buildStatus/icon?job=katana%2Fmnl.testing)](https://jenkins.medianetlab.gr/job/katana/job/mnl.testing/)\n\n----------\n\n## :page_with_curl: Introduction to Network Slicing\n\nNetwork 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:\n\n![Network Slices Examples](templates/images/SlicingOptions.png)\n\nKatana 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).\n\nKatana 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.\n\n## :clipboard: Features\n\n- Start, Stop, Inspect End-to-End Network Slices\n- OpenAPIs supported by Swagger-io tool\n- Modular architecture for supporting different infrastructure technologies\n- Integrated CLI tool\n- Slice Day-2 operations\n- Prometheus and Grafana Monitoring modules\n- Integrated Policy Engine System\n- Slice Deployment and Configuration measurements\n- CI/CD procedures\n\n## :hammer_and_pick: Quick Start\n\n### Requirements\n\n- docker version \u003e= 18.09.6\n- docker-compose version \u003e= 1.17.1\n\n### Build\n\nBuild the Katana Docker images and install the katana CLI command on the local system.\n\n``` bash\nbash bin/build.sh [-r | --release \u003cRELEASE_NUMBER\u003e] [--docker_reg \u003cREMOTE_DOCKER_REGISTRY\u003e] [--docker_repo \u003cDOCKER_REPOSITORY\u003e] [--docker_reg_user \u003cREGISTRY_USER\u003e] [--docker_reg_passwd \u003cREGISTRY_PASSWORD\u003e] [--push] [--dev] [-h | --help]\n```\n\nOptions:\n\n- __[-r | --release \u003cRELEASE_NUMBER\u003e] :__ Define the release that will match the Docker Tag of Katana Docker images (Default: :test).\n- __[--docker_reg \u003cREMOTE_DOCKER_REGISTRY\u003e] :__ Define the remote Docker registry. If no docker registry is specified, Katana will try to use the public Docker hub\n- __[--docker_repo \u003cDOCKER_REPOSITORY\u003e] :__ Define the Docker repository\n- __[--docker_reg_user \u003cREGISTRY_USER\u003e] :__ Define the user of the remote Docker registry\n- __[--docker_reg_passwd \u003cREGISTRY_PASSWORD\u003e] :__ Define the password for the user of the remote Docker registry\n- __[--push] :__ Push the images to the remote Docker registry\n- __[--dev] :__ Create a dev workspace for development purposes\n- __[-h | --help] :__ Print this message and quit\n\n\u003e Sudo privileges will be needed for installing the CLI command tool\n\n### Deploy\n\nDeploy 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.\n\n``` bash\nbash bin/deploy.sh [-p | --publish] [-r | --release \u003cRELEASE_NUMBER\u003e] [--docker_reg \u003cREMOTE_DOCKER_REGISTRY\u003e] [--docker_repo \u003cDOCKER_REPOSITORY\u003e] [--docker_reg_user \u003cREGISTRY_USER\u003e] [--docker_reg_passwd \u003cREGISTRY_PASSWORD\u003e] [-m | --monitoring] [--no-build] [--apex] [-h | --help]\n```\n\nOptions:\n\n- __[-p | --publish] :__ Expose Kafka end Swagger-ui using katana public IP\n- __[-r | --release \u003cRELEASE_NUMBER\u003e] :__ Define the release that will match the Docker Tag of Katana Docker images (Default: :test).\n- __[--docker_reg \u003cREMOTE_DOCKER_REGISTRY\u003e] :__ Define the remote Docker registry. If no docker registry is specified, Katana will try to use the public Docker hub\n- __[--docker_repo \u003cDOCKER_REPOSITORY\u003e] :__ Define the Docker repository\n- __[--docker_reg_user \u003cREGISTRY_USER\u003e] :__ Define the user of the remote Docker registry\n- __[--docker_reg_passwd \u003cREGISTRY_PASSWORD\u003e] :__ Define the password for the user of the remote Docker registry\n- __[-m | --monitoring] :__ Start Katana Slice Manager Slice Monitoring module\n- __[--no_build] :__ Try to download Docker images, but do not build them\n- __[--apex] :__ Initiate the APEX Policy Engine\n- __[-h | --help] :__ Print help message and quit\n\n### Logs\n\nGet the logs of katana-mngr and katana-nbi modules:\n\n```bash\nkatana logs [-l | --limit N]\n```\n\n- __-l | --limit__: Show a limited number of lines from the end of the logs (default \"all\")\n\n### Stop\n\nStop Katana Slice Manager:\n\n```bash\nbash bin/stop.sh [-c | --clear] [-h | --help]\n```\n\n- __[-c | --clear] :__ Remove the container volumes\n- __[-h | --help] :__ Print help message and quit\n\n### Uninstall\n\nRemove katana Docker resources and the CLI command tool\n\n```bash\nbash bin/uninstall.sh\n```\n\n\u003e Sudo privileges will be needed for removing the CLI command tool\n\n### Monitoring\n\nTo 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.\n\nBy default Grafana credentials are admin:admin. To change it, create the `katana-grafana/.env` file with the following environmental variables:\n\n```bash\nGF_SECURITY_ADMIN_USER=USER\nGF_SECURITY_ADMIN_PASSWORD=PASSWORD\n```\n\n## :keyboard: Development Environment\n\nTo create a development environment for katana on a Linux host, run:\n\n```bash\nbash bin/build.sh --dev\n```\n\nThis 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:\n\n```bash\nfor dest in katana-{mngr,nbi}/katana/shared_utils/; do cp -al dev_shared_utils/{PATH_TO_NEW_FILE} $dest; done\n```\n\nIt will also create a __dev__ folder, where the example_config_files will be copied for providing direct access to testing configuration files.\n\nYou can also check the [Wiki \"For Developers\"](https://github.com/medianetlab/katana-slice_manager/wiki/developers) page for more details.\n\n## :heavy_check_mark: CI/CD\n\nThe current implementation supports two pipelines, using the respective Jenkinsfile:\n\n### Development/Integration Pipeline\n\n- CI Pipeline using the file [jenkins/ci/Jenkinsfile](jenkins/ci/Jenkinsfile):\n  - Builds the Katana Docker images and deploys a testing instance of Katana SM\n  - Runs the defined Functional and Integration tests. Tests are defined in the folder [jenkins/ci/tests](jenkins/ci/tests)\n  - If the changes are occurring on the master branch, the built images will be packaged and uploaded to the defined Docker registry\n  - Required parameters/variables on Jenkins:\n    - katana_reg: The remote Docker registry that will be used for pushing Docker Images\n    - katana_repo: The remote Docker repository that will be used for pushing Docker Images\n    - test_server: The label of the Jenkins agent that will be used for running the testing Katana instance\n  - Required credentials on Jenkins:\n    - katana-reg-creds: Username/Password for the remote Docker registry\n\n\u003e This Pipeline is executed on a testing environment\n\n### Deployment Pipeline\n\n- CD Pipeline using the file [jenkins/cd/Jenkinsfile](jenkins/cd/Jenkinsfile):\n  - Builds the docker images using the latest tag\n  - Deploys the latest version of Katana SM on the defined Operational environment\n  - Sends notification on Slack\n    - Required parameters/variables on Jenkins:\n    - katana_reg: The remote Docker registry that will be used for pushing Docker Images\n    - katana_repo: The remote Docker repository that will be used for pushing Docker Images\n    - prod_server: The label of the Jenkins agent that will be used for running the stable Katana instance\n    - prod_server_ip: The IP Address of the production server that will be used for hosting the stable Katana instance\n  - Required credentials on Jenkins:\n    - katana-reg-creds: Username/Password for the remote Docker registry\n\n\u003e This Pipeline is executed on a stable production/staging environment\n\n## :book: Documentation\n\n- [Wiki](https://github.com/medianetlab/katana-slice_manager/wiki)\n- [5GENESIS Deliverable](https://5genesis.eu/wp-content/uploads/2019/10/5GENESIS_D3.3_v1.0.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedianetlab%2Fkatana-slice_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedianetlab%2Fkatana-slice_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedianetlab%2Fkatana-slice_manager/lists"}