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 <registry-url>

Data Type: 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.
Data Type: 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 are listed here for automatic service account creation.

Data Type: 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.

Data Type: 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 Kubernetes resources that will be created by OCCM helm chart.
Data Type: 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 Kubernetes resources that will be created by OCCM helm chart.
Data Type: String

Range: Custom annotations that need to be added to all the OCCM Kubernetes 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.
Data Type: 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.
Data Type: String

Range: Custom annotations that need 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.
Data Type: 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.

For example:

oracle.com/cnc: "true"`

oracle.com.cnc/egress-network: oam
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.

Data Type: 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.
Data Type: 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.
Data Type: Integer

Range:

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

Default Value: 50Mi

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

It limits the criticalStorage (ephemeral storage) to be used by the helm test pod.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: String

Range: NF Name

Default Value: OCCM

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

Image name for the helm test container image.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: String

Range: 1-300 seconds

Default Value: 240

global.test.resources This is a mandatory parameter.

The mentioned Kubernetes resources are logged in Helm test.
Data Type:(List) String

Range:

It 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.
Data Type: Boolean

Range: True or False

Default Value: True

global.extraContainers This is a mandatory parameter.

To enable or disable the debug tools container.
Data Type: enum

Range:DISABLED, ENABLED

Default Value: DISABLED

global.debugToolContainerMemoryLimit This is a mandatory parameter.

Debug tool container memory limit.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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.

Data Type: 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.
Data Type: 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.

Data Type: 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.
Data Type: 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.
Data Type: 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.
Data Type: 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).
Data Type: 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)
Data Type: 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 the user wants to see application level logs.

Data Type: String

Range: WARN, DEBUG, INFO, TRACE etc.

Default value: INFO

log.level.root This is a mandatory parameter.

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

Data Type: String

Default value: ERROR

log.level.helidonFramework This is a mandatory parameter.

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

Data Type: String

Default value: ERROR

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

Data Type: boolean

Default Value: false

Range: True or false

occmConfig.cmp.config.extractCertChainFromCmpResponse This field, when set to true, specifies that certificate 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.

Data Type: boolean

Default Value: true

Range: True or false

occmConfig.cmp.config.tls.enableX509StrictCheck This is an optional parameter.

This field, when set to true, "-x509_strict" will be included in openssl cmp cmd for strict checking of the X.509 certificates.

Data Type: boolean

Default Value: true

Range: True or false

occmConfig.cmp.config.tls.ignoreCriticalExtensionsCheck This is an optional parameter.

This field, when set to true, "-ignore_critical" will be included in openssl cmp cmd for checking of X.509 certificate critical extensions.

Data Type: boolean

Default Value: false

Range: True or false

occmConfig.cmp.config.tls.minProtocol This is an optional field.

This fields sets the minimum supported TLS version.

Data Type: String

Default Value: TLSv1.2

occmConfig.cmp.config.tls.tlsNamedGroups This is an optional field.

This is equivalent to Groups in openssl. This sets the supported groups. For clients, the groups are set using the supported groups extension.

The value must be colon separated groups.

Data Type: String

Default Value: P-256:P-384:P-521:X25519:X448

occmConfig.cmp.config.tls.cipherStrings This is an optional field.

This field sets the available ciphers for TLSv1.2 and below. The value should be colon separated ciphers.

Data Type: String

Default Value:

ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:\

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:\

ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES128-CCM

occmConfig.cmp.config.tls.cipherSuites This is an optional field.

This field sets the available cipher suites for TLSv1.3. The value should be colon separated ciphers.

Data Type: String

Default Value: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_CCM_SHA256

occmConfig.cmp.config.tls.clientSignatureSchemes This is an optional field.

This is equivalent to SignatureAlgorithms in openssl. This sets the supported signature algorithms for TLSv1.2 and TLSv1.3. The value should be colon separated signature schemes.

Data Type: String

Default Value:

ecdsa_secp384r1_sha384:ecdsa_secp256r1_sha256:ed448:ed25519:rsa_pss_rsae_sha512:\

rsa_pss_rsae_sha384:rsa_pss_rsae_sha256:rsa_pss_pss_sha512:rsa_pss_pss_sha384:\

rsa_pss_pss_sha256:rsa_pkcs1_sha512:rsa_pkcs1_sha384:rsa_pkcs1_sha256

occmConfig.cmp.config.extractCertChainFromCmpResponse This is an optional parameter.

This field, when set true, specifies that the certficate chain will be extracted from CA's CMP response message.

Data Type: boolean

Default Value: true

occmConfig.k8sSecretMonitoring This is an optional parameter.

This field, when set true, specifies that secret monitoring feature is enabled.

Data Type: boolean

Default Value: true