3 Customizing SCP

Table 3-1 provides list of configuration parameters in the Helm file. The OCNRF deployment is customized by overriding the default values of various configurable parameters.

Follow the below steps to customize the ocscp-custom-values-1.6.0.yaml file as per the required parameters:
  1. Go to the Oracle Help Center (OHC) Web site.
  2. Navigate to Industries->Communications->Cloud Native Core->Release 2.2.0.
  3. Click the SCP Custom Template link to download the zip file.
  4. Unzip the file to get ocscp-custom-configTemplates-1.6.0.0.0 file that contains the ocscp-custom-configTemplates-1.6.0.0.0. This file is used during installation.
  5. Customize the ocscp-custom-values-1.6.0.yaml file.
  6. Save the updated ocscp-custom-values-1.6.0.yaml file in the helm chart directory.

Table 3-1 SCP Configuration Parameters

Attribute Name DataType Range Default Value Mandatory(M)/Optional(O)/Conditional(C) User can change? Description
Global: Configuration used by all the micro services
domain
<string> 
				
Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain svc.cluster.local M Y Option to configure the Service Domain of the K8 cluster.
To know cluster domain one can use command :
kubectl -n kube-system get configmap kubeadm-config -o yaml | grep clusterName
clusterDomain
<string>
Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain cluster.local M Y Option to configure the Domain of the K8 cluster. Ideally, it is domain attribute value by removing "svc."
publicSignalingIPSpecified
<boolean> 
				
true/false false O Y Option to enable/disable Loadbalancer IP configuration statically for Signaling interface.
publicSignalingIP
<IPv4 Address>
Valid IPV4 address as per RFC 791 N/A C Y Option to configure static Signaling Loadbalancer IP. Configured value will be used only if signalingloadbalanceripenabled is configured as "true".
publicSignalingPort
<integer>
Min- 0 , Max-65535 8000 M Y Option to configure Signaling Port
adminport
<integer> 
				
Min- 0 , Max-65535 8001 M Y Option to configure Admin Port (used for debugging purpose)
imageRepository
<string>
valid repository

ocspf-registry.us.oracle.com:5000/ocscp

M Y User need to set imageRepository to the repository where SCP images are loaded.
scpInfo SCP Profile that will be used to by SCP register with OCNRF (Primary First and Secondary if primary Fails). Registration of SCP services is optional and can be governed vis the nfService.nfServiceStatus flag. If nfServiceStatus is set to registered than that service will get registered with OCNRF. In case of anything other than registered (i.e. SUSPENDED/UNDISCOVBERABLE) that service will not get registered with OCNRF. In any one of the case the service mentioned can be used locally by SCP as long as its present in SCP Profile. In case a service is omitted from SCP profile, SCP will neither register nor be able to use that service (or in case of SDS-APP service the sds-app service is not even deployed)
fqdn: <string> 
				
Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain N/A M Y Fully Qualified Domain Name of SCP
 nfType: <string> 
				
NA CUSTOM_ORACLE_SCP M Y
locality: <string> 
				
As per 3GPP TS 29.510 spec N/A M Y Locality of the current SCP Instance (e.g. geographic location, data center). Same locality must be present in ServingLocalities also.
mediation_status: <string>

mediation_status: ENABLED/DISABLED

DISABLED O Y Option to enable/disable mediation. Note once this option is enabled, all the requests will get routed towards mediation. To turn it disable state, user needs to redeploy SCP.
customInfo:
  mateScpInfo:
    capacity: <integer>
    priority: <integer>
    mateSCPLocalities:
    - <string>
  servingLocalities:
  - <string>
  remainingLocalities:
  - <string>
  servingScope:
  - <string>
capacity: Min = 0, Max = 65535,

Priority: Min = 0, Max = 65535.

Localities: As per 3GPP TS 29.510 spec

capacity: 500

priority: 1

mateSCPLocalities: - Loc10

servingLocalities:

- Loc7

- Loc8

- Loc9

- USEast

remainingLocalities:

- Loc1

- Loc2

- Loc3

- Loc4

- Loc5

- Loc6

M Y capacity: Static capacity information in the range of 0-65535, expressed as a weight relative to other SCP instances of the same type.

priority: Priority (relative to other SCPs) in the range of 0-65535, to be used for NF selection; lower values indicate a higher priority.

servingLocalities: List of serving localities of the current SCP (apart from the locality in present in "locality" attribute)

remainingLocalities: List of localities which will be served by current SCP but are not part of mateSCPLocalities and servingLocalities

servingScope: Region that SCP can support. It is optional and if left blank then it needs to be left blank in NRF Details as well. If it is not present then servingScope will be taken as "default". Hence put a need on NRF details to have servingScope set either to "default" or leave it blank servingScope from there so that "default" will be used in NRF Detail's servingScope"

nfInstanceId: string 
				
String uniquely identifying a NF instance. The format of the NF Instance ID shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122 [15]. N/A M Y String uniquely identifying current SCP instance. The format of the Instance ID shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122.
nfServices:
 - serviceInstanceId: <string>
 serviceName: <string>
 fqdn: <string>
 port: <integer>
 scheme: HTTP2
 priority: <integer>
 capacity: <integer>
 load: <integer>
 ipEndPoints: 
 - ipv4Address: <IPV4 Address>
 port: <integer>
nfServiceStatus: <STATUS>
 apiPrefix: <integer>
 versions:
 - apiFullVersion: <stirng>
   apiVersionInUri: <string>

serviceInstanceId: String uniquely identifying a NF service instance. The format of the NF Service Instance ID is Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122 [15].

fqdn: Labels can be letter a-z, number 0-9, hyphen(-). Hyphen cannot be first character. Label combined with dot(.) forms domain.

port: 0 to 65535

priority: 0 to 65535

capacity: 0 to 65535

load: 0 to 100

apiPrefix: Can be combination of letters from a-z and A-Z

nfServiceStatus : REGISTERED or SUSPENDED (TS 29.510)

Default Value for serviceName: N/ASupported values for serviceName:
  • nmediation-http (Mediation service)
  • ocscp-sds (Subscriber Data Service)
O Y Supported values for serviceName:
  • nmediation-http (Mediation service)
  • ocscp-sds (Subscriber Data Service)

Note:

  • nfServices are completely optional, one or all services can be removed, for removing all services, user also need to remove nfServices key as well.
  • nfServices block from values.yaml can be removed, if user need to configure any of this services, user need to provide this configuration while deploying it through helm using custom ocscp_values.yaml file.
scplocalityconfig
mapping_param: LOCALITY
LOCALITY, NFINSTANCEID, FQDN LOCALITY M Y

Mapping parameter(or Key to look for), will be used to query the corresponding field in

NF profile received in response to NF discovery

Configuration is used to update the Discovery response based on the match criteria(id_value) with SCP IP/Port/FQDN in NF Profile received. It is used to handle case of AMF discovery from any consumer so that consumer can send requests back to SCP and not directly to AMF after discovering it. For this functionality consumers must send AMF discovery requests to SCP.
mapping_info:
    - id_value: <string>
      ip_v4_address: <string>
      fqdn: <string>
      port: <integer>

ip_v4_address: Valid IPV4 address as per RFC 791

fqdn: Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain.

port: 0 to 65535

N/A M Y

id_value: Used to match value against the value obtained from mapping parameter

ip_v4_address: The IP address to be used while updating ipv4Address and callback URI in NF discovery response

fqdn: The fqdn to be used while updating fqdn in NF discovery response.

port: The port to be used while updating port in NF discovery response.

PROBING_LISTENER_PORT
<integer>
Min- 0 , Max-65535 8002 M Y This port will be used by scp-worker listening for probing.
SIGNALLING_LISTENER_PORT
<integer>
Min- 0 , Max-65535 8080 M Y This port will be used by scp-worker listening for signaling.
scpServiceAccount <string>     O  

Service account that SCP pods will use. This can be provided by User but if left empty(or removed) a default Service Account is created by SCP for its use.

Default is empty.

Below Clusterrole and Role is needed by SCP:

ClusterRole Rules

rules:

- apiGroups: ["config.ocscp.oracle.io"]

resources: ["*"]

verbs: ["*"]

- apiGroups: ["rbac.ocscp.oracle.io"]

resources: ["*"]

verbs: ["*"]

- apiGroups: ["networking.ocscp.oracle.io"]

resources: ["*"]

verbs: ["*"]

- apiGroups: ["authentication.ocscp.oracle.io"]

resources: ["*"]

verbs: ["*"]

- apiGroups: ["apiextensions.k8s.io"]

resources: ["customresourcedefinitions"]

verbs: ["*"]

- apiGroups: ["extensions"]

resources: ["thirdpartyresources", "thirdpartyresources.extensions", "ingresses", "ingresses/status"]

verbs: ["*"]

- apiGroups: [""]

resources: ["configmaps"]

verbs: ["create", "get", "list", "watch", "update"]

- apiGroups: [""]

resources: ["endpoints", "pods", "services", "namespaces", "nodes", "secrets"]

verbs: ["get", "list", "watch"]

Role Rules:

rules:

- apiGroups:

- soothsayer.ocscp.oracle.io

resources:

- ocscp-nrfdetails

- ocscp-ruleprofiles

- ocscp-routingoptions

- ocscp-canaryreleases

- ocscp-nfprofilehashes

- ocscp-scpprofiles

- ocscp-discoveryconfigurations

- ocscp-portconfigurations

- ocscp-nfsubscriptions

- ocscp-systemoptions

- ocscp-resourcemappings

- ocscp-nfservicegroups

- ocscp-applicationconfigurations

- ocscp-mediationconfigurations

verbs: ["*"]

- apiGroups:

- networking.ocscp.oracle.io

resources:

- virtualservices

- serviceentries

- gateways

- envoyfilters

- destinationrules

verbs: ["*"]

- apiGroups: [""]

resources:

- pods

- services

verbs: ["*"]

- apiGroups:

- "" # "" indicates the core API group

resources:

- secrets

verbs:

- get

- watch

- list

nrfProfiles List of NRFs to which the current SCP instance will subscribe for notifications.
 nfType: <string>
Valid 5g NF Type as per 3GPP TS 29.510.

[]

i.e. Blank, which means subscribe for all supported NF Types.

M N Description is nfType of NRF
servingScope Region that NRF can support   O   Blank value is treated as "default" region with the condition that scpInfo also configured with Blank. Partial configuration is invalid and will not be accepted. SCP auto detect its own region based on the servingLocalities. If serving localities belong to different regions then SCP will treat it as a error and will not creating reverseProxy. This field is applicable only for NRF and if provided used in grouping NFs with same ServingScope.
nrfManagement:
      fqdn: <string>
        port: '<integer>'
        scheme: HTTP2
        priority: <integer> 
        nfServiceStatus: REGISTERED
        capacity: <integer> 
        apiPrefix: <string>
        ipEndPoints:
          - ipv4Address: <IPv4 Address>
            transport: TCP 
            port: <integer>
fqdn: Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain.

port: 0 to 65535

priority: 0 to 65535

capacity: 0 to 65535

apiPrefix: Can be combination of letters from a-z and A-Z

nfServiceStatus : status of service. Its not used by SCP but needs to be in the NF profile format with all mandatory fields.

N/A M Y fqdn: Fully Qualified Domain Name of NRF

port: NRF Management Service Port

scheme: Always HTTP2

priority: Priority of the NRF among the NRF List. It is used for load balancing between the NRFs.

capacity: Capacity of the NRF among the NRF List. It is used for load balancing between the NRFs.

apiPrefix: Location of NRF. User needs to configure it (or remove it) based on the APIPrefix supported (or not Supported) by NRF.

ipEndPoints: List of IPv4 Address, transport and port combination of the given NRF.

nrfDiscovery:
      fqdn: <string>
        port: '<integer>'
        scheme: HTTP2
        nfServiceStatus: REGISTERED
        priority: <integer> 
        capacity: <integer>
        apiPrefix: <string>
        ipEndPoints:
          - ipv4Address: <IPv4 Address>
            transport: TCP 
            port: <integer>
