https://github.com/cn-upb/pishahang
Pishahang is an NFV MANO framework that manages and orchestrates services across multiple technological domains
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
Repository
Pishahang is an NFV MANO framework that manages and orchestrates services across multiple technological domains
Basic Info
Statistics
- Stars: 7
- Watchers: 7
- Forks: 5
- Open Issues: 23
- Releases: 0
Topics
Metadata Files
README.md
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:
H. R. Kouchaksaraei, T. Dierich and H. Karl, Pishahang: Joint Orchestration of Network Function Chains and Distributed Cloud Applications, 2018 4th IEEE Conference on Network Softwarization and Workshops (NetSoft), Montreal, QC, 2018, pp. 344-346. DOI: 10.1109/NETSOFT.2018.8460134
H. R. Kouchaksaraei and H. Karl. 2019. Service Function Chaining Across OpenStack and Kubernetes Domains. In Proceedings of the 13th ACM International Conference on Distributed and Event-based Systems (DEBS '19). ACM, New York, NY, USA, 240-243. DOI: https://doi.org/10.1145/3328905.3332505
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:
- For CSDs: http://public_ip:4002/catalogues/api/v2/csds
- For COSDs: http://public_ip:4002/catalogues/api/v2/complex-services
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
- Website: https://cs.uni-paderborn.de/cn/
- Repositories: 12
- Profile: https://github.com/CN-UPB
Computer Networks Group of Paderborn University
GitHub Events
Total
Last Year
Dependencies
- 125 dependencies
- 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
- 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
- PyYAML *
- amqpstorm *
- mongoengine *
- pyzmq *
- Flask ==1.0
- Jinja2 ==2.11.0
- PyYAML *
- amqpstorm *
- argparse *
- flask-restful *
- mongoengine *
- requests *
- PyYAML *
- amqpstorm *
- mongoengine *
- PyYAML *
- amqpstorm *
- mongoengine *
- pyzmq *
- pishahang/mano-base ${PISHAHANG_VERSION}
- pishahang/mano-plugin-flm-base ${PISHAHANG_VERSION}
- 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
- python 3.4 build
- ubuntu 16.04 build
- python 3.4-slim build
- python 3.4-slim build
- ubuntu 16.04 build
- python 3.4 build
- ubuntu 16.04 build
- devel-base latest build
- nvidia/cudagl 9.2-runtime-ubuntu18.04 build
- nvidia/cudagl 9.2-devel-ubuntu18.04 build
- runtime-base latest build
- alpine 3.3 build
- mariadb latest
- nginx latest build
- ubuntu xenial build
- ubuntu xenial build
- ubuntu xenial build
- osrg/ryu latest build
- ubuntu xenial build
- ubuntu xenial build
- ubuntu 14.04 build
- ubuntu xenial build
- osrg/ryu latest build
- osrg/ryu latest build
- ubuntu xenial build
- ubuntu xenial build
- mpeuster/sonata-pcap-container latest build
- ubuntu xenial build
- ubuntu xenial build
- ubuntu 14.04 build