1. The implementation of the O2 interface is named 'INF O2 server'
2. Anywhere mentions about the O2 interface are 'O-RAN O2 interfaces'
Signed-off-by: Zhang Rong(Jon) <rong.zhang@windriver.com>
Change-Id: Ie727acec0c9d76446afb53dfe4261529a01e8777
(cherry picked from commit
5affabd057a01b9aaa4c7354e950753a8898954c)
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
-.. Copyright (C) 2019 Wind River Systems, Inc.
+.. Copyright (C) 2021 Wind River Systems, Inc.
Developer-Guide
===============
Developer-Guide
===============
$ docker-compose run --rm --no-deps --entrypoint=pytest api /tests/unit /tests/integration
$ docker-compose run --rm --no-deps --entrypoint=pytest api /tests/unit /tests/integration
-3, Test with INF platform
+3. Test with INF platform
-------------------------
* To test with INF platform, you should install INF platform first, by default you will be able to use the 'admin' user
-------------------------
* To test with INF platform, you should install INF platform first, by default you will be able to use the 'admin' user
$ export |grep OS_PASSWORD
$ docker-compose run --rm --no-deps --entrypoint=pytest api /tests/integration-ocloud --log-level=DEBUG --log-file=/tests/debug.log
$ export |grep OS_PASSWORD
$ docker-compose run --rm --no-deps --entrypoint=pytest api /tests/integration-ocloud --log-level=DEBUG --log-file=/tests/debug.log
-4, Tear down docker containers
+4. Tear down docker containers
+------------------------------
$ docker-compose down --remove-orphans
$ docker-compose down --remove-orphans
-This document describes how to install O-RAN O2 service over O-RAN INF platform.
+This document describes how to install INF O2 service over O-RAN INF platform.
The audience of this document is assumed to have basic knowledge in kubernetes cli, helm chart cli.
The audience of this document is assumed to have basic knowledge in kubernetes cli, helm chart cli.
Before starting the installation and deployment of O-RAN O2 service, you should have already deployed O-RAN INF platform, and you need to download the helm charts or build from source as described in developer-guide.
Before starting the installation and deployment of O-RAN O2 service, you should have already deployed O-RAN INF platform, and you need to download the helm charts or build from source as described in developer-guide.
-ORAN O2 Service in E Release
-============================
+INF O2 Service in E Release
+===========================
1. Provision remote cli for kubernetes over INF platform
--------------------------------------------------------
1. Provision remote cli for kubernetes over INF platform
--------------------------------------------------------
2. Deploy INF O2 service
------------------------
2. Deploy INF O2 service
------------------------
-2.1 Retrieve Helm chart for deploying of O2 service
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.1 Retrieve Helm chart for deploying of INF O2 service
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---------------------------------
- assumed you have setup SMO O2 endpoint for registration
---------------------------------
- assumed you have setup SMO O2 endpoint for registration
-- INF O2 service will post the O-Cloud registration data to that SMO O2 endpoint
+- INF O2 service will post the INF platform registration data to that SMO O2 endpoint
+
INF O2 Service Overview
=======================
INF O2 Service Overview
=======================
-This project implements a reference O2 IMS and DMS service to expose INF platform to SMO via O2 interface.
+This project implements a reference O-RAN O2 IMS and DMS service to expose the INF platform to SMO via the O-RAN O2 interface.
-In the E release, the following APIs are supported by INF O2 service:
+In the E release, the following APIs are supported by the INF O2 service:
-1. O-Cloud Infrastructure Management Service (IMS)
+1. INF O2 service Infrastructure Management Service (IMS)
- - O-Cloud provisioning API
+ - INF O2 service provisioning API
- Provision SMO O2 endpoint into INF O2 service
- Provision SMO O2 endpoint into INF O2 service
- - O2 service discovers INF platform as O-Cloud and register INF as O-Cloud to SMO via the provisioned SMO O2 endpoint
+ - O2 service discovers INF platform and registers INF platform to SMO via the provisioned SMO O2 endpoint
- - O-Cloud Inventory API
+ - INF O2 service Inventory API
- O2 service discovers following resources of INF platform to answer queries from SMO
- O2 service discovers following resources of INF platform to answer queries from SMO
+ - INF platform information
- - Resource Pool of the O-Cloud
+ - Resource Pool of the INF platform
- Resources of the Resource Pool, including pserver, cpu, memory, port, interface
- Resource Types associated with Resources
- Resources of the Resource Pool, including pserver, cpu, memory, port, interface
- Resource Types associated with Resources
- - O-Cloud Subscription and Notification
+ - INF platform Subscription and Notification
- - O2 service exposes Subscription API to enable SMO subscribes to Notification of changes of resources
+ - INF O2 service exposes Subscription API to enable SMO subscribes to Notification of changes of resources
- - O-Cloud Deployment Management Service Endpoint discovery API
+ - INF platform Deployment Management Service Endpoint discovery API
- - O2 service enables lookup of O-Cloud DMS endpoints via DeploymentManagementService resource as part of inventory
+ - INF O2 service enables lookup of INF O2 DMS endpoints via DeploymentManagementService resource as part of inventory
-2. Deployment Management Service (DMS)
+2. INF O2 service Deployment Management Service (DMS)
- - O2 service discovers kubernetes clusters hosted by INF platform, exposes them as Deployment Management Services via O-Cloud DMS endpoints
+ - INF O2 service discovers kubernetes clusters hosted by INF platform, exposes them as Deployment Management Services via DMS endpoints
- The exposed DMS endpoint supports Lifecycle Management of NfDeployment which represents CNF described in helm chart, the API supports APIs below:
- The exposed DMS endpoint supports Lifecycle Management of NfDeployment which represents CNF described in helm chart, the API supports APIs below:
-------------------------
- Initial version (E release)
- Add O2 IMS for INF platform
-------------------------
- Initial version (E release)
- Add O2 IMS for INF platform
- - Enable O-Cloud registration to SMO
+ - Enable INF platform registration to SMO
- Enable O2 infrastructure inventory service API
- Enable O2 Subscription service API
- Enable O2 Notification service to notify SMO about the resource changes
- Enable O2 infrastructure inventory service API
- Enable O2 Subscription service API
- Enable O2 Notification service to notify SMO about the resource changes
-O-Cloud O2 Service User Guide
-=============================
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. Copyright (C) 2021 Wind River Systems, Inc.
-This guide will introduce the process that make O2 interface work with
+INF O2 Service User Guide
+=========================
+
+This guide will introduce the process that make INF O2 interface work with
-- Assume you have an O-Cloud O2 environment
+- Assume you have an O2 service with INF platform environment
.. code:: bash
export OAM_IP=<INF_OAM_IP>
.. code:: bash
export OAM_IP=<INF_OAM_IP>
-- Discover O-Cloud inventory
+- Discover INF platform inventory
- - O-Cloud auto discovery
+ - INF platform auto discovery
- After you installed the O-Cloud service, it will automatically
+ After you installed the INF O2 service, it will automatically
discover the INF through the parameters that you give from the
“*o2service-override.yaml*”
discover the INF through the parameters that you give from the
“*o2service-override.yaml*”
- Below command can get the O-Cloud information
+ Below command can get the INF platform information as O-Cloud
- One O-Cloud have one resource pool, all the resources that belong
- to this O-Cloud will be organized into this resource pool
+ One INF platform have one resource pool, all the resources that belong
+ to this INF platform will be organized into this resource pool
Get the resource pool information through this interface
Get the resource pool information through this interface
"http://${OAM_IP}:30205/o2ims_infrastructureInventory/v1/deploymentManagers" \
-H 'accept: application/json'
"http://${OAM_IP}:30205/o2ims_infrastructureInventory/v1/deploymentManagers" \
-H 'accept: application/json'
-- Provisioning O-Cloud with SMO endpoint configuration
+- Provisioning INF platform with SMO endpoint configuration
- Assume you have an SMO, then configure O-Cloud with SMO endpoint
- address. This provisioning of O-Cloud will make a request from
- O-Cloud to SMO, that make SMO know the O2 service is working.
+ Assume you have an SMO, then configure INF platform with SMO endpoint
+ address. This provisioning of INF O2 service will make a request from
+ INF O2 service to SMO, that make SMO know the O2 service is working.
It needs SMO to have an API like
“*http(s)://SMO_HOST:SMO_PORT/registration*”, which can accept JSON
It needs SMO to have an API like
“*http(s)://SMO_HOST:SMO_PORT/registration*”, which can accept JSON
"endpoint": "http://<SMO_HOST>:<SMO_PORT>/registration"
}'
"endpoint": "http://<SMO_HOST>:<SMO_PORT>/registration"
}'
-- Subscribe to the O-Cloud resource change notification
+- Subscribe to the INF platform resource change notification
Assume you have an SMO, and the SMO have an API can be receive
callback request
Assume you have an SMO, and the SMO have an API can be receive
callback request
- - Create subscription in O-Cloud IMS
+ - Create subscription in the INF O2 IMS
- Handle resource change notification
When the SMO callback API get the notification that the resource
- Handle resource change notification
When the SMO callback API get the notification that the resource
- of O-Cloud changing, use the URL to get the latest resource
+ of INF platform changing, use the URL to get the latest resource
information to update its database
- Orchestrate CNF in helm chart
information to update its database
- Orchestrate CNF in helm chart
We need to do some preparation to make the helm repo work and include
our firewall chart inside of the repository.
We need to do some preparation to make the helm repo work and include
our firewall chart inside of the repository.
- Get the DMS Id in the O-Cloud, and set it into bash environment
+ Get the DMS Id in the INF O2 service, and set it into bash environment
echo ${dmsId} # check the exported DMS id
echo ${dmsId} # check the exported DMS id
- Using helm to deploy a chartmuseum to the INF
+ Using helm to deploy a chartmuseum to the INF platform
helm repo update
helm search repo firewall
helm repo update
helm search repo firewall
- Setup host net device over INF
+ Setup host net device over INF node
sudo ip link |grep veth
exit
sudo ip link |grep veth
exit
- - Create NfDeploymentDescriptor
+ - Create NfDeploymentDescriptor on the INF O2 DMS
echo ${descId} # check the exported descriptor id
echo ${descId} # check the exported descriptor id
+ - Create NfDeployment on the INF O2 DMS
When you have an descriptor of deployment, you can create a
NfDeployment, it will trigger an event inside of the IMS/DMS, and
When you have an descriptor of deployment, you can create a
NfDeployment, it will trigger an event inside of the IMS/DMS, and
app = Flask(__name__)\r
app.config.SWAGGER_UI_DOC_EXPANSION = 'list'\r
api = Api(app, version='1.0.0',\r
app = Flask(__name__)\r
app.config.SWAGGER_UI_DOC_EXPANSION = 'list'\r
api = Api(app, version='1.0.0',\r
- title='O-Cloud O2 Services',\r
+ title='INF O2 Services',\r
description='Swagger OpenAPI document for \\r
description='Swagger OpenAPI document for \\r
- O-Cloud O2 Services',\r
+ the INF O2 Services',\r
)\r
bus = bootstrap.bootstrap()\r
\r
)\r
bus = bootstrap.bootstrap()\r
\r
apiims = config.get_o2ims_api_base()
apiprovision = config.get_provision_api_base()
logger.info(
apiims = config.get_o2ims_api_base()
apiprovision = config.get_provision_api_base()
logger.info(
- "Expose IMS API:{}\nExpose Provision API: {}".
+ "Expose the O2 IMS API:{}\nExpose Provision API: {}".
format(apiims, apiprovision))
ocloud_route.configure_api_route()
format(apiims, apiprovision))
ocloud_route.configure_api_route()