Newer
Older
The **Open Exposure Gateway (OEG)** is a Python web service implementation. It implements the **Open Exposure Gateway** role of the Operator Platform, defined by the [GSMA Operator Platform Group (OPG)](https://www.gsma.com/solutions-and-impact/technologies/networks/gsma-operator-platform-group-september-2024-publications/).
[](https://labs.etsi.org/rep/oop/code/open-exposure-gateway/-/pipelines)
This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project.
It uses the [Connexion](https://github.com/zalando/connexion) library on top of Flask.
It propagates requests to the [Sunrise 6G OP service resource manager](https://github.com/OpenOperatorPlatform/service_resource_manager), as configured in the `.env`.
OEG implements the **Northbound CAMARA APIs** for application providers to interact with different infrastructures, including:
- Application metadata lifecycle management (registering, retrieving, deleting apps)
- Application instantiation management (instantation, and termination)
- Federation Management APIs to onboard applications accross partners' operator platforms
OEG acts as a middleware layer between the CAMARA APIs and the Service Resource Manager (SRM), by enabling a common exposure of heteregeneous infrastructure resources.
<br>
| Edge Cloud Management API | Federation Management API | Network Exposure API (QoD & Traffic Influence)|
| Application Metadata registration | Create one direction federation | Create QoD Session |
| App Metadata Removal | Retrieve details about federation with the partner OP | Remove QoD Session |
| App Metadata Retrieval | Retrieve the existing federationContextId with partner | Retrieve QoD Session |
| Application Instantiation | Remove existing federation with partner OP | Create TrafficeInfluence Resource |
| Application Instance Retrieval | | Remove TrafficeInfluence Resource |
| Application Instance Removal | | Retrieve TrafficeInfluence Resource |
## Deployment
OEG can be deployed in a Kubernetes cluster by executing the file _oeg-deployment.yaml_ located in the root folder. This file will create a OEG Deployment resource and its supporting native K8s Service. The following table contains the necesssary environment variables for the Kubernetes adapter.
| **Variable** | **Description** |
|-----------------------------|-------------------------------------------------------------|
| `SRM_HOST` | Base URL of the Service Resource Manager |
| `FEDERATION_MANAGER_HOST` | Base URL of the Federation Manager |
You can also run the OEG outside of k8s environment:
Before running the server you need to `mv env.sample .env` and update variables to properly link to a running OP service resource manager instance.
To run the server, please execute the following from the root directory:
Using uv:
```bash
# run the server as module - uv will automatically take care of any dependencies installation
and open your browser to the OpenAPI documentation: `http://127.0.0.1:8080/docs/`
To launch the integration tests, use tox:
```
### Running with Docker
To run the server on a Docker container, please execute the following from the root directory:
```bash
# building the image
docker build -t edge_cloud_management_api .
# starting up a container
docker run -p 8080:8080 --env-file ./.env edge_cloud_management_api