Open Exposure Gateway
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).
Overview
This server was generated by the swagger-codegen project.
It uses the Connexion library on top of Flask.
It propagates requests to the Sunrise 6G OP 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.
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:
# run the server as module - uv will automatically take care of any dependencies installation
uv run edge_cloud_management_api
and open your browser to the OpenAPI documentation: http://127.0.0.1:8080/docs/
Testing
To launch the integration tests, use tox:
uv run tox
Running with Docker
To run the server on a Docker container, please execute the following from the root directory:
# 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