https://github.com/cn-upb/pishahang

Pishahang is an NFV MANO framework that manages and orchestrates services across multiple technological domains

https://github.com/cn-upb/pishahang

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: ieee.org, acm.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary

Keywords

kubernetes kubernetes-cluster openstack orchestration
Last synced: 5 months ago · JSON representation

Repository

Pishahang is an NFV MANO framework that manages and orchestrates services across multiple technological domains

Basic Info
  • Host: GitHub
  • Owner: CN-UPB
  • License: apache-2.0
  • Language: C
  • Default Branch: master
  • Homepage:
  • Size: 291 MB
Statistics
  • Stars: 7
  • Watchers: 7
  • Forks: 5
  • Open Issues: 23
  • Releases: 0
Topics
kubernetes kubernetes-cluster openstack orchestration
Created about 8 years ago · Last pushed about 3 years ago
Metadata Files
Readme License

README.md

Pishahang logo **Joint Orchestration of Network Function Chains and Distributed Cloud Applications** [![Build Status](https://travis-ci.com/CN-UPB/Pishahang.svg?branch=master)](https://travis-ci.com/CN-UPB/Pishahang) [![Documentation Status](https://readthedocs.org/projects/pishahang/badge/?version=latest)](https://pishahang.readthedocs.io) [![Slack](https://badgen.net/badge/slack/join%20chat/green?icon=slack)](https://join.slack.com/t/pishahang/shared_invite/zt-e5b6rwj5-PuM3WYIaQvRwHV4GC7pHCw)

Pishahang is a framework consolidated from state-of-the-art NFV and Cloud management and orchestration tools and technologies to provide orchestration for services deployed across multiple technological domains.

Useful Links

Papers:

Demo videos:

  • Service deployment: https://www.youtube.com/watch?v=vd0vaP8jfNs&t=4s

  • Service chaining support: https://www.youtube.com/watch?v=zCci3-2gU44&t=22s

Usage

Full documentation can be found here

Please refer to this wikipage for installing Pishahang, Devstack, and Kubernetes.

Service Deployment

This section will give a step-by-step guide how to deploy a service using the service platform.

Connect OpenStack and Kubernetes to Pishahang

This step assumes that you have connected to your Kubernetes cluster before using the kubectl command line tool.

  • Open your browser and navigate to http://public_ip
  • Open the "WIM/VIM Settings" tab
  • Add a new WAN adaptor
    • Select "Mock" WIM vendor
    • Enter any WIM name, WIM address, username and password
    • Confirm by clicking "SAVE"
  • Add OpenStack VIM adaptor
    • Chose any VIM name
    • Select the WIM adaptor you just created, enter any country and city
    • Select "Heat" VIM vendor
    • Fill in the compute and network configuration fields accordingly
  • Add Kubernetes VIM adaptor
    • Chose any VIM name
    • Select the WIM adaptor you just created, enter any country and city
    • Select "Kubernetes" VIM vendor
      • Enter the IP address of the Kubernetes master node
      • Create a Kubernetes service token with sufficient privileges (read & write). An existing service token can be retrieved by running the "kubectl describe secret" command.
      • Copy and paste the cluster’s CA certificate. The certificate must be PEM and Base64 encoded. The certificate is usually stored in the kubctl config located at ~/.kube/config
Enable Kubernetes monitoring

To enable monitoring for a Kubernetes cluster, a new Prometheus scrape job is needed. The reference config below works for common cluster setups, however, it might need to be adapted for special Kubernetes setups. Replace the placeholder credentials in the config with your cluster’s actual credentials. Now, add the scrape job to Prometheus by POSTing the configuration (transformed to JSON) to http://public_ip:9089/prometheus/configuration/jobs. To verify, open your browser and navigate to the Prometheus dashboard at http://public_ip:9090. If the metrics list shows entries starting with "container", the installation was successful.

```yaml - jobname: 'kubernetes-cadvisor' scheme: https tlsconfig: insecureskipverify: true basicauth: username: username password: password kubernetessdconfigs: - role: node apiserver: https://kubernetes-master tlsconfig: insecureskipverify: true basicauth: username: username password: password relabelconfigs: - action: labelmap regex: _metakubernetesnodelabel(.+) - targetlabel: _address__ replacement: kubernetes-master:443 - sourcelabels: [metakubernetesnodename] regex: (.+) targetlabel: _metricspath_ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor

```

Onboarding Descriptors

Push any descriptors using the corresponding catalogue endpoint:

Please find example CSDs and COSDs in the son-examples/complex-services folder.

Deploying a Service
  • Open your browser and navigate to http://public_ip:25001
  • Open the "Available Complex Services" tab
  • Click the "Instantiate" button of the service you want to deploy
  • Confirm the instantiate modal (ingress and egress can be empty)
Terminating a Service
  • Open your browser and navigate to http://public_ip:25001
  • Open the "Running Complex Services" tab
  • Click the "Terminate" button of the service you want to stop

Lead Developer:

  • Hadi Razzaghi Kouchaksaraei (https://github.com/hadik3r)

Contributors:

  • bjoluc (https://github.com/bjoluc)
  • Ashwin Prasad Shivarpatna Venkatesh (https://github.com/ashwinprasadme)
  • Tobias Dierich (https://github.com/tobiasdierich)
  • Marvin Illian (https://github.com/OrangeOnBlack)

Owner

  • Name: Computer Networks group @ UPB
  • Login: CN-UPB
  • Kind: organization
  • Location: Paderborn, Germany

Computer Networks Group of Paderborn University

GitHub Events

Total
Last Year

Dependencies

son-examples/containers/humhub-docker/composer.lock packagist
  • 125 dependencies
docs/poetry.lock pypi
  • appdirs 1.4.3 develop
  • black 19.10b0 develop
  • click 7.1.2 develop
  • entrypoints 0.3 develop
  • flake8 3.7.9 develop
  • mccabe 0.6.1 develop
  • pathspec 0.8.0 develop
  • pycodestyle 2.5.0 develop
  • pyflakes 2.1.1 develop
  • regex 2020.4.4 develop
  • toml 0.10.0 develop
  • typed-ast 1.4.1 develop
  • alabaster 0.7.12
  • attrs 19.3.0
  • babel 2.8.0
  • certifi 2020.4.5.1
  • chardet 3.0.4
  • colorama 0.4.3
  • commonmark 0.9.1
  • docutils 0.16
  • idna 2.9
  • imagesize 1.2.0
  • importlib-metadata 2.0.0
  • jinja2 2.11.2
  • jsonschema 3.2.0
  • markupsafe 1.1.1
  • packaging 20.3
  • pygments 2.6.1
  • pyparsing 2.4.7
  • pyrsistent 0.17.3
  • pytz 2019.3
  • pyyaml 5.3.1
  • recommonmark 0.6.0
  • requests 2.23.0
  • six 1.14.0
  • snowballstemmer 2.0.0
  • sphinx 3.0.3
  • sphinx-copybutton 0.2.11
  • sphinx-rtd-theme 0.4.3
  • sphinxcontrib-applehelp 1.0.2
  • sphinxcontrib-devhelp 1.0.2
  • sphinxcontrib-htmlhelp 1.0.3
  • sphinxcontrib-jsmath 1.0.1
  • sphinxcontrib-plantuml 0.18
  • sphinxcontrib-qthelp 1.0.3
  • sphinxcontrib-redoc 1.6.0
  • sphinxcontrib-serializinghtml 1.1.4
  • urllib3 1.25.9
  • zipp 3.2.0
docs/pyproject.toml pypi
  • black ^19.10b0 develop
  • flake8 ^3.7.9 develop
  • python ^3.6
  • recommonmark ^0.6.0
  • sphinx ^3.0.2
  • sphinx-copybutton ^0.2.11
  • sphinx_rtd_theme ^0.4.3
  • sphinxcontrib-plantuml ^0.18
  • sphinxcontrib-redoc ^1.6.0
examples/vnfs/packet_sniffer/figures/sniffer-v0.2/setup.py pypi
  • PyYAML *
  • amqpstorm *
  • mongoengine *
  • pyzmq *
examples/vnfs/packet_sniffer/recorder/setup.py pypi
  • Flask ==1.0
  • Jinja2 ==2.11.0
  • PyYAML *
  • amqpstorm *
  • argparse *
  • flask-restful *
  • mongoengine *
  • requests *
examples/vnfs/packet_sniffer/sniffer/setup.py pypi
  • PyYAML *
  • amqpstorm *
  • mongoengine *
examples/vnfs/packet_sniffer/sniffer-v0.2/setup.py pypi
  • PyYAML *
  • amqpstorm *
  • mongoengine *
  • pyzmq *
docker-compose.override.yml docker
  • pishahang/mano-base ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-flm-base ${PISHAHANG_VERSION}
docker-compose.yml docker
  • mongo latest
  • ntboes/postgres-uuid latest
  • pishahang/gatekeeper ${PISHAHANG_VERSION}
  • pishahang/gui ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-aws-lifecycle-manager ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-kubernetes-lifecycle-manager ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-openstack-lifecycle-manager ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-placement ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-service-lifecycle-manager ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-specific-manager-registry ${PISHAHANG_VERSION}
  • pishahang/mano-plugin-vim-adaptor ${PISHAHANG_VERSION}
  • pishahang/mano-pluginmanager ${PISHAHANG_VERSION}
  • pishahang/monitor-influxdb latest
  • pishahang/monitor-manager ${PISHAHANG_VERSION}
  • pishahang/monitor-prometheus ${PISHAHANG_VERSION}
  • pishahang/monitor-pushgateway ${PISHAHANG_VERSION}
  • pishahang/repository ${PISHAHANG_VERSION}
  • rabbitmq 3.6.15-management
  • redis latest
  • sonatanfv/son-monitor-probe latest
  • traefik v2.2
examples/vnfs/packet_sniffer/figures/sniffer-v0.2/Dockerfile docker
  • python 3.4 build
  • ubuntu 16.04 build
examples/vnfs/packet_sniffer/recorder/Dockerfile docker
  • python 3.4-slim build
examples/vnfs/packet_sniffer/sniffer/Dockerfile docker
  • python 3.4-slim build
  • ubuntu 16.04 build
examples/vnfs/packet_sniffer/sniffer-v0.2/Dockerfile docker
  • python 3.4 build
  • ubuntu 16.04 build
examples/vnfs/transcoder/cn-vtc/Dockerfile docker
  • devel-base latest build
  • nvidia/cudagl 9.2-runtime-ubuntu18.04 build
  • nvidia/cudagl 9.2-devel-ubuntu18.04 build
  • runtime-base latest build
son-examples/containers/humhub-docker/Dockerfile docker
  • alpine 3.3 build
son-examples/containers/humhub-docker/docker-compose.yml docker
  • mariadb latest
son-examples/containers/image-serving/Dockerfile docker
  • nginx latest build
son-examples/vnfs/sonata-apache-bench-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-apache-server-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-empty-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-fw-vnf-docker/Dockerfile docker
  • osrg/ryu latest build
son-examples/vnfs/sonata-iperf3-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-nginx-lb-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-ovs-user-vnf-docker/Dockerfile docker
  • ubuntu 14.04 build
son-examples/vnfs/sonata-ovs1-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-ryu-snort-vnf-docker/Dockerfile docker
  • osrg/ryu latest build
son-examples/vnfs/sonata-ryu-vnf-docker/Dockerfile docker
  • osrg/ryu latest build
son-examples/vnfs/sonata-snort-ids-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-snort-ovs-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-son-emu-sap-docker/Dockerfile docker
  • mpeuster/sonata-pcap-container latest build
son-examples/vnfs/sonata-squid-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-stress-vnf-docker/Dockerfile docker
  • ubuntu xenial build
son-examples/vnfs/sonata-vtc-vnf-docker/Dockerfile docker
  • ubuntu 14.04 build