fqdn: Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain.

port: 0 to 65535

priority: 0 to 65535

capacity: 0 to 65535

apiPrefix: Can be combination of letters from a-z and A-Z

nfServiceStatus : status of service. Its not used by SCP but needs to be in the NF profile format with all mandatory fields.

N/A M Y fqdn: Fully Qualified Domain Name of NRF

port: NRF Management Service Port

scheme: Always HTTP2

priority: Priority of the NRF among the NRF List. It is used for load balancing between the NRFs.

capacity: Capacity of the NRF among the NRF List. It is used for load balancing between the NRFs.

apiPrefix: Location of NRF. User needs to configure it (or remove it) based on the APIPrefix supported (or not Supported) by NRF.

ipEndPoints: List of IPv4 Address, transport and port combination of the given NRF

scpc-soothsayer: Configuration specific to Soothsayer Micro Service
systemOptions
trafficPolicy:
      connectionPool:
        http:
          idleTimeout: 3600s
        tcp:
          tcpKeepalive:
            probes: 9
            time: 180s
            interval: 60s

tcpKeepalive.probes: Maximum number of keepalive probes to send without response before deciding the connection is dead.

tcpKeepalive.time: The time duration that a connection must be idle before keep-alive probes start being sent.

tcpKeepalive.interval: The time duration between keep-alive probes.

  O Y HTTP Idle timeout for upstream connections. TCP keep alive settings for upstream connections. All 3 (probe, time and interval) are required if tcpkeepalive is enabled. Following the scenarios while using these parameters:
  1. Only HTTP IdleTimeout is configured. idleTimeout must be set to a value less than kube-proxy timeout value so that before kube-proxy silently discards connection, connection gets terminated gracefully by HTTP.
  2. Only TCP keepalive is configured. TCP keepalive must be set to a value less than kube-proxy timeout value so that before kube-proxy silently discards connection, connection gets terminated by TCP RESET if no ACK is received within the defined interval.
  3. Both TCP keepalive and HTTP idleTimeout are configured. In this case idleTimeout can be more than kube-proxy timeout but TCP keepalive must be less than kube-proxy timeout. TCP keepalive keeps refreshing the connection at kube-proxy and if no HTTP request is received within the idleTimeout period, connection will get gracefully terminated by HTTP.
soothsayerDatabase
soothsayerDatabase:
    dbHost: "127.0.0.0"
    dbPort: "3306"
    poolSize: "10"
    dbSecretName: "cred"
Provide MySQL database details here for Soothsayer to connect to N/A M Y dbHost: provides the host address of ths DB for soothsayer
dbPort: provides the port address of ths DB for soothsayer.
poolSize: Defines number of concurrent connections to the database
dbSecretName: Defines database secret name.
configuration docker Image details for Configuration container of scpc-soothsayer
imageDetails:

image: soothsayer-configuration

tag: <string>

image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator

Tag: valid ASCII that may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters

N/A M Y

tag: Image Tag to be used for Configuration container

resources:
      memory: 1Gi
      cpu: 0.5
NA memory: 1Gi

cpu: 0.5

M N

memory: Requested memory (RAM) for subscription configuration container in soothsayer micro-service in Giga Bytes.

cpu: Maximum allocated vCPU for configuration container in soothsayer micro-service

serviceName: scpc-configuration
NA scpc-configuration M Y It is the service name of subscription configuration container.
logLevel: INFO
{TRACE, DEBUG, INFO, WARN, ERROR} INFO O Y Enable desired level of logging for the service
defaultTopologySource
(NRF,LOCAL) NRF O Y Used to set Topology Source globally (For all NFs)
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-configuration

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Enable node selector for Configuration Service pods
subscription docker Image details for Subscription container of scpc-soothsayer
imageDetails:
      image: soothsayer-subscription
      tag: <string>
      

image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator

Tag: valid ASCII that may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters

N/A M Y

tag: Image Tag to be used for Subscription container

resources:
      memory: 1Gi
      cpu: 1
