43
Oracle® Communications Service Communication Proxy (SCP) Cloud Native Installation Guide Release 1.0 F12352-01 June 2019

) Cloud Native Installation Guide - Oracle · Cloud Native Installation Guide Release 1.0 F12352-01 June 2019. Oracle Communications Service Communication Proxy (SCP) Cloud Native

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Oracle® CommunicationsService Communication Proxy (SCP)Cloud Native Installation Guide

Release 1.0F12352-01June 2019

Oracle Communications Service Communication Proxy (SCP) Cloud Native Installation Guide, Release 1.0

F12352-01

Copyright © 2019, 2019, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use anddisclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement orallowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilationof this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you findany errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf ofthe U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, anyprograms installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercialcomputer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplementalregulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operatingsystem, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to licenseterms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is notdeveloped or intended for use in any inherently dangerous applications, including applications that may create a risk ofpersonal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take allappropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliatesdisclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of theirrespective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used underlicense and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, andthe AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registeredtrademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, andservices from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim allwarranties of any kind with respect to third-party content, products, and services unless otherwise set forth in anapplicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss,costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth inan applicable agreement between you and Oracle.

Contents

1 Installation Overview

Installation Procedures 1-1References 1-1Acronyms 1-1How to use this document 1-2Documentation Admonishments 1-2Locate Product Release Software on the Oracle Software Delivery Cloud Site 1-3Customer Training 1-3My Oracle Support 1-3Emergency Response 1-4

2 SCP Installation

Prerequisites 2-1Installation Sequence 2-2Installation Preparation 2-3Configure NRF Details 2-4SCP Deployment 2-7Configure SCP as HTTP Proxy 2-8SCP Uninstall 2-8

A SCP Configuration Parameters

B OCSCP Yaml File

iii

List of Figures

1-1 Example of a Procedure Steps Used in This Document 1-2

iv

List of Tables

1-1 SCP Installation Procedures 1-1

1-2 Acronyms 1-1

1-3 Admonishments 1-3

2-1 SCP Software 2-1

2-2 SCP Services 2-1

2-3 Installation Sequence 2-2

2-4 SCP Images 2-3

2-5 Download Images and Helm files 2-3

2-6 SCP Deployment 2-7

2-7 Configure SCP as HTTP Proxy 2-8

2-8 SCP Uninstall 2-9

A-1 SCP Configuration Parameters A-1

v

1Installation Overview

This section provides a brief overview of the recommended methods for installing SCP.

Installation ProceduresThe SCP is a decentralized solution and composed of Service Proxy Controllers and ServiceProxy Workers and is deployed along side of 5G network functions and provides routingcontrol, resiliency, observability to the core network. Refer to SCP User Guide for moreinformation on architecture and features.

The following table illustrates the progression of the installation process by procedure. Thephases outlined are to be executed in the order they are listed.

Table 1-1 SCP Installation Procedures

Procedure Phase1 Installation Preparation

2 SCP Deployment

References1. CNE Installation Document

2. Service Communication Proxy (SCP) Cloud Native User's Guide

AcronymsTable 1-2 Acronyms

Acronym Meaning

CNE Cloud Native EnvironmentDNS Domain Name SystemFQDN Fully Qualified Domain NameOHC Oracle Help CenterOSDC Oracle Software Delivery CloudSCP Service Communication ProxySVC Services

1-1

How to use this documentAlthough this document is primarily to be used as an initial installation guide, its secondarypurpose is to be used as a reference for Disaster Recovery procedures.

When executing this document for either purpose, there are a few points which help to ensurethat the user understands the author’s intent. These points are as follows:

1. Before beginning a procedure, completely read the instructional text (it will appearimmediately after the Section heading for each procedure) and all associated proceduralWARNINGS or NOTES.

2. Before execution of a STEP within a procedure, completely read the left and right columnsincluding any STEP specific WARNINGS or NOTES.

If a procedural STEP fails to execute successfully, STOP and contact Oracle’s CustomerService for assistance before attempting to continue. My Oracle Support for information oncontacting Oracle Customer Support.

Figure 1-1 Example of a Procedure Steps Used in This Document

Documentation AdmonishmentsAdmonishments are icons and text throughout this manual that alert the reader to assurepersonal safety, to minimize possible service interruptions, and to warn of the potential forequipment damage.

Chapter 1How to use this document

1-2

Table 1-3 Admonishments

Icon Description

Danger:(This icon and text indicate the possibility ofpersonal injury.)

Warning:(This icon and text indicate the possibility ofequipment damage.)

Caution:(This icon and text indicate the possibility ofservice interruption.)

Locate Product Release Software on the OracleSoftware Delivery Cloud Site

Oracle Communications software is available for electronic download at the Oracle SoftwareDelivery Cloud site, https://edelivery.oracle.com. Only authorized customers with a validpassword may download software from the site.

For directions on downloading the software and other information about using this site, clickFAQ in the top right corner.

Customer TrainingOracle University offers training for service providers and enterprises. Visit our web site toview, and register for, Oracle Communications training:

http://education.oracle.com/communication

To obtain contact phone numbers for countries or regions, visit the Oracle University Educationweb site:

www.oracle.com/education/contacts

My Oracle SupportMy Oracle Support (https://support.oracle.com) is your initial point of contact for all productsupport and training needs. A representative at Customer Access Support can assist you withMy Oracle Support registration.

Call the Customer Access Support main number at 1-800-223-1711 (toll-free in the US), or callthe Oracle Support hotline for your local country from the list at http://www.oracle.com/us/support/contact/index.html. When calling, make the selections in the sequence shown below onthe Support telephone menu:

1. Select 2 for New Service Request.

Chapter 1Locate Product Release Software on the Oracle Software Delivery Cloud Site

1-3

2. Select 3 for Hardware, Networking and Solaris Operating System Support.

3. Select one of the following options:

• For Technical issues such as creating a new Service Request (SR), select 1.

• For Non-technical issues such as registration or assistance with My Oracle Support,select 2.

You are connected to a live agent who can assist you with My Oracle Support registration andopening a support ticket.

My Oracle Support is available 24 hours a day, 7 days a week, 365 days a year.

Emergency ResponseIn the event of a critical service situation, emergency response is offered by the CustomerAccess Support (CAS) main number at 1-800-223-1711 (toll-free in the US), or by calling theOracle Support hotline for your local country from the list at http://www.oracle.com/us/support/contact/index.html. The emergency response provides immediate coverage, automaticescalation, and other features to ensure that the critical situation is resolved as rapidly aspossible.

A critical situation is defined as a problem with the installed equipment that severely affectsservice, traffic, or maintenance capabilities, and requires immediate corrective action. Criticalsituations affect service and/or system operation resulting in one or several of these situations:

• A total system failure that results in loss of all transaction processing capability

• Significant reduction in system capacity or traffic handling capability

• Loss of the system’s ability to perform automatic system reconfiguration

• Inability to restart a processor or the system

• Corruption of system databases that requires service affecting corrective actions

• Loss of access for maintenance or recovery operations

• Loss of the system ability to provide any required critical or major trouble notification

Any other problem severely affecting service, capacity/traffic, billing, and maintenancecapabilities may be defined as critical by prior discussion and agreement with Oracle.

Chapter 1Emergency Response

1-4

2SCP Installation

PrerequisitesFollowing are the prerequisites to install and configure SCP:

SCP Software

Following software are required as must to deploy SCP:

Table 2-1 SCP Software

Software Version

Kubenetes v1.12.5HELM v2.11.0

Other services may need to be deployed according to the requirement of services. Followingare software details:

Table 2-2 SCP Services

Software Chart Notes

elasticsearch elasticsearch-1.21.1 Needed for Loggingelastic-curator elasticsearch-curator-1.2.1 Needed for Loggingelastic-exporter elasticsearch-exporter-1.1.2 Needed for Logginglogs fluentd-elasticsearch-2.0.7 Needed for Loggingkibana kibana-1.5.2 Needed for Logginggrafana grafana-2.2.0 Needed for Metricsprometheus prometheus-8.8.0 Needed for Metricsprometheus-node-exporter prometheus-node-exporter-1.3.0 Needed for Metricsmetallb metallb-0.8.4 Needed for External IPmetrics-server metrics-server-2.4.0 Needed for Metric Servertracer jaeger-0.8.3 Needed for Tracing

Note:

In case above services are needed and software are not installed in CNE. Install all therequired software before proceeding for SCP Installation.

Network access

The Kubernetes cluster hosts must have network access to:

2-1

• Local docker image repository where the SCP images are available

• Local helm repository where the SCP helm charts are available

• Service FQDN of SCP-Worker must be discoverable from outside of the cluster (i.e.publicly exposed so that ingress messages to SCP can come from outside of Kubernetes).

• Helm must have access to create ClusterRole and ClusterRoleBinding resources.

Note:

All the kubectl and helm related commands used in this guide need to be executed onsome machine depending on the infrastructure/deployment. It may be some clientmachine.

Client machine requirements

There are some requirements for the laptop/desktop where the deployment commands needs tobe executed:

• It should have network access to the helm repository and docker image repository.

• Helm repository must be configured on the client.

• It should have network access to the Kubernetes cluster.

• It should have necessary environment settings to run the kubectl commands. Theenvironment should have privileges to create namespace in the Kubernetes cluster.

• It should have helm client installed with the push plugin. The environment should beconfigured so that the helm install command deploys the software in the Kubernetescluster.

Installation SequenceTable 2-3 provides the sequence in which SCP must be installed.

Table 2-3 Installation Sequence

Sl.No Phase Description

1 Installation Preparation Download the required files and load thefiles to the system, which is havingaccess to Kubectl and helm commands.

2 Configure custom_values.yaml file. This includes configuring the followingbased on the deployment:

1. Repository path

2. Domain and clusterdomain

3. SCP details

4. NRF details, if any

Note: Other configurations might bechanged based on the deployment.

Chapter 2Installation Sequence

2-2

Table 2-3 (Cont.) Installation Sequence

Sl.No Phase Description

3 SCP deployment SCP can be deployed in either of thefollowing ways:• With HELM repository• With HELM tar

4 Verify SCP deployment Check if the services and pods are upand running.

SCP Images

Following are the SCP images:

Table 2-4 SCP Images

Microservices Image

SCP-Worker scp-workerSCPC-Pilot scpc-pilotSCPC-Soothsayer soothsayer-configuration

soothsayer-initsoothsayer-notificationsoothsayer-subscriptionsoothsayer-auditsoothsayer-reconfiguration

Installation PreparationThe following procedure describes the steps to download the SCP Images and Helm files fromOracle Software Delivery Cloud.

Table 2-5 Download Images and Helm files

Step # Procedure Description1 Download the SCP package file Customers are required to download the SCP package file

from Oracle Software Delivery Cloud (OSDC). Package isnamed as follows:

<nfname>-pkg-<marketing-release-number>.tgz

For example: ocscp-pkg-1.0.0.0.0.tgz

Chapter 2Installation Preparation

2-3

Table 2-5 (Cont.) Download Images and Helm files

2 Untar the SCP Package File Untar the SCP package to the specific repository

tar -xvf <<nfname>-pkg-<marketing-release-number>>.tgz

The directory consists of following:

1. SCP Docker Images File: tarball contains images ofSCPocscp-images-1.0.0.tar

2. Helm File: tarball contains Helm charts and templatesocscp-1.0.0.tgz

3. Readme txt: Contains cksum and md5sum of thetarballsReadme.txt

3 Check the checksums Check the checksums of tarballs mentioned in Readme.txt.Refer to Readme.txt for the commands and checksumdetails.

4 Load the tarball to system Execute the following command to load the tar file

docker load --input <image_file_name.tar>

5 Push docker files to Dockerregistry (recommended step)

Execute the following command to push the docker files todocker registry:

docker tag <image-name>:<image-tag> <docker-repo>/<image-name>:<image-tag>

docker push <docker_repo>/<image_name>:<image-tag>

6 Check if all the images areloaded

Execute the following command to check:

docker images

Refer to Table 2-4 table for the list of images.

7 Push helm files to helmrepository (recommended step)

Execute the following command to push the helm files tohelm repository:

helm push <helm_repo> <image_name>.tgz

8 Download ServiceCommunication Proxy (SCP)Custom Template

The Service Communication Proxy (SCP) Custom Templateare available at the OHC. Customer can download thistemplate and customize it as per the requirement. The ocscp-custom-values-1.0.0.yaml template consists of:• ocscp_values.yaml• scpAlertrules.yaml• ScpMetricDashboard.json

Configure NRF DetailsNRF details must be put during SCP installation using SCP Yaml file. User needs to update theNRF details in SCP Yaml file.

Chapter 2Configure NRF Details

2-4

Note:

User can configure a primary NRF and an optional secondary NRF (NRFs must havebackend DB Synced).

IPV4 address needs to be configured in case NRF is outside of K8S cluster. For inside Clusteruser can configure FQDN as well. If both IPV4 address and FQDN are provided then IPV4Address will take precedence over FQDN.

Snippet of NRF details from custom_values.yaml is shown below:

# NRF details for primary(Priority=0) and secondry(Priority=1) NRF. Note that these NRFs needs to be backend DB Synced.

# In case of no secondry NRF user can comit the secondary NRF details

nrfDetails:

- nfType: []

nrfManagement:

fqdn: ocnrf1-ambassador.k1-nrf.svc.cluster.local

port: '80'

scheme: HTTP2

priority: 0 # Default value is 0

capacity: 100 # Default value is 100

apiPrefix: USEast

ipEndPoints:

- ipv4Address: 10.104.121.231

transport: TCP # Default value is TCP

port: 80 # Default value is 80

nrfDiscovery:

fqdn: ocnrf1-ambassador.k1-nrf.svc.cluster.local

port: '80'

scheme: HTTP2

priority: 0 # Default value is 0

capacity: 100 # Default value is 100

apiPrefix: USEast

ipEndPoints:

- ipv4Address: 10.104.121.231

Chapter 2Configure NRF Details

2-5

transport: TCP # Default value is TCP

port: 80 # Default value is 80

- nfType: []

nrfManagement:

fqdn: ocnrf2-ambassador.k1-nrf.svc.cluster.local

port: '80'

scheme: HTTP2

priority: 1 # Default value is 0

capacity: 100 # Default value is 100

apiPrefix: USEast

ipEndPoints:

- ipv4Address: 10.106.232.232

transport: TCP # Default value is TCP

port: 80 # Default value is 80

nrfDiscovery:

fqdn: ocnrf2-ambassador.k1-nrf.svc.cluster.local

port: '80'

scheme: HTTP2

priority: 0 # Default value is 0

capacity: 100 # Default value is 100

apiPrefix: USEast

ipEndPoints:

- ipv4Address: 10.106.232.232

transport: TCP # Default value is TCP

port: 80 # Default value is 80

Note:

User need to update the FQDN, ipv4Address and Port of NRF to point to NRF'sFQDN/IP and Port.

Chapter 2Configure NRF Details

2-6

SCP DeploymentThis procedure describes the steps to deploy SCP on CNE. Below steps needs to be executedfrom a server which is having access to Kubectl and helm commands.

Table 2-6 SCP Deployment

Step # Procedure Description

1 Search helm chart Execute the following command to check the version of the helmchart installation.helm search <deployment_name>

2 Preparecustom_values.yamlfile

Prepare a custom_values.yaml file with the required parameterinformation. Refer to SCP Configuration Parameters for moreinformation on parameters. Refer to OCSCP Yaml File for sampleYAML file. You can also download sample ocscp_values.yaml filefrom OHC, refer to Table 2-5 for more information.Note:• User needs to update the "domain" in custom_values.yaml file

per the name of cluster (default value of domain is"svc.cluster.local"). If cluster name is XYZ then domain must besvc.XYZ.

• User needs to update the "clusterDomain" incustom_values.yaml file per the name of cluster (default valueof domain is "cluster.local"). If cluster name is XYZ thendomain must be XYZ.

3 Deploy SCP usingHELM repository

Execute the following command:helm install <helm-repo> -f <custom_values.yaml> --name <deployment_name> --namespace <namespace_name> --version <helm_version>

Where:helm-repo: repository name where the helm images, charts are storedcustom_values: helm configuration file which needs to be updatedbased on the doctor registrydeployment_name and namespace_name: depends on customerconfigurationFor example:

helm install ocspf-helm-repo/ocscp -f <custom values.yaml> --name ocscp --namespace scpsvc --version <helm version>

4 Deploy SCP usingHELM tgz

Execute the following command:helm install -f <custom values.yaml> --name ocscp --namespace <namespace> <chartpath>./<chart>.tgz

5 Check repo status Execute helm status <deployment_name> to check thedeployment status.

6 Check svc status Check if all the services are deployed and running:kubectl -n <namespace_name> get services

Chapter 2SCP Deployment

2-7

Table 2-6 (Cont.) SCP Deployment

Step # Procedure Description

7 Check pod status Check if all the pods are up and running:kubectl -n <namespace_name> get pods

Note: Worker and pilot status must be Running and Ready must ben/n. spfc-soothsayer status must be Running and Ready must be n/n,where n is number of containers in the pod.

Configure SCP as HTTP ProxyCustomer NFs are required to set http_proxy/HTTP_PROXY to scp-worker's <FQDN orIPV4 address>:<PORT of SCP-Worker> for customer NFs to route messagestowards SCP.

Also all NFs are required to register with NRF so that SCP can create rules based on thenotifications from NRF.

Note:

Execute this command from where SCP worker and FQDN can be accessed.

Table 2-7 Configure SCP as HTTP Proxy

Step # Procedure Description

1 Testsuccessfuldeploy ofSCP

To test SCP deployed successfully and is able to receive message as an proxyand route it to the appropriate producer, use the below curl command:

$ curl -v -X GET --url 'http://<FQDN:PORT of SCP-Worker>/nnrf-nfm/v1/subscriptions/' --header 'Host:<FQDN:PORT of NRF>'

2 Fetch thecurrentsubscriptionlist

The curl command is to fetch the current subscription list (as a client) fromNRF by sending the request to NRF via SCP.Example:

$ curl -v -X GET --url 'http://scp-worker.scpsvc:8000/nnrf-nfm/v1/subscriptions/' --header 'Host:ocnrf-ambassador.nrfsvc:80'

SCP UninstallSCP deployment can be uninstalled as follows. Below steps needs to be executed from a serverwhich is having access to Kubectl and helm commands.

Chapter 2Configure SCP as HTTP Proxy

2-8

Table 2-8 SCP Uninstall

Step # Procedure Description

1 Undeploy SCP Execute the following command to uninstall SCP:

$ helm delete <deployment_name> --purge

2 Remove SCP crds Execute the following command to remove SCP crds:

$ kubectl get crds -o name | grep <deployment_name>.oracle.io | xargs kubectl delete

Example: $ kubectl get crds -o name | grepscp.oracle.io | xargs kubectl delete

3 Delete namespace Execute the following command to delete namespace:

kubectl delete namespace <deployment_name>

Note: Deleting namespace deletes all the other k8s objects in thatnamespace.

Chapter 2SCP Uninstall

2-9

ASCP Configuration Parameters

Table A-1 provides list of configuration parameters in Helm file. Refer to OCSCP Yaml File forsample file.

Table A-1 SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

Global: Configuration used by all the micro servicesdomain <string> Labels can

be letter a-z,number 0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain

svc.cluster.local

M Y Option toconfigure theService Domainof the K8 cluster.

clusterDomain

<string> Labels canbe letter a-z,number 0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain

cluster.local

M Y Option toconfigure theDomain of the K8cluster. Ideally itis domainattribute value byremoving "svc."

publicSignalingIPSpecified

<boolean> true/false false O Y Option to enable/disableLoadbalancer IPconfigurationstatically forSignallinginterface.

A-1

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

publicSignalingIP

<IPv4Address>

Valid IPV4address asper RFC 791

N/A C Y Option toconfigure staticSignallingLoadbalancer IP.Configured valuewill be used onlyifsignalingloadbalanceripenabled isconfigured as"true"

publicSignalingPort

<integer> Min- 0 ,Max-65535

8000 M Y Option toconfigureSignalling Port

adminport <integer> Min- 0 ,Max-65535

8001 M Y Option toconfigure AdminPort (used fordebuggingpurpose)

scpInfo SCP Profile thatwill be used whileRegisteringcurrent SCPinstance withNRF

fqdn:<string>

Labels canbe letter a-z,number 0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain

N/A M Y Fully QualifiedDomain Name ofSCP

nfType:<string>

NA CUSTOM_ORACLE_SCP

M N

nfStatus:<string>

NA REGISTERED

M N Status of currentSCP Instance

Appendix A

A-2

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

locality:<string>

As per 3GPPTS 29.510spec

N/A M Y Locality of thecurrent SCPInstance (e.g.geographiclocation, datacenter)

customInfo:mateScpInfo: capacity:<integer>priority:<integer>mateSCPLocalities: -<string>servingLocalities: -<string>remainingLocalities: -<string>

capacity:Min = 0,Max =65535,Priority: Min= 0, Max =65535.Localities:As per 3GPPTS 29.510spec

N/A M Y capacity: Staticcapacityinformation in therange of 0-65535,expressed as aweight relative toother SCPinstances of thesame type.priority: Priority(relative to otherSCPs) in the rangeof 0-65535, to beused for NFselection; lowervalues indicate ahigher priority.mateSCPLocalities: List of servinglocalities of theMateSCP(s)servingLocalities: List ofserving localitiesof the current SCP(apart from thelocality in presentin "locality"attribute)remainingLocalities: Listof localities whichwill be served bycurrent SCP butare not part ofmateSCPLocalities andservingLocalities

Appendix A

A-3

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

nfInstanceId:string

Stringuniquelyidentifying aNF instance.The formatof the NFInstance IDshall be aUniversallyUniqueIdentifier(UUID)version 4, asdescribed inIETF RFC4122 [15].

N/A M Y String uniquelyidentifying currentSCP instance. Theformat of theInstance ID shallbe a UniversallyUnique Identifier(UUID) version 4,as described inIETF RFC 4122.

nrfDetails List of NRFs towhich the currentSCP instance willsubscribe fornotifications

- nfType:[<string>,<string>]

Valid 5g NFType as per3GPP TS29.510.

[] i.e.Blank,whichmeanssubscribefor allsupportedNF Types.

M Y List of NF Typesfor which thecurrent SCPinstance willsubscribe fornotifications

Appendix A

A-4

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

nrfManagement: fqdn: <string> port: '<integer>' scheme: HTTP2 priority: <integer> capacity: <integer> ipEndPoints: - ipv4Address: <IPv4 Address> transport: TCP port: <integer>

fqdn: Labelscan be lettera-z, number0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain.port: 0 to65535priority: 0 to65535capacity: 0to 65535

N/A M Y fqdn: FullyQualified DomainName of NRFport: NRFManagementService Portscheme: AlwaysHTTP2priority: Priorityof the NRF amongthe NRF List. Itwill be used forload balancingbetween theNRFs.capacity: Capacityof the NRF amongthe NRF List. Itwill be used forload balancingbetween theNRFs.ipEndPoints: Listof IPv4 Address,transport and portcombination ofthe given NRF

Appendix A

A-5

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

nrfDiscovery: fqdn: <string> port: '<integer>' scheme: HTTP2 priority: <integer> capacity: <integer> ipEndPoints: - ipv4Address: <IPv4 Address> transport: TCP port: <integer>

fqdn: Labelscan be lettera-z, number0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain.port: 0 to65535priority: 0 to65535capacity: 0to 65535

N/A M Y fqdn: FullyQualified DomainName of NRFport: NRFManagementService Portscheme: AlwaysHTTP2priority: Priorityof the NRF amongthe NRF List. Itwill be used forload balancingbetween theNRFs.capacity: Capacityof the NRF amongthe NRF List. Itwill be used forload balancingbetween theNRFs.ipEndPoints: Listof IPv4 Address,transport and portcombination ofthe given NRF

scpc-soothsayer: Configuration specific to Soothsayer Micro Serviceconfiguration

docker Imagedetails forConfigurationcontainer of scpc-soothsayer

Appendix A

A-6

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

image:repository:<dockerrepository>/soothsayer-configurationtag:<string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontainsConfigurationcontainerimagetag: ImageTag to be used forConfigurationcontainerpullPolicy: Imagepull policy.

subscription docker Imagedetails forSubscriptioncontainer of scpc-soothsayer

Appendix A

A-7

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

image:repository:<dockerrepository>/soothsayer-subscriptiontag:<string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontainsSubscriptioncontainerimage tag: ImageTag to be used forSubscriptioncontainerpullPolicy: Imagepull policy.

notification docker Imagedetails forNotificationcontainer of scpc-soothsayer

Appendix A

A-8

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

image:repository:<dockerrepository>/soothsayer-notificationtag: <string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontainsNotificationcontainer imagetag: Image Tag tobe used forNotificationcontainerpullPolicy: Imagepull policy.

init docker Imagedetails forInitializationcontainer of scpc-soothsayer

Appendix A

A-9

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

repository:<dockerrepository>/soothsayer-init tag:<string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontainsInitializationcontainer imagetag: Image Tag tobe used forInitializationcontainerpullPolicy: Imagepull policy.

audit docker Imagedetails for Auditcontainer of scpc-soothsayer

Appendix A

A-10

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

image:repository:<dockerrepository>/soothsayer-audit tag:<string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontains Auditcontainer imagetag: Image Tag tobe used for AuditcontainerpullPolicy: Image pullpolicy.

reconfiguration

docker Imagedetails for Re-configurationcontainer of scpc-soothsayer

Appendix A

A-11

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

image:repository:<dockerrepository>/soothsayer-reconfiguration tag:<string>pullPolicy:Always

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparatorTag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y repository: dockerrepository thatcontains Re-configurationcontainer imagetag: Image Tag tobe used for Re-configurationcontainerpullPolicy: Image pullpolicy.

defaultLocalityToScp

<boolean> true/false true O Y TBD

configService

Configurationrelated toConfigurationcontainer

Appendix A

A-12

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

publicConfigIPSpecified:<boolean>

true/false false O Y Option to enable/disableLoadbalancer IPconfigurationstatically forOAM interface.

publicConfigIP: <IPv4Address>

Valid IPV4address asper RFC 791

N/A C Y Option toconfigure staticLoadbalancer IP.Configured valuewill be used onlyifoamloadbalanceripenabled isconfigured as"true"

staticnodeportenabled:<boolean>

true/false false O Y Option to enable/disableconfiguring staticNode Port forOAM interface

nodeport:<integer>

As perkubernetescluster , bydefault is30000 to32767

30002 C Y Option toconfigure staticNode Port forOAM interface.Configured valuewill be used onlyifstaticnodeportenabledis configuredas "true"

configServiceNetworkNameEnabled:<boolean>

true/false false O Y Option to enable/disable metalLBIP allocationdynamically fromthe pool for OAMinterface.

Appendix A

A-13

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

configServiceNetworkName:metallb.universe.tf/address-pool:<string>

alpha-numeric

oam C Y Annotation tonotify metalLB toallocate a IP forOAM interface ofSCP. Theannotation will beadded only ifconfigServiceNetworkName isconfigured as"true". <TODO>Need few moreupdates aftertesting.

scp-worker: Configuration specific to Worker Micro Serviceimage docker image

details for scp-worker microservice

repository:<dockerrepository>/scp-worker

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparator

N/A M Y docker repositorythat contains scp-worker microservice image

Appendix A

A-14

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

tag: <string> Tag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y Image Tag to beused for scp-worker microservice

pullPolicy:Always

Always O Y Image pull policy.

replicaCount <integer> NA 2 O N Minimum numberof Worker Pod.

jaeger Jaeger serviceconfiguration

address:<fqdn>

Labels canbe letter a-z,number 0-9,hyphen(-).Hyphencannot befirstcharacter.Labelcombinedwith dot(.)formsdomain

N/A M Y Option toConfigure JaegerCollector FQDN

port_value:<integer>

Min: 0 Max:65535

N/A M Y Option toConfigure JaegerCollector Port

tracingenable

<boolean> true/false true O Y Option to enable/disable Jaegertracing.

admin

Appendix A

A-15

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

enablejaegerbody:<boolean>

true/false false O Y Option to enable/disable tracing forfull body of allRequest/Responsemessages. Theconfiguration willbe added only iftracingenable isconfigured as"true".

retrytimeoutvalue:<integer>

min: 1 max:3600

5 O Y Option toconfigure time towait (in seconds)before makingnew requests tothe a upstreamcluster afterreceiving 503 or429 responsecode. This valuewill only be usedif 'retry-after'header is notpresent inresponse.

serviceport:staticnodeportenabled:<boolean>

true/false false O Y Option to enable/disableconfiguring staticNode Port forSignalinginterface

nodeport:<integer>

As perkubernetescluster , bydefault is30000 to32767

30001 C Y Option toconfigure staticNode Port forSignalinginterface .Configured valuewill be used onlyifstaticnodeportenabled configured as"true"

Appendix A

A-16

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

networkNameEnabled:<boolean>

true/false false O Y Option to enable/disable metalLBIP allocationdynamically fromthe pool forSignalinginterface.

networkName:metallb.universe.tf/address-pool:<string>

alpha-numeric

signaling C Y Annotation tonotify metalLB toallocate a IP forSignalinginterface of SCP.The annotationwill be added onlyifnetworkNameEnabled is configuredas "true".<TODO> Needfew more updatesafter testing.

loglevel <string> trace/debug/info/warning

warning O Y Option toincrease/decreaseLogging level ofscp-worker micro-service.

prometheus scrape:<boolean>

true/false true O Y Option to enable/disablePrometheusmetrics scraping

request Initial requestedResource quotafor scp-workermicro-service

memory:4096Mi

NA 4096Mi M N Requestedmemory (RAM)for scp-workermicro-service inMega Bytes

cpu: 4000m NA 4000m M N Requested CPUfor scp-workermicro-service inmilliCPU

limits Max allocatedResource quotafor scp-workermicro-service

Appendix A

A-17

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

memory:4096Mi

NA 4096Mi M N Max allocatedmemory (RAM)for scp-workermicro-service inMega Bytes

cpu: 4000m NA 4000m M N Max allocatedCPU for scp-worker micro-service inmilliCPU

minreplicas <integer> NA 2 M N Minimum replicacount of scp-worker micro-service

maxreplicas <integer> Min: 2 Max:32

32 M Y Maximum replicacount of scp-worker micro-service

heapoverloadcontrol:

SCP memoryoverload controlconfiguration

refresh_interval: seconds:0 nanos:250000000

NA N/A O N Refresh Interval(250 milliseconds)to check memoryOverloadcondition

resource_monitors:max_heap_size_bytes:4294967296

NA N/A O N Max ConfiguredHeap Size for scp-worker micro-service (4GB)

actions:stop_accepting_requests:<%age indecimalvalue>

Min: 0 Max:1

0.70 O Y Option toconfigurethreshold %age atwhich SCP willstop acceptingnew requests.

Appendix A

A-18

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

stop_accepting_connections: <%agein decimalvalue>

Min: 0 Max:1

0.75 O Y Option toconfigurethreshold %age atwhich SCP willstop acceptingnew connections.This %age shouldbe always greaterthan the %ageconfigured forstop_accepting_requests

shrink_heap:<%age indecimalvalue>

Min: 0 Max:1

0.70 O Y Option toconfigurethreshold %age atwhich SCP willstart freeingunused memoryblocks. This %ageshould be alwaysminimum ofthresholdconfigured forstop_accepting_requests andstop_accepting_connections

scpc-pilot: Configuration specific to Pilot Micro Serviceimage docker image

details for scpc-pilot microservice

Appendix A

A-19

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

repository:<dockerrepository>/scpc-pilot

Repository:Namecomponentsmay containlowercaseletters, digitsandseparators. Aseparator isdefined as aperiod, oneor twounderscores,or one ormore dashes.A namecomponentmay not startor end with aseparator

N/A M Y docker repositorythat contains scpc-pilot microservice image

tag: <string> Tag: validASCII andmay containlowercaseanduppercaseletters,digits,underscores,periods anddashes. A tagname maynot start witha period or adash andmay containa maximumof 128characters

N/A M Y Image Tag to beused for scpc-pilotmicro service

pullPolicy:Always

Always M Y Image pull policy.

enableTracing

<Boolean> true/false True O Y Option to enable/disablerequest .tracing

Appendix A

A-20

Table A-1 (Cont.) SCP Configuration Parameters

AttributeName

DataType Range DefaultValue

Mandatory(M)/Optional(O)/Conditional(C)

User canchange?

Description

logOutputLevel

"<Module:level>,<Module:level>,...."

SupportedModules:ads, default,mcp, model,rbacSupported Level:debug, info,warn, error,fatal, none

"default:info"

O Y Option toincrease/decreasescpc-pilot loglevel

logStacktraceLevel

"<Module:level>,<Module:level>,...."

SupportedModules:ads, default,mcp, model,rbacSupported Level:debug, info,warn, error,fatal, none

"default:none"

O Y Option toincrease/decreasescpc-pilot StackTrace level

Appendix A

A-21

BOCSCP Yaml File

Following is the sample OCSCP Yaml file:

The OCSCP Yaml file can also be downloaded from OHC.

global: domain: svc.cluster.local clusterDomain: cluster.local # If you want to assign a load balancer IP,set loadbalanceripenbled flag to true and # provide value for flag loadbalancerip # else a random IP will be assigned if loadbalanceripenbled is false # and it will not use loadbalancerip flag publicSignalingIPSpecified: false publicSignalingIP: 10.75.212.88 publicSignalingPort: 8000 adminport: 8001 scpInfo: fqdn: scp-worker.scpsvc.svc.cluster.local nfType: CUSTOM_ORACLE_SCP nfStatus: REGISTERED locality: Loc7 customInfo: mateScpInfo: capacity: 500 priority: 1 mateSCPLocalities: - Loc10 servingLocalities: - Loc7 - Loc8 - Loc9 - US East remainingLocalities: - Loc1 - Loc2 - Loc3 - Loc4 - Loc5 - Loc6 nfInstanceId: 6faf1bbc-6e4a-4454-a507-a14ef8e1bc5e nrfDetails: - nfType: [] nrfManagement: fqdn: ocnrf1-ambassador.k1-nrf.svc.cluster.local port: '80' scheme: HTTP2 priority: 0 # Default value is 0 capacity: 100 # Default value is 100 ipEndPoints: - ipv4Address: 10.104.121.231 transport: TCP # Default value is TCP port: 80 # Default value is 80

B-1

nrfDiscovery: fqdn: ocnrf1-ambassador.k1-nrf.svc.cluster.local port: '80' scheme: HTTP2 priority: 0 # Default value is 0 capacity: 100 # Default value is 100 ipEndPoints: - ipv4Address: 10.104.121.231 transport: TCP # Default value is TCP port: 80 # Default value is 80 - nfType: [] nrfManagement: fqdn: ocnrf2-ambassador.k1-nrf.svc.cluster.local port: '80' scheme: HTTP2 priority: 1 # Default value is 0 capacity: 100 # Default value is 100 ipEndPoints: - ipv4Address: 10.106.232.232 transport: TCP # Default value is TCP port: 80 # Default value is 80 nrfDiscovery: fqdn: ocnrf2-ambassador.k1-nrf.svc.cluster.local port: '80' scheme: HTTP2 priority: 0 # Default value is 0 capacity: 100 # Default value is 100 ipEndPoints: - ipv4Address: 10.106.232.232 transport: TCP # Default value is TCP port: 80 # Default value is 80scpc-soothsayer: init: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-init tag: 1.0.0 pullPolicy: Always configuration: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-configuration tag: 1.0.0 pullPolicy: Always resources: memory: 1Gi cpu: 0.5 reconfiguration: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-reconfiguration tag: 1.0.0 pullPolicy: Always resources: memory: 1Gi cpu: 0.5 subscription: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-subscription tag: 1.0.0 pullPolicy: Always resources:

Appendix B

B-2

memory: 1Gi cpu: 1 notification: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-notification tag: 1.0.0 pullPolicy: Always resources: memory: 4Gi cpu: 3 audit: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/soothsayer-audit tag: 1.0.0 pullPolicy: Always resources: memory: 1Gi cpu: 1 defaultLocalityToScp: true configService: # If you want to assign a load balancer IP,set loadbalanceripenbled flag to true and # provide value for flag loadbalancerip # else a random IP will be assigned if loadbalanceripenbled is false # and it will not use loadbalancerip flag publicConfigIPSpecified: false publicConfigIP: 10.75.212.88 # If you want to provide a static nodePort, make staticnodeportenabled flag to true and # provide value for flag nodeport , # else a random nodePort will be assigned if staticnodeportenabled is false # and it will not use nodeport flag staticnodeportenabled: false # Port value should lie in between 30000-32767. nodeport: 30002 # IP Address Pool from which should K8s config Service pick the IP Address configServiceNetworkNameEnabled: false configServiceNetworkName: "{metallb.universe.tf/address-pool: oam}"scp-worker: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/scp-worker tag: 1.0.0 pullPolicy: Always jaeger: address: jaeger-collector.cne-infra.svc.cluster.local port_value: 9411 # This flag tracingenable is used to enable or disable jaeger tracing tracingenable: true admin: enablejaegerbody: false retrytimeoutvalue: 5 service: port:# If you want to provide a static nodePort, make staticnodeportenabled flag to true and# provide value for flag nodeport ,# else a random nodePort will be assigned if staticnodeportenabled is false# and it will not use nodeport flag staticnodeportenabled: false nodeport: 30001

Appendix B

B-3

# IP Address Pool from which should K8s scp-worker Service pick the IP Address networkNameEnabled: false networkName: "{metallb.universe.tf/address-pool: signalling}" loglevel: warning prometheus: scrape: true resources: memory: 4Gi # also update 'heapoverloadcontrol.resource_monitors.max_heap_size_bytes' cpu: 4 minreplicas: 2 maxreplicas: 32 heapoverloadcontrol: refresh_interval: seconds: 0 nanos: 250000000 resource_monitors: max_heap_size_bytes: 4294967296 #4096Mi #Max heap size is 4GB. The values below are expressed as a fraction of the Max Heap Size actions: stop_accepting_requests: 0.70 #as fraction of max heap size stop_accepting_connections: 0.75 #as fraction of max heap size shrink_heap: 0.70 # as fraction of max heap size (min of all other threshold values)scpc-pilot: image: repository: ocspf-registry.us.oracle.com:5000/ocscp/scpc-pilot tag: 1.0.0 pullPolicy: Always enableTracing: true minreplicas: 1 maxreplicas: 10 targetcpuutilpercent: 50 resources: memory: 6Gi cpu: 4 logOutputLevel: "default:info" logStacktraceLevel: "default:none"

Appendix B

B-4