The Dublin 5G Use Case has dependencies on DMaaP services. The 5G components (Data File Collector and 3GPP PM Mapper) will be deployed at the Edge, so DMaaP services should be made available to them to avoid a data flow path through the Central Kubernetes cluster. This 5G Use Case relies on both Data Router and Message Router.
This Use Case will help flesh out the requirements and techniques for DMaaP Edge deployments.
Definitions
- Dublin introduces the notion of a multi-cloud deployment consisting of a single "central" kubernetes High Availablility (HA) installation, and 0 or more "edge" kubernetes installations.
- Geo-redundancy applies to a multi-site central k8s deployment. This shouldn't be confused with a multi-site ONAP deployment consisting of central and edge sites.
Assumptions
- 1.DMaaP will maintain a single set of Helm Charts in the oom/kubernetes repo. Said a different way, we will strive to not maintain separate DMaaP Central charts and DMaaP Edge charts.
- The DMaaP Helm charts will continue to be maintained as a single oom kubernetes directory, with sub-directories for each component.
- 2. The "central" site will always be deployed before any edge sites.
- The Edge deployment (and operation) will rely on central ONAP services
- This will allow a human (at least) to capture any values representing central deployment details (such as a K8S gateway IP address)
- All DMaaP components will continue to be deployed in the "central" k8s. The details of what components will be deployed at any Edge, and how it will be deployed are the subject of this page.
- An "edge" site can be deployed any time after the "central" site.
- Not all edge sites need be deployed at the same time.
- As a Platform Service, DMaaP will be deployed before any application/microservice.
Requirements
- Localized DR Routing between a Data File Collector (DFC) and a PM Mapper deployed in the same Edge X.
- Localized DR Routing means DR Node is deployed in the same Edge site so data doesn't need to leave the site.
- DFC will be a publisher to a feed provisioned at deployment time.
- PM Mapper will be a subscriber provisioned at deployment time.
- The feed should be unique per site so that when there are multiple sites, PM Mapper only receives its locally produced data.
- Localized messaging from PM Mapper and DFC. This will signal DFC that a file was processed.
- Localized messaging implies a Message Router instance in the same edge location.
- PM Mapper will a publisher provisioned at deployment time
- DFC will be a subscriber provisioned at deployment time.
- Communication will utilize an authenticated topic in the MR deployed in the same edge site.
- PM Mapper and DFC will use AAF credentials to authenticate.
- PM Mapper identity will be authorized to publish on the topic
- DFC identity will be authorized to subscribe on the topic
- Inter-site messaging from PM Mapper to VES perf3gpp
- Inter-site messaging means sending a message from an edge location publisher to a central location subscriber.
- PM Mapper, deployed at Edge, will be a publisher using AAF credentials
- VES perf3gpp, deployed in Central, will be a subscriber using AAF credentials
- Communication will utilize an authenticated topic on the MR deployed in the same edge site.
- PM Mapper and DFC will use AAF credentials to authenticate.
- PM Mapper identity will be authorized to publish on the topic
- VES perf3gpp identity will be authorized to subscribe on the topic
- Furthermore, messages on this topic will be replicated to the central MR instance.
- Are there any other subscribers? (esp, are there any other at edge?)
Open Issues
REF | Status | Discussion |
---|---|---|
1 | Open | DNS Update for inter-site routing We have several examples of an edge component which needs to communicate to a central service. Mike suggested that edge DNS might be updated such that edge clients could resolve to central services. This might satisfy a common need across several components. e.g. access to central AAF comes to mind |
2 | Open | Location discovery Bus Controller manages dcaeLocations as the name of different sites. What mechanism can be used to: a) register dcaeLocations when each k8s cluster is deployed. b) serve as an attribute when MR and DR clients are provisioned. Current expectation is that there is some k8s info in A&AI API that might be useful. |
Development
- Helm configuration overrides will be collected in a single file (e.g. dmaap-edge.yaml) and delivered to oom/kubernetes/onap/charts/resource/environments. Examples of what kinds of overrides will be present in this file include:
- Setting the standard enabled indicator to true for dmaap, but false for other components.
dmaap:
enabled: true - Setting an edge indicator to drive any edge-specific logic. TBD if this is really useful - hopefully other overrides in this file are edge specific.
- Setting the values for a central service which may be needed at the edge. Known examples include:
- Message Router must be configured to access the central AAF instance. (DR Node may have this requirement in the near future)
- Data Router Node must be configured to access the central DR Prov
- Both MR and DR Node must register with central Bus Controller
- Setting scaling values appropriate to the edge. e.g. perhaps a single kafka broker is appropriate at the edge
- Setting the standard enabled indicator to true for dmaap, but false for other components.
- DMaaP Chart changes
- Reorder charts:
- Bus Controller must be up and running if other components are going to register with it. Jira to remove any dependencies on MR.
- MR
- Mirror Maker
- DR Prov
- DR Node (DR Prov must be up for Node to retrieve provisioning info)
- Post-install hooks:
- Bus controller:
- POST <central dmaap-bc>/webapi/dmaap
- POST <central dmaap-bc>/webapi/dcaeLocation (for central)
- MR:
- POST <central dmaap-bc>/webapi/mr_clusters DMAAP-534 Jira to add kafka brokers to endpoint
- DR Node
- Bus controller:
- Reorder charts:
Step-by-step guide
This outlines the approach for solving this Edge deployment, and will undoubtedly be refined over time.
- Central K8S Deployment
- Central DMaaP Deployment
- Use k8s cluster name as the Release. e.g. "central"
- Deploy aaf
- Deploy dmaap
- Deploy dcae
- Deploy VES perf3gpp via dcae
- Edge K8S Deployment
- Edge DMaaP Deployment
- Update dmaap-edge.yaml configuration override file with values from central
- Use k8s cluster name as the Release. e.g. "edge1"
- deploy dmaap
- deploy PM Mapper via dcae
Related articles