3 Customizing OCCM

This chapter provides information about customizing OCCM deployment in a cloud native environment.

The OCCM deployment is customized by overriding the default values of various configurable parameters in the occm_custom_values_<version>.yaml file.

Perform the following steps to customize the custom yaml files :

  1. Use the custom values and templates delivered as part of the package. For more information on how to download the package from MOS, see Downloading the OCCM Package section.
  2. Customize the appropriate custom value file.
  3. Save the updated files.

Note:

  • All parameters mentioned as mandatory must be present in custom-values.yaml file.
  • All fixed value parameters listed must be present in the custom values yaml file with the exact values as specified in this section.
  • For installing OCCM in an existing NF deployment, see the 'Introducing OCCM in an Existing NF Deployment' section in the Oracle Communications Cloud Native Core, Certificate Management User Guide.

3.1 Configuration Options

Table 3-1 Configuration Options

Parameter Description Details
global.dockerRegistry

This is a mandatory parameter.

Here user provides the registry that contains OCCM images.

It comprises of the following:

<registry-url>

DataType: String

Range: It may contain lowercase letters, digits, and separators. A separator is defined as a period, one or two underscores, or one or more dashes.

Default Value:cgbu-occm-dev-docker.dockerhub-iad.oci.oraclecorp.com
global.serviceAccountName This is an optional parameter.

Name of service account.

If this field is kept empty then a default service account with release name will be auto created. If any value is provided then a custom service account has to be created manually before deployment.
DataType: String

Range: Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters.

global.occmAccessedNamespaces

This is an optional field.

In case of OCCM multiple namespace support namespaces to be listed here for automatic service account creation.

DataType: <List[String]>

Default Value: NA

Range: Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters

global.customExtension

This is an optional field.

custom extension to include custom labels and annotation

DataType: String

Default Value: NA

Range: Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters

global.customExtension.allResources.labels This is an optional parameter.

This can be used to add custom label(s) to all k8s resources that will be created by OCCM helm chart.
DataType: String

Range: Custom Labels that need to be added to all the OCCM kubernetes resources

global.customExtension.allResources.annotations This is an optional parameter.

This can be used to add custom annotation(s) to all k8s resources that will be created by OCCM helm chart.
DataType: String

Range: Custom Annotations that need to be added to all the OCCM k8s resources
global.customExtension.nonlbServices.labels This is an optional parameter.

This can be used to add custom label(s) to all non-Load Balancer Type Services that will be created by OCCM helm chart.
DataType: String

Range: Custom Labels that need to be added to OCCM that are considered as not Load Balancer type

global.customExtension.nonlbServices.annotations This is an optional parameter.

This can be used to add custom annotation(s) to all non-Load Balancer Type Services that will be created by OCCM helm chart.
DataType: String

Range: Custom Annotations that needs to be added to OCCM that are considered as not Load Balancer type

global.customExtension.nonlbDeployments.labels This is an optional parameter.

This can be used to add custom label(s) to all Deployments that will be created by OCCM helm chart which are associated to a Service which if not of Load Balancer Type.
DataType: String

Range: Custom Labels that need to be added to OCCM Deployments that are associated to a Service which is not of Load Balancer type
global.customExtension.nonlbDeployments.annotations This is an optional parameter.

This can be used to add custom annotation(s) to all Deployments that will be created by OCCM helm chart which are associated to a Service which if not of Load Balancer Type.

Example:

oracle.com/cnc: "true"`

oracle.com.cnc/egress-network: oam
DataType: String

Range: Custom Annotations that need to be added to OCCM Deployments that are associated to a Service which is not of Load Balancer type
global.ephemeralStorage.limits.containersLogStorage This is a mandatory parameter.

Set value for Ephemeral Storage Limits
DataType: Integer

Range:

It can take values in integer that is further used in MBs

Default Value: 1000

global.ephemeralStorage.limits.containersCriticalStorage This is a mandatory parameter.

Set value for Ephemeral Storage Limits
DataType: Integer

Range:

It can take values in integer that is further used in MBs

Default Value: 2

global.ephemeralStorage.requests.containersLogStorage This is a mandatory parameter.

Set value for Ephemeral Storage Requests
DataType: Integer

Range:

It can take values in integer that is further used in MBs

Default Value: 50

global.ephemeralStorage.requests.containersCriticalStorage This is a mandatory parameter.

Set value for Ephemeral Storage Requests
DataType: Integer

Range:

It can take values in integer that is further used in MBs

Default Value: 2

global.hookJobResources.limit.cpu This is an optional parameter.

It limits the number of CPUs to be used by the helm test pod.

DataType: Integer

Range:

Valid Integer value allowed.

Default Value: 0.5

global.hookJobResources.limit.memory This is an optional parameter.

It limits the memory to be used by the helm test pod.
DataType: Integer

Range:

Valid Integer value followed by Mi/Gi etc.

Default Value: 0.5Gi

global.hookJobResources.limit.logStorage This is an optional parameter.

It limits the logStorage (ephemeral storage) to be used by the helm test pod.
DataType: Integer

Range:

Values will be set by global.ephemeralStorage.requests.containerLogStorage

Default Value: 50Mi

global.hookJobResources.limit.criticlStorage This is an optional parameter.

It limits the criticlStorage (ephemeral storage) to be used by the helm test pod.
DataType: Integer

Range:

Values will be set by global.ephemeralStorage.limits.containersCrititcalStorage

Default Value: 2

global.hookJobResources.request.cpu This is an optional parameter.

It requests the number of CPUs to be used by the helm test pod.
DataType: Integer

Range: Valid Integer value allowed.

Default Value: 0.5

global.hookJobResources.request.memory This is an optional parameter.

It requests the memory to be used by the helm test pod.
DataType: Integer

Range: Valid Integer value followed by Mi/Gi etc.

Default Value: 0.5Gi

global.hookJobResources.request.logStorage This is an optional parameter.

It requests the logStorage (ephemeral storage) to be used by the helm test pod.
DataType: Integer

Range: Values will be set by global.ephemeralStorage.requests.containerLogStorage

Default Value: 50Mi

global.hookJobResources.request.criticlStorage This is an optional parameter.

It requests the criticlStorage (ephemeral storage) to be used by the helm test pod.
DataType: Integer

Range: Values will be set by global.ephemeralStorage.limits.containersCrititcalStorage

Default Value: 2

global.k8sResource.container.prefix This is an optional parameter.

This value will be used to prefix to all the container names of OCCM.
DataType: String

Range: Value that will be prefixed to all the container names of Ingress Gateway.
global.k8sResource.container.suffix This is an optional parameter.

This value will be used to suffix to all the container names of OCCM.
DataType: String

Range: Value that will be suffixed to all the container names of Ingress Gateway.
global.helmTestServiceAccountName This is an optional parameter.

For helm test execution preference goes to global.helmTestServiceAccountName first, if this is not available then global.serviceAccountName will be referred. If both of these are missing then default service account will be created and used.
DataType: String

Range: Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters
global.test.nfName This is a mandatory parameter.

Name of deployment for which helm test is done
DataType: String

Range: NF Name

Default Value: OCCM

global.test.image.name This is a mandatory parameter.

Image name for the helm test container image
DataType: String

Range:

Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters

Default Value: OCCM

global.test.image.tag This is a mandatory parameter.

Image version tag for helm test.
DataType: String

Range: Valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. An image name may not start with a period or a dash and may contain a maximum of 128 characters
global.test.image.imagePullPolicy This is an optional parameter.

Pull Policy decides from where to pull the image.
DataType: String

Range:

It can take a value from the following:

IfNotPresent, Always, Never

IfNotPresent is the default pullPolicy

global.test.config.logLevel This is a mandatory parameter.

Pull Policy decides from where to pull the image.
DataType: String

Range: WARN, DEBUG, INFO, etc.

Default Value: Info

global.test.config.timeout This is a mandatory parameter.

Timeout value for the helm test operation. If exceeded helm test will be considered as failure
DataType: String

Range: 1-300 seconds

Default Value: 240

global.test.resources This is a mandatory parameter.

which ever kubernetes resource are mentioned, will be logged in helm test.
DataType:(List) String

Range:

t takes resources and its version in the form of <resource_name>/<max_version_supportedbyNF>

- horizontalpodautoscalers/v1

- deployments/v1

- serviceaccounts/v1

- roles/v1

- services/v1

- rolebindings/v1

global.test.complianceEnable This is a mandatory parameter.

It will enable or disable helm test resource logging
DataType: Boolean

Range: True or False

Default Value: True

global.extraContainers This is a mandatory parameter.

To enable or disable the debug tools container.
DataType: enum

Range:DISABLED, ENABLED

Default Value: DISABLED

global.debugToolContainerMemoryLimit This is a mandatory parameter.

Debug tool container memory limit
DataType: String

Range: Valid Integer value followed by Mi/Gi etc.

Default Value: debug-tools-dir

global.extraContainersVolumesTpl This is a mandatory parameter.

Debug tool extra container volume details
DataType: String

Range: It may contain lowercase letters, digits, and separators. A separator is defined as a period, one or two underscores, or one or more dashes.

Default Value: 4Gi

global.extraContainersTpl This is a mandatory parameter.

Debug tool extra container command details
DataType: String

Range: It may contain lowercase letters, digits, and separators. A separator is defined as a period, one or two underscores, or one or more dashes.
image.tag This is a mandatory parameter.

Image Tag to be used for OCCM
DataType: enum

Range: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

Default Value: DISABLED

image.name This is a mandatory parameter.

It is the image name of the OCCM
DataType: String

Range: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
image.pullPolicy This is an optional parameter.

Pull Policy decides from where to pull the image.
DataType: String

Range:

It can take a value from the following:

IfNotPresent, Always, Never

IfNotPresent is the default pullPolicy

ports.containerPort This is a mandatory parameter.

It is the http port of the container for the OCCM
DataType: Integer

Range: 0-65535.

Default value: 8989

ports.actuatorPort This is a mandatory parameter.

It is the actuator port of the container for the OCCM.
DataType: Integer

Range:0-65535

Default value: 9000

ports.servicePort This is a mandatory parameter.

It is the service port of the container for the OCCM.
DataType: Integer

Range:0-65535

Default value: 8989

deployment.livenessProbe.initialDelaySeconds This is an optional parameter.

It specifies that the kubelet should perform a liveness probe every xx seconds
DataType: Integer

Range:0-65535

Default value: 60

deployment.livenessProbe.periodSeconds This is an optional parameter.

It specifies that the kubelet should perform a liveness probe every xx seconds
DataType: Integer

Range:0-65535

Default value: 3

deployment.livenessProbe.timeoutSeconds This is an optional parameter.

It is the number of seconds after which the probe times out
DataType: Integer

Range:0-65535

Default value: 15

deployment.livenessProbe.successThreshold This is an optional parameter.

Minimum consecutive successes for the probe to be considered successful after having failed
DataType: Integer

Range:0-65535

Default value: 1

deployment.livenessProbe.failureThreshold This is an optional parameter.

When a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up
DataType: Integer

Range:0-65535

Default value: 3

deployment.readinessProbe.initialDelaySeconds This is an optional parameter.

It tells the kubelet that it should wait second before performing the first probe
DataType: Integer

Range:0-65535

Default value: 20

deployment.readinessProbe.timeoutSeconds This is an optional parameter.

It is the number of seconds after which the probe times out
DataType: Integer

Range:0-65535

Default value: 3

deployment.readinessProbe.periodSeconds This is an optional parameter.

It specifies that the kubelet should perform a liveness probe every xx seconds
DataType: Integer

Range:0-65535

Default value: 10

deployment.readinessProbe.successThreshold This is an optional parameter.

Minimum consecutive successes for the probe to be considered successful after having failed
DataType: Integer

Range:0-65535

Default value: 1

deployment.readinessProbe.failureThreshold This is an optional parameter.

When a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up
DataType: Integer

Range:0-65535

Default value: 3

resources.limits.cpu This is an optional parameter.

It limits the number of CPUs to be used by the OCCM.

DataType: Float Range:Valid floating point value between 0 and 1

Default Value: 2

resources.limits.memory This is an optional parameter.

It limits the memory utilization by the microservice.
DataType: String

Range:Valid Integer value followed by Mi/Gi etc.

Default value: 2Gi

resources.limits.logStorage This is a mandatory parameter.

It limits the logStorage (ephemeral storage) to be used by the helm test pod.

DataType: Integer

Range:Values will be set by global.ephemeralStorage.limits.containersLogStorage

Default value: 1000

resources.limits.criticalStorage This is a mandatory parameter.

It limits the criticalStorage (ephemeral storage) to be used by the helm test pod.
DataType: Integer

Range:Values will be set by global.ephemeralStorage.limits.containersCrititcalStorage

Default value: 2

resources.requests.cpu This is a mandatory parameter.

The minimum amount of CPUs required
DataType: String

Range:Valid floating point value between 0 and 1

Default value: 1

resources.requests.memory This is a mandatory parameter.

The minimum amount of memory required
DataType: String

Range: Valid Integer value followed by Mi/Gi etc.

Default value: 1Gi

resources.requests.logStorage This is a mandatory parameter.

The minimum amount of logStorage (ephemeral storage)
DataType: Integer

Range:Values will be set by global.ephemeralStorage.requests.containerLogStorage

Default value: 50

resources.requests.criticalStorage This is a mandatory parameter.

The minimum amount of criticalStorage (ephemeral storage)
DataType: Integer

Range:Values will be set by global.ephemeralStorage.requests.containerCrititcalStorage

Default value: 2

log.level.occm This is a mandatory parameter.

It is the level at which user wants to see the logs.

DataType: String

Range: WARN, DEBUG, INFO, TRACE etc.

Default value: INFO

occmConfig.cmp.config.useKurOldCertMode This field when set true specifies that OCCM key and cert will be used to sign the CMP request message. When set to false, old certificate is used as the signer cert.

DataType: boolean

Default Value: false

Range:Either true or false

occmConfig.cmp.config.extractCertChainFromCmpResponse This field when set true specifies that certficate chain will be extracted from CA's CMP response message. In case, the CA doesn't send the chain, operator has the flexibility to manually configure it after setting the field to false.

DataType: boolean

Default Value: true

Range:Either true or false