Skip to content
Snippets Groups Projects
Commit 1f017d0b authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Main documentation refreshing/housekeeping. It is focused on a smoother installation guide.

parent 8cde6dcb
No related branches found
No related tags found
1 merge request!8Populate develop with main branch documentation
Pipeline #4479 passed
# Developing
Openslice backend services are mainly implemented with Java 17 or above and Spring boot.
OpenSlice backend services are mainly implemented with Java 17 or above and Spring boot.
Openslice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at application.yml file)
OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at docker-compose.yaml file).
To get the latest development branch:
```
```bash
wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh
sudo ./deploy.sh develop [or replace develop with other branch name]
sudo ./deploy.sh develop #[or replace develop with other branch name]
```
## Slack
* Slack: https://openslice.slack.com
## General subsystems
You may follow the [installation process](https://osl.etsi.org/documentation/develop/deployment/), as described at "develop" tagged documentation.
- Docker and Docker Compose should be installed in your development environment
To work on a specific subsystem e.g. org.etsi.osl.tmf.api, you must:
### Consul
consul service registry should be up and running. You can launch consul with docker:
`sudo docker run -d --name consul -p 8500:8500 -p 8600:8600 consul`
1a - Deploy only the core necessary subsystems through:
```bash
sudo docker compose --profile dev down;sudo docker compose --profile dev up -d --build
```
> Note **--profile dev** that will only deploy the core dependency subsystems, instead of the whole OpenSlice.
### ActiveMQ
ActiveMQ is our messaging system. You can launch an instance of ActiveMQ:
`sudo docker run --name='activemq' -d -e 'ACTIVEMQ_NAME=amqp-srv1' -e 'ACTIVEMQ_REMOVE_DEFAULT_ACCOUNT=true' -e 'ACTIVEMQ_ADMIN_LOGIN=admin' -e 'ACTIVEMQ_ADMIN_PASSWORD=admin' -e 'ACTIVEMQ_WRITE_LOGIN=producer_login' -e 'ACTIVEMQ_WRITE_PASSWORD=producer_password' -e 'ACTIVEMQ_READ_LOGIN=consumer_login' -e 'ACTIVEMQ_READ_PASSWORD=consumer_password' -e 'ACTIVEMQ_JMX_LOGIN=jmx_login' -e 'ACTIVEMQ_JMX_PASSWORD=jmx_password' -e 'ACTIVEMQ_STATIC_TOPICS=topic1;topic2;topic3' -e 'ACTIVEMQ_STATIC_QUEUES=queue1;queue2;queue3' -e 'ACTIVEMQ_MIN_MEMORY=1024' -e 'ACTIVEMQ_MAX_MEMORY=4096' -e 'ACTIVEMQ_ENABLED_SCHEDULER=true' -v /home/ctranoris/testcompose/data/activemq:/data/activemq -v /var/log/activemq:/var/log/activemq -p 8161:8161 -p 61616:61616 -p 61613:61613 webcenter/activemq:5.14.3`
1b - Or alternatively, commend out the respective container from the docker-compose.yaml file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps.
### MySQL server
We use mysql as a storage DB. Please make sure that you have it installed in your system. There are instructions on internet how to install it. Check also our docker-compose installation script
2 - Clone the respective repository, e.g. https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop
3 - Code :)
## Oauth server
## General requirements
Keycloak is used as the authentication server.
- Docker should be installed in your development environment
- Run the core subsystems (see above sections)
> Note: Please check the Post installation steps -> Keycloak at localhost, at [Deployment/Installation](../deployment.md), if you are developing in a local environment
## Slack
## VNF/NSD Catalog Management and NSD Deployment API service
Feel free to join OpenSlice [Slack](https://openslice.slack.com) for any development oriented questions
Clone the repository: https://github.com/openslice/org.etsi.osl.portal.api
## Examples on developing on specific subsystems
Check the application.yml file. Default port is 13080. Especially the datasource username/password, server port.
### VNF/NSD Catalog Management and NSD Deployment API service
make sure that the General subsystems are up and running as well as the OAuth server
Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop
run it with `mvn spring-boot:run`
Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.
You can check your consul server if it registered.
Make sure that the core subsystems are up and running.
### Swagger API
Swagger API of the service is at `http://localhost:13000/osapi/swagger-ui/`. You can try there various REST actions and authenticate via the OAuth server
Execute it with
```bash
mvn spring-boot:run
```
For verification, Swagger API of the service is at `http://localhost:13000/osapi/swagger-ui/index.html`.
## VNF/NSD Catalog Management and NSD Deployment WEB UI service
There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.
The Web UI is written in AngularJS
Clone the repository: https://github.com/openslice/org.etsi.osl.portal.web
### VNF/NSD Catalog Management and NSD Deployment WEB UI service
by default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to `http://localhost:13000/osapi/testweb/index.html/`
The Web UI is written in AngularJS.
Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop
---
By default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to `http://localhost:13000/osapi/testweb/index.html/`
## Version/release management
Check this nice article on how we develop and release versions
Check this nice article on how we develop and release versions.
https://nvie.com/posts/a-successful-git-branching-model/
We develop in the develop branch
We develop in the develop branch and follow a issue driven development model.
---
## Wishlist
Check also our wishlist of new features. You can add your own
Check also our wishlist of new features. You can add your own.
See [Wishlist](./wishlist.md)
See [Wishlist](./wishlist.md).
......
This diff is collapsed.
......@@ -2,15 +2,15 @@
version: 2023Q4 - Release 0
Openslice is a prototype open source, operations support system. It supports VNF/NSD onboarding to OpenSourceMANO (OSM) and NSD deployment management. It also supports TMFORUM OpenAPIs regarding Service Catalog Management, Ordering, Resource, etc.
The ETSI Software Development Group for OpenSlice (SDG OSL) is developing an open source service based Operations Support System (OSS) to deliver Network Slice as a Service (NSaaS) following specifications from major SDOs including ETSI, TM Forum and GSMA. See more details [here](https://osl.etsi.org/about/).
## Usage
Openslice allows Vertical Customers to browse the available offered service specifications and also allows NFV developers to onboard and manage VNF and Network Service artifacts.
The following figure displays the usage of Openslice.
OpenSlice allows Vertical Customers to browse the available offered service specifications and also allows NFV developers to onboard and manage VNF and Network Service artifacts. It also supports TMFORUM OpenAPIs regarding Service Catalog Management, Ordering, Resource, etc.
The following figure displays the usage of OpenSlice.
[![Openslice usage](./images/index_intro_architecture.png)](./images/index_intro_architecture.png)
[![OpenSlice usage](./images/index_intro_architecture.png)](./images/index_intro_architecture.png)
There are two portals offering UI friendly access to users:
......@@ -18,23 +18,23 @@ There are two portals offering UI friendly access to users:
* The Services portal allows users to access services and service providers to design services.
* The NFV portal allows users to self-manage NFV artifacts and onboard them to a target MANO/NFV Orchestrator.
3rd party applications can use Openslice through TMForum Open APIs.
3rd party applications can use OpenSlice through TMForum Open APIs.
Service Specifications reside into Service Catalogs, grouped in Categories. Openslice offers a Service Orchestrator called [OSOM](./architecture/osom.md). OSOM instantiates Service Specifications by requesting Network Services from target MANOs/NFVOs. NFV artifacts reside into a VNF/NSD catalog and are onboarded to a target MANO/NFV Orchestrator. Service Specifications reference NSD from the VNF/NSD catalog.
Service Specifications reside into Service Catalogs, grouped in Categories. OpenSlice offers a Service Orchestrator called [OSOM](./architecture/osom.md). OSOM instantiates Service Specifications by requesting Network Services from target MANOs/NFVOs. NFV artifacts reside into a VNF/NSD catalog and are onboarded to a target MANO/NFV Orchestrator. Service Specifications reference NSD from the VNF/NSD catalog.
Customers make Service Orders and Openslice instantiates the requested Service Specifications of the Service Order. Running Services instantiated by Openslice, reside in Openslice Service Inventory. The following picture displays how Service Specifications are related to Running Services and how Running Services relate with instantiated running Network Services. (See also [Service Inventory](./service_inventory.md))
Customers make Service Orders and OpenSlice instantiates the requested Service Specifications of the Service Order. Running Services instantiated by OpenSlice, reside in OpenSlice Service Inventory. The following picture displays how Service Specifications are related to Running Services and how Running Services relate with instantiated running Network Services. (See also [Service Inventory](./service_inventory.md))
[![Openslice Service Specification instantiation](./images/service_specification_instantiation.png)](./images/service_specification_instantiation.png)
[![OpenSlice Service Specification instantiation](./images/service_specification_instantiation.png)](./images/service_specification_instantiation.png)
## Service Lifecycle Rules
Openslice constains support for defining rules of services, affecting their behavior. See [LCM Rules](./lcm.md).
OpenSlice constains support for defining rules of services, affecting their behavior. See [LCM Rules](./lcm.md).
## Multidomain scenarios and federation
Openslice can be used to exchange service specifications/catalogs and make service orders between Organizations as the following figure displays.
OpenSlice can be used to exchange service specifications/catalogs and make service orders between Organizations as the following figure displays.
[![Openslice Service Specification instantiation](./images/multi-domain-organizations.png)](./images/multi-domain-organizations.png)
[![OpenSlice Service Specification instantiation](./images/multi-domain-organizations.png)](./images/multi-domain-organizations.png)
An Identity federation is also possible since our authentication service is based on Keycloak (see [OAuth](./architecture/oauth.md)).
......@@ -43,9 +43,9 @@ See more on [Consuming Services From External Partner Organizations](./architect
## Live Demo
* Openslice demo: <http://portal.openslice.io/>
* Openslice Service Catalogs and ordering: <http://portal.openslice.io/services/>
* Openslice NFV Services onboarding: <http://portal.openslice.io/nfvportal>
* OpenSlice demo: <http://portal.openslice.io/>
* OpenSlice Service Catalogs and ordering: <http://portal.openslice.io/services/>
* OpenSlice NFV Services onboarding: <http://portal.openslice.io/nfvportal>
> username=admin, password=openslice <br> or <br>username=admin, password=changeme
......@@ -67,13 +67,16 @@ The complete environment consists of microservices deployed as docker containers
If you would like to operate all APIs, OSOM, the Mysql Server, nginx, etc then you need at least:
- 4 cores
- 8GB RAM
- 20GB HD space
| **Minimum Hardware Requirements** | **Recomended Hardware Requirements** |
| --------------------------------- | ------------------------------------ |
| 4 CPU cores | 8 CPU cores |
| 8 GB RAM | 16 GB RAM |
| 20 GB storage | 40 GB storage |
(NOTE: Bugzilla or ELK are not included and we assume they run elsewhere)
However you can try with a minimum installation on a VM on a laptop with:
However, you may try the front facing services of OpenSlice with a minimum installation on a VM on a laptop with:
- 2 cores
- 4GB of RAM
......@@ -82,32 +85,36 @@ However you can try with a minimum installation on a VM on a laptop with:
## Supported APIs
For a quick access check our swagger links:
Quick overview of the supported APIs through our Swagger links:
* TMF APIs: <http://portal.openslice.io/tmf-api/swagger-ui/index.html>
* API for VNF/NSD management: <http://portal.openslice.io/osapi/swagger-ui/index.html>
* [TMF APIs](http://portal.openslice.io/tmf-api/swagger-ui/index.html)
* [API for VNF/NSD management](http://portal.openslice.io/osapi/swagger-ui/index.html)
## Source code
Get source code here: <https://labs.etsi.org/rep/osl/code>
OpenSlice source code is available at [OSL GitLab repository](https://labs.etsi.org/rep/osl/code).
## Contributing
[Contributing](./contributing/developing.md)
You may contribute following the guidelines at [Contributing page](./contributing/developing.md).
## Social Media
* Twitter: <https://twitter.com/OpensliceOSS>
* Slack: https://openslice.slack.com
* [Twitter](https://twitter.com/OpensliceOSS)
* [Slack](https://openslice.slack.com)
## History
* The NFV portal part of Openslice was initially developed in H2020 European project 5GinFIRE (https://5ginfire.eu) by University of Patras, Greece
* Openslice services, APIs and current version are actively maintained by University of Patras, Greece in H2020 European project 5G-VINNI (https://5g-vinni.eu/)
* The NFV portal part of OpenSlice was initially developed in H2020 European Research project [5GinFIRE](https://5ginfire.eu) by University of Patras, Greece
* OpenSlice core services, APIs was further developed and maintained in H2020 European project [5G-VINNI](https://5g-vinni.eu/) by University of Patras, Greece
* OpenSlice has been a part off OSM's OSS/BSS ecosystem
[![Part of OSM Ecosystem](./images/osm_ecosystem_ossbss.png)](https://osm.etsi.org/wikipub/index.php/OSS_BSS)
## Ecosystem
Discover the current OpenSlice ecosystem [here](https://osl.etsi.org/ecosystem/).
## Citation
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment