Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 113 Next »


Introduction

Service endpoint information

ONAP services need to be registered to MSB to leverage the service discovery/routing/LB capabilities of MSB. The below table is the information MSB need for service registration.

See also the complementary set of externally exposed ports for OOM at OOM NodePort List

AttributeDescription

Required

Service Name

An unique name of the service, it should be constant so the service consumer can access the service.

Service name recommendation:

  • If a project has multiple services, the service name should include the project name as well as the microservice name to ensure uniqueness, for example, 'aai-cloudInfrastructure'
  • If a simple project has only one service, the service name should be the same as the project name.
Yes
Service Typeapi or uiYes
Version

Service version. Only the major version is used in the URI.

RESTful API Design Specification for ONAP

Yes
URL

The actual URL of the service to be registered

Yes
Customized Path

The customized publish path of this service.

If this parameter is specified when registering the service, the service will be published to api gateway under this path. Otherwise, the service will be published to api gateway using a fixed format: api/{serviceName} /{version}.

The customized publish path should only be used for back-compatible.

No
Published URL

If "Customized Path" attribute is not specified,The published URL is the fixed format api/{serviceName} /{version} .

If "Customized Path" attribute is specified,The published URL is the same as the "Customized Path".

Yes
Visual Range

Visibility of the service. 

External(can be accessed by external systems):0

Internal(can only be accessed by ONAP microservices):1

Yes
LB MethodLoad balancing method used when MSB routes the service requests. Currently, Round robin and IP hash are supported.Yes
PortThe service endpoint port.Yes
Enable SSL

True if the registered service is based on https.

False if the registered service is based on http.

Default is False.

No


MSB will be deployed at a well-known IP or DNS name by OOM, so the onap components can easily get the service endpoint of MSB. 

How to access the api service: http://[msb_api_gateway_ip]:[port]/api/{service name}/v{version number}/{resource path}

How to access the ui service: http://[msb_api_gateway_ip]:[port]/iui/{service name}/{resource path}

Service Registration

No code modification needed for individual projects to register themselves to MSB and leverage MSB capability for service routing and load balancing. MSB is working with OOM to register the collected service information to MSB. in Amsterdam release, we're focusing on kubernetes container deployment, the process would be like:

  • The collected service endpoint information will be added to OOM deployment blueprint, which is kubernetes configuration file in Amsterdam release.

  • OOM deploy MSB as the first component 

  • OOM deploy Registrator, which watches the kubernetes POD events

  • OOM deploy other ONAP components,like AAI, Poliy, SO,VFC, APPC, etc.

  • Registrator get notified with the POD event, then get the service information form POD environment variables and service instance(POD) IP from kubernetes

  • Registrator registers the service endpoint info to MSB

  • MSB use these service info to route service requests

Backwards compatible

While trying to provide consistent RESTful APIs to ONAP developers and users, some projects may also want to support their current API version until an appropriate time to deprecate it. In case of that, two service endpoints can be defined for a service, one for the consistent, standard way and one for backwards compatible.

The customized publish path of this service attribute can be used to support the current API. If this parameter is specified when registering the service, the service will be published to api gateway under the specified customer path other than the the fixed format: api/{serviceName} /{version}.

for example, A&AI defines two services for its Cloud Infrastructure API,  the "aai-cloudInfrastructure" is published under /api/aai-cloudInfrastructure/v1/ which is the consistent, standard API URL, and the "aai-cloudInfrastructure-deprecated" is published under /cloud-infrastructure/ which is the same as its current API URL.


ONAP Services

Linked from http://onap.readthedocs.io/en/latest/guides/onap-developer/settingup/fullonap.html#onap-components

MSB

Service NameDescriptionService TypeVersionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
microservicesRegister/unregister/update/query microserviceapi1/N/A/api/microservices/v1/services/InternalRound robin8086False

Holmes

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
holmes-rule-mgmtThe rule management module of Holmesapi1/api/holmes-rule-mgmt/v1/N/A/api/holmes-rule-mgmt/v1/InternalRound robin9101False
holmes-engine-mgmtThe engine management module of Holmesapi1/api/holmes-engine-/mgmt/v1/
N/A/api/holmes-engine-mgmt/v1/InternalRound robin9102False
holmes-dmaap-dsaThe data source adapter module of Holmesapi1/api/holmes-dmaap-dsa/v1/N/A/api/holmes-dmaap-dsa/v1/InternalRound robin9103False


Policy

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
policy-pdpAPIs helps to make queries against Policy Engineapi1/pdpN/A/api/policy/pdp/v1
InternalRound robin8081


A&AI

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

aai-cloudInfrastructure

Cloud Infrastructure API.api11/aai/v11/cloud-infrastructureN/A/api/aai-cloudInfrastructure/v11/InternalRound robin8443True

aai-cloudInfrastructure-deprecated

For back compatible.api11/aai/v11/cloud-infrastructure/aai/v11/cloud-infrastructure/aai/v11/cloud-infrastructure/InternalRound robin8443True
aai-businessBusiness API.api11/aai/v11/businessN/A/api/aai-business/v11/InternalRound robin8443True

External System APIapi11/aai/v11/external-system/aai/v11/external-system/api/aai-external-system/v11/InternalRound robin8443True

aai-business-deprecated

For back compatible.api11/aai/v11/business/aai/v11/business/aai/v11/business/InternalRound robin8443True
aai-searchSearch API.api11/aai/v11/searchN/A/api/aai-search/v11/InternalRound robin8443True

aai-search-deprecated

For back compatible.api11/aai/v11/search/aai/v11/search/aai/v11/search/InternalRound robin8443True
aai-actionsActions API.api11/aai/v11/actionsN/A/api/aai-actions/v11/InternalRound robin8443True

aai-actions-deprecated

For back compatible.api11/aai/v11/actions/aai/v11/actions/aai/v11/actions/InternalRound robin8443True
aai-service-design-and-creationService design and creation APIapi11/aai/v11/service-design-and-creationN/A/api/aai-service-design-and-creation/v11/InternalRound robin8443True
aai-service-design-and-creation-deprecatedFor back compatible.api11/aai/v11/service-design-and-creation/aai/v11/service-design-and-creation/aai/v11/service-design-and-creation/InternalRound robin8443True
aai-networkNetwork API.api11/aai/v11/networkN/A/api/aai-network/v11/InternalRound robin8443True
aai-network-deprecatedFor back compatible.api11/aai/v11/network/aai/v11/network/aai/v11/network/InternalRound robin8443True
aai-search-serviceAPI for the A&AI search databaseapi11/aai/v11/services/search-data-serviceN/A/api/aai-search-service/v11/InternalRound robin9509
aai-uiUser Interface for AAIui11/aai/v11/services/aai/webapp/N/Aiui/aai-ui/InternalRound Robin9517
aai-babelTOSCA model translator for Model Loader serviceapi11/aai/v11/services/babel-service/v1/app/generateArtifactsN/A/api/aai-babel/v11/InternalRound Robin9516
aai-esr-serverESR server endapi1/api/aai-esr-server/v1/N/A
/api/aai-esr-server/v1/InternalRound robin9518
aai-esr-guiESR portalui1/esr-guiN/A/iui/aai-esr-guiInternalRound robin9519
hbaseDatabasedatabase





2181 8080 8085 9090 16000 16010 9095 16201 16301


elasticsearchSearch and Analytics Engine






9200 9300


SDC/Catalog

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL













VNF-SDK

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

vnfsdk/refrepo

VNF Repository Portal and Backendui1/openoui/vnfmarketN/A/openoui/vnfmarketExternal
8702False

DCAE(Gen2)

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

Consul UI

DACE ConsulUI
/ui



8500
Cloudify Manager UICloudify Manager UIUI
/#/deployments



80
CDAP UICDAP Cluster UIUI
/cdap/ns/cdap_tca_hi_lo



11011
VES collectorVES data entry point APIAPI

/eventListener/v1



External
8080


CLAMP

Not applicable in Amsterdam Release(No port exposed!)

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL













SO

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

so-serviceInstances

Service Instance Orchestrationapi5/ecomp/mso/infra/serviceInstances/v5N/A/api/so-serviceInstances/v5/
InternalRound Robin8080False
so-serviceInstances-deprecatedFor back compatible.api5/ecomp/mso/infra/serviceInstances/v5/ecomp/mso/infra/serviceInstances/v5/ecomp/mso/infra/serviceInstances/v5/InternalRound Robin8080False


VF-C

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
nslcmNFVO LCM Component.api1/N/A/api/nslcm/v1/InternalRound Robin8403
ztevmanagerdriver
ZTE VNFM Driver Component.api1/N/A/api/ztevmanagerdriver/v1/InternalRound Robin8410
ztesdncdriver
ZTE SDNC Driver Component.api1/N/A/api/ztesdncdriver/v1/InternalRound Robin8411
resmgrNFVO Resource Manager Component.api1/N/A/api/resmgr/v1/InternalRound Robin8480
gvnfmdriver GVNFM Driver Componentapi1/N/A/api/gvnfmdriver/v1/InternalRound Robin8484
huaweivnfmdriverHUAWEI VNFM Driver Component.api1/N/A/api/huaweivnfmdriver/v1/InternalRound Robin8482
nokiavnfmdriverNokia VNFM Driver Componetapi1/N/A/api/nokiavnfmdriver/v1/IntelnalRound Robin8486
jujuvnfmdriverJUJU VNFM Driver Component.api1/N/A/api/jujuvnfmdriver/v1/InternalRound Robin8483
vnflcm VNF Lifecycle Managementapi1/N/A/api/vnflcm/v1/InternalRound Robin8801
vnfres VNF Virtual Resource Managementapi1/N/A/api/vnfres/v1/InternalRound Robin8802
vnfmgr VNF Init Configuration and Managementapi1/N/A/api/vnfmgr/v1/InternalRound Robin8803
activitiVNF Execution Engineapi1//activiti-rest//activiti-rest/
InternalRound Robin8804
workflowWorkflow Managementapi1//mgr/api/workflow/v1/internalRound Robin8805
catalogNFVO Catalog Component.api1/N/A/api/catalog/v1/internalRound Robin8806
emsdriverEMS driver Componentapi1/N/A/api/emsdriver/v1/internal

Round

Robin

8206


APP-C

For APPC, please refer to the APPC documentation on  Readthedocs

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL













SDN-C

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

sdnc

Restconf APIs provided by SDN-C

(Note: SDNC-C APIs follow the Restconf url construct style)

api1///internalRound Robin8181
sdnc-portalAdmin portal for SDNCui1/
iui/sdnc-portal/external|internalRound Robin8443


AAF

Not applicable in Amsterdam Release

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

Authz Service

Authentication & Authorization service APIapi1///internalRound Robin8101false

DMaaP

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

message-router


apiv1/N/A/api/message-router/v1/internalRound Robin3904
data-router









bus-controller










Multi VIM

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL

multicloud


apiv0/N/A/api/multicloud/v0/InternalRound Robin9001


OFP

Not applicable in Amsterdam Release

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL












OOM

Convinient way to retrieve all the port information, formatted as follow:
port-name | internal port | external port

kubectl get svc --all-namespaces -o go-template='{{range .items}}{{range.spec.ports}}{{if .nodePort}}{{.name}} | {{.port}} | {{.nodePort}}{{"\n"}}{{end}}{{end}}{{end}}'

Component Name

Namespace

Container

Internal Port

External Port

Description

Service Type

version

URL

Customized  Path

Published URL

Visual Range

LB Method

Enable SSL

AAF

onap-aaf

aaf-authz-service

8101

30299










AAI

onap-aai

model-loader-service

8080

30210










8443

30229










aai-service

8080

30232










8443

30233










APPC

onap-appc

dgbuilder

3000

30228










sdnhost

8282

30230










1830

30231










CLAMP




30295










CLI




30260










CONSUL

onap-consul

consul-server 

8500

30270










8301

30271










DCAE




30236













30237













30238













30239













30240













30245










LOG

onap-log

kibana

5601

30253










elasticsearch

9200

30254










MR

onap-message-router

dmaap

3905

30226










3904

30227










MOCK




30288










MSB

onap-msb

msb-iag

80

30080










msb-discovery 

10081

30081










msb-eag 

80

30082










msb-consul 

8500

30500










MSO

onap-mso 

mso

9990

30222










8080

30223










3905

30224










3904

30225










8787

30250










mariadb

3306

30252










Multicloud




30291













30292













30293













30294










POLICY

onap-policy

brmsgw

9989

30216










drools

6969

30217










pap

9091

30218










8443

30219










pdp

8081

30220










PORTAL

onap-portal

vnc-portal 

6080

30211










5900

30212










portalapps

8006

30213










8010

30214










8989

30215










ROBOT

onap-robot

robot

88

30209










SDC

onap-sdc 

sdc-be

8443

30204










8080

30205










sdc-fe 

8181

30206










9443

30207










SDNC

onap-sdnc

sdnc-portal

8843

30201










sdnhost

8282

30202










8201

30208










sdnc-dgbuilder

3000

30203










UUI




30298










VFC




30296













30403













30410













30411













30480













30482













30483













30484













30801













30802













30803













30804













30806










VID

onap-vid

vid-server

8080

30200










VNFSDK




30297











Portal Platform

Service NameDescriptionService TypeversionURLCstomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
 portalRESTful service provided by Portal Platform


api2

/

N/A/api/portal/v2/InternalRound robin8989


Usecase UI

Service NameDescriptionService TypeversionURLCustomized  PathPublished URLVisual RangeLB MethodPortEnable SSL
usecase-ui-serverServer Component for Usecase-UIapi1/N/A

/api/usecaseui/server/v1/

InternalRound Robin8901
usecase-uiUser Interface for Usecase-UIui1/N/Aiui/usecaseui/InternalRound Robin8900

OOM Integration

Every project needs to add the service information to OOM kubernetes configuration files as annotation so OOM can register the service endpoints to MSB.

apiVersion: v1
kind: Service
metadata:
  name: aai-service
  annotations:
    msb.onap.org/service-info: '[                           
      {
          "serviceName": "aai-cloudInfrastructure",   
          "version": "v1",                         
          "url": "/cloud-infrastructure",           
          "protocol": "REST",   
          "port": "8443",                   
          "lb_policy": "round-robin",                         
          "visualRange":"1",    
          "enable_ssl":"True"                   
      },
      {
          "serviceName": "aai-cloudInfrastructure-deprecated",   
          "version": "v1",                         
          "url": "/cloud-infrastructure",           
          "protocol": "REST",
          "port": "8443",                      
          "lb_policy": "round-robin",                    
          "visualRange":"1",  
          "path":"/cloud-infrastructure/" ,    
          "enable_ssl":"True"                       
      }
    ]',

.......




  • No labels