NA memory: 1Gi

cpu: 1

M N

memory: Requested memory (RAM) for subscription container in soothsayer micro-service in Giga Bytes.

cpu: Maximum allocated vCPU for configuration container in soothsayer micro-service

serviceName: scpc-subscription
NA scpc-subscription M Y It is the service name of subscription container.
guardTime: <integer>
Min: 5 Max: 180 (in seconds) 10 sec O Y

Configure guardTime in seconds. This is the advance time before validityTimerExpiry at which subscription is initiated.

subscriptionValidityPeriod: <integer>
Min: 1 Max: 168 (in hours) 168 O   Parameter used to set the period after which a subscription gets expired.NRF may or may not accept honor this. Defaulted to 7 days i.e. 168 hours.
logLevel: INFO
{TRACE, DEBUG, INFO, WARN, ERROR} INFO O Y Enable desired level of logging for the service.
scpToRegisterWithNrfRegions
Valid Regions to be registered with or empty for no registration. [] M  

Set scpToRegisterWithNrfRegions empty/null to disable registration. Example - scpToRegisterWithNrfRegions: []

Set scpToRegisterWithNrfRegions with regions, to register the high priority NRFs in specified regions. Example - scpToRegisterWithNrfRegions: ["reg1,reg2"]

Or can be set in below format. Example -

scpToRegisterWithNrfRegions:

- reg1

- reg2

nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-configuration

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Enable node selector for Subscription pods.
notification docker Image details for Notification container of scpc-soothsayer
imageDetails:
      image: soothsayer-notification
      tag: <string>

image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator

Tag: valid ASCII that may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters

N/A M Y

tag: Image Tag to be used for Notification container

resources:
      memory: 4Gi
      cpu: 3
NA memory: 4Gi

cpu: 3

M Y

memory: Requested memory (RAM) for notification container in soothsayer micro-service in Giga Bytes.

cpu: Maximum allocated vCPU for notification container in soothsayer micro-service

serviceName: scpc-notification
NA scpc-notification M Y name of notification service
logLevel: INFO
{TRACE, DEBUG, INFO, WARN, ERROR} INFO O Y Enable desired level of logging for the service
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-configuration

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Enable node selector for notification Service pods
audit docker Image details for Audit container of scpc-soothsayer
imageDetails:
      image: soothsayer-audit
      tag: <string>
     

image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator

Tag: valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters

N/A M Y

tag: Image Tag to be used for Audit container

resources:
      memory: 1Gi
      cpu: 1
NA memory: 1Gi

cpu: 1

M Y

memory: Requested memory (RAM) for audit container in soothsayer micro-service in Giga Bytes.

cpu: Maximum allocated vCPU for audit container in soothsayer micro-service

serviceName: scpc-audit
NA scpc-audit M Y Service name for Audit service
auditInterval: 3600
Min: 1 Max: 2147483647 3600 M Y auditInterval: Time interval in seconds that user need to configure.
auditInitialRetryInterval: 2
Min: 1 Max: 2147483647 2 M Y auditInitialRetryInterval: Retry interval in seconds for which audit keeps on retrying until successful response from NRF
logLevel: INFO
{TRACE, DEBUG, INFO, WARN, ERROR} INFO O Y Enable desired level of logging for the service
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-audit

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Enable node selector for audit Service pods
configService Configuration related to Configuration container
publicConfigIPSpecified: <boolean>
true/false false O Y Option to enable/disable Loadbalancer IP configuration statically for OAM interface.
 publicConfigIP: <IPv4 Address> 
				
Valid IPV4 address as per RFC 791 N/A C Y Option to configure static Loadbalancer IP. Configured value is used only if oamloadbalanceripenabled is configured as "true".
staticnodeportenabled: <boolean>
true/false false O Y Option to enable/disable configuring static Node Port for OAM interface
 nodeport: <integer> 
				
As per kubernetes cluster, by default value is 30000 to 32767 30002 C Y Option to configure static Node Port for OAM interface. Configured value will be used only if staticnodeportenabledis configured as "true"
 configServiceNetworkNameEnabled: <boolean> 
				
true/false false O Y Option to enable/disable metalLB IP allocation dynamically from the pool for OAM interface.
configService
alpha-numeric oam C Y Configuration related to Configuration container
mergeNFServices
status: <boolean>
true/false false M Y Option to enable/disable merge NF services within a NF profile
supportedNFServices: List of strings. (example in description)
  1. Valid 5g NF Services as per 3GPP TS 29.510
  2. [] i.e. Blank, which means consider all supported NF services
  3. If not provided, all supported NF services are considered
nudm-uecm, nudm-sdm C Y

List of NF Services for which merge NF services within a NF Profile is triggered.

Format Example:

supportedNFServices: - nudm-uecm - nudm-sdm

Note: This list is considered only if above status flag is enabled.

defaultLocalityToScp
<boolean> 
				
true/false true O Y Use this flag to determine whether to consider a NF in SCP locality or outside of SCP Locality (or serving localities) in case locality information is absent in a notified NFProfile. If flag is set to true then any NFProfile received without Locality information will be considered as its in SCP's locality.
reverseProxyEnabled
<boolean>
true/false true M Y If enabled then for all the NFs which support reverseProxy, this parameter will get enabled by default. In case user wants to turn it off after deployment, then use the APIs provided to reconfigure reverseProxySupport option.

Note: This flag will set reverseProxy flag as true but other requirements of setting DbSync as Site and RoutingPolicy as Load balance needs to be done by User.

nrfServiceForAudit
nrfServiceForAudit: <string> 
				

Supported service options are:

1. nnrf-nfm

2. nnrf-disc

nnrf-nfm O Y

Configure Service to get profile from NRF. Possible values are

1. nnrf-nfm

2. nnrf-disc

User must have to use nnrf-nfm if interplmnfqdn is part of profile

scp-worker: Configuration specific to Worker Micro Service
image docker image details for scp-worker micro service
image: scp-worker
image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator N/A M Y
tag: <string>
Tag: valid ASCII that may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters N/A M Y Image Tag to be used for scp-worker micro service
jaeger Jaeger service configuration
address: <fqdn> 
				
Labels can be letter a-z, number 0-9, hyphen (-). Hyphen cannot be first character. Label combined with dot (.) forms domain N/A M Y Option to Configure Jaeger Collector FQDN
port_value: <integer>
Min: 0 Max: 65535 N/A M Y Option to Configure Jaeger Collector Port
tracingenable
<boolean>
true/false true O Y Option to enable/disable Jaeger tracing.
admin
 enablejaegerbody: <boolean> 
				
true/false false O Y Option to enable/disable tracing of full body of all Request/Response messages. The configuration will be added only if tracingenable is configured as "true".
 retrytimeoutvalue: <integer> 
				
min: 1

max: 3600

5 O Y Option to configure time to wait (in seconds) before making new requests to the upstream cluster after receiving 503 or 429 response code. This value will only be used if 'retry-after' header is not present in response.
service
port: staticnodeportenabled: <boolean>
true/false false O Y Option to enable/disable configuring static Node Port for Signaling interface
 nodeport: <integer> 
				
As per kubernetes cluster, by default is 30000 to 32767 30001 C Y Option to configure static Node Port for Signaling interface. Configured value will be used only if staticnodeportenabled is configured as "true".
 networkNameEnabled: <boolean> 
				
true/false false O Y Option to enable/disable metalLB IP allocation dynamically from the pool for Signaling interface.
networkName:
				  metallb.universe.tf/address-pool:<string> 
				
alpha-numeric signaling C Y Annotation to notify metalLB to allocate an IP for Signaling interface of SCP. The annotation is added only if networkNameEnabled is configured as "true". <TODO> Need few more updates after testing.
loglevel
<string> 
				
trace/debug/info/warning warning O Y Option to increase/decrease Logging level of scp-worker micro-service.
prometheus
scrape: <boolean> 
				
true/false true O Y Option to enable/disable Prometheus metrics scraping.
resources Initial requested Resource quota for scp-worker micro-service.
memory: 8Gi 
				
NA 4096Mi M N Requested memory (RAM) for scp-worker micro-service in Mega Bytes.
cpu: 4 
				
NA 4000m M N Requested CPU for scp-worker micro-service in milliCPU.
limits Maximum allocated Resource quota for scp-worker micro-service.
 memory: 4Gi 
				
NA 4Gi M N Maximum allocated memory (RAM) for scp-worker micro-service in Mega Bytes.
 cpu: 4 
				
NA 4 M N Maximum allocated CPU for scp-worker micro-service in milliCPU.
minreplicas
 <integer> 
				
1 1 M N Minimum replica count of scp-worker micro-service.
maxreplicas
 <integer> 
				
Min: 1 Max: 4 4 M Y Maximum replica count of scp-worker micro-service.
nodeSelector
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-worker

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Configuration to apply nodeSelector to SCP-Worker pods.
heapoverloadcontrol: SCP memory overload control configuration
refresh_interval:
  seconds: 0
  nanos: 250000000
NA N/A O N Refresh Interval (250 milliseconds) to check memory Overload condition
resource_monitors:
  max_heap_size_bytes: 4294967296 
NA N/A O N Maximum configured heap size for scp-worker micro-service (4GB)
 actions: stop_accepting_requests: <%age in decimal
				  value> 
				
Min: 0 Max: 1 0.70 O Y Option to configure threshold percentage at which SCP will stop accepting new requests.
stop_accepting_connections: <%age in decimal value> 
				
Min: 0 Max: 1 0.75 O Y Option to configure threshold percentage at which SCP will stop accepting new connections. This percentage should be always greater than the percentage configured for stop_accepting_requests
shrink_heap:<%age in decimal value> 
				
Min: 0 Max: 1 0.70 O Y Option to configure threshold percentage at which SCP will start freeing unused memory blocks. This percentage should be always minimum of threshold configured for stop_accepting_requests and stop_accepting_connections
downstream       O Y Options for downstream peers
 
idleTimeout
  3600 (in seconds) O Y

The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection is closed. Refer to the scenarios/recommendations mentioned in systemOptions under scpc-soothsayer for more details.

Note: The request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.

 
tcpKeepalive:
      probes: <integer>
      time: <integer>
      interval: <integer>
tcpKeepalive: Enables TCP keep alive.

tcpKeepalive.probes - Maximum number of keepalive probes to send without response before deciding the connection is dead

tcpKeepalive.time - The time duration that a connection must be idle before keep-alive probes start being sent.

tcpKeepalive.interval- The time duration between keep-alive probes.

tcpKeepalive.probes -9 # linux default

tcpKeepalive.time - 180 (in seconds)

tcpKeepalive.interval- 60 (in seconds)

tcpKeepalive- O

tcpKeepalive.probes- M. if tcpKeepalive is set.

tcpKeepalive.time - M. if tcpKeepalive is set.

tcpKeepalive.interval- M. if tcpKeepalive is set.

Y Set tcpKeepalive attribute to enable TCP Keepalives.
scpc-pilot: Configuration specific to Pilot Micro Service
image docker image details for scpc-pilot micro service
 image: <docker repository>/scpc-pilot
image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator N/A M Y docker repository that contains scpc-pilot micro service image
 tag: <string> 
				
Tag: valid ASCII that may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters N/A M Y Image Tag to be used for scpc-pilot micro service
enableTracing
<Boolean> 
				
true/false True O Y Option to enable/disable tracing request.
minreplicas
 <integer> 
				
1 1 M N Minimum replica count of scp-pilot micro-service.
maxreplicas
 <integer> 
				
Min: 1 Max: 4 4 M Y Maximum replica count of scp-pilot micro-service.
nodeSelector
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-pilot

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Configuration to apply nodeSelector to SCP-pilot pods.
resources
 memory: 6Gi 
				
NA 6Gi M N Requested memory (RAM) for scp-pilot micro-service in Mega Bytes.
cpu: 4 
				
NA 4 M N Requested CPU for scp-pilot micro-service in milliCPU.
logOutputLevel
"<Module:level>,<Module:level>,...." 
				
Supported Modules: ads, default, mcp, model, rbac

Supported Level: debug, info, warn, error, fatal, none

"default:info" O Y Option to increase/decrease scpc-pilot log level.
logStacktraceLevel
"<Module:level>,<Module:level>,...." 
				
Supported Modules: ads, default, mcp, model, rbac

Supported Level: debug, info, warn, error, fatal, none

"default:none" O Y Option to increase/decrease scpc-pilot Stack Trace level.
traceSampling
 <integer or float> 
				
0.0 to 100.0 with a precision of 0.01 1 O Y

Option to set the sampling rate for Jaeger traces (e.g 1 means 1% of traffic passing through scp-w will get traced.)

If traceSampling is omitted, it will be taken as 1.

scp-apps: Configuration specific to SDS Database Micro Service
imageDetails
image: <docker repository>/scp-db-app
image: Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator N/A M Y docker repository that contains scp-db-app micro service image.
 tag: <string> 
				
Tag: valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters N/A M Y Image Tag to be used for scpc-pilot micro service
dbServiceEndpoint
primary:
  host: <String>, can be <IPv4 Address> or Fqdn (MYSQL Primary DB Service Endpoint host)
  port: <String>,  can be port value (MYSQL Secondary DB Service Endpoint port)

primary: EndPoint details for primary DB

host: Valid IPV4 address as per RFC 791 or Valid FQDN

port: valid port value

host: 127.0.0.0

port: 3306

O Y Mysql database server Endpoint information for Primary DB
secondary:
  host: <String>, can be <IPv4 Address> or Fqdn (MYSQL Secondary DB Service Endpoint host)
  port: <String>,  can be port value (MYSQL Secondary DB Service Endpoint port)

secondary: EndPoint details for secondary DB

host: Valid IPV4 address as per RFC 791 or Valid FQDN

port: valid port value

host: 127.0.0.0

port: 3306

O Y

Mysql database server Endpoint information for Secondary DB

dbSecretName
<String>
N/A cred M Y Mysql database secret name information
poolSize
 <integer> 
				
N/A 10 M Y Defines number of concurrent connections to Mysql database
logLevel
<String>
TRACE/DEBUG/INFO/WARNING INFO O Y Option to increase/decrease Logging level of scp-sds micro-service.
resources
memory: 2048Mi N/A 2Gi M N Requested memory (RAM) for scp-sds micro-service in Mega Bytes
cpu: 3 N/A 3 M N Requested CPU for scp-sds micro-service in milliCPU
minreplicas
 <integer> 
				
Min: 1 1 M Y Minimum replica count of scp-worker micro-service
maxreplicas
 <integer> 
				
Max: 4 4 M Y Maximum replica count of scp-worker micro-service
nodeSelector
nodeSelector:
 nodeKey: ocscp
 nodeValue: scpc-apps

nodeSelector: Use this configuration to apply nodeSelector to Configuration service pods

nodeKey: Key of the node label

nodeValue: Value of the node label

N/A O Y Configuration to apply nodeSelector to SCP-Apps pods
targetcpuutilpercent
 <integer> 
				
Min:50 Max:100 50 M Y Defines Auto Scalar for pod. If CPU utilization increase above configured value, kubernetes increase replica count

Note:

By default, the sampling rate of jaeger tracing is 1%. If the user wants to increase it then use the below tag at same level as 'resources' under 'scpc-pilot' section.

traceSampling: <% user wants sampling rate to be>

Example: traceSampling: 10

Logging level

The description of each logging level is as mentioned below:

Table 3-2 Logging level

Logging Level Description
ALL All levels including custom levels.
DEBUG Designates fine-grained informational events that are most useful to debug an application.
INFO Designates informational messages that highlight the progress of the application at coarse-grained level.
WARN Designates potentially harmful situations.
ERROR Designates error events that might still allow the application to continue running.
FATAL Designates very severe error events that will presumably lead the application to abort.
OFF The highest possible rank and is intended to turn off logging.
TRACE Designates finer-grained informational events than the DEBUG.