# Common configuration

Use this page to understand shared configuration fields that can apply across Ripple Custody components. The example shows one possible arrangement of common settings; your image pull behavior, security context, probes, and resource policy depend on your deployment.

This page applies to on-premise deployments only. For current defaults and the full supported schema, use the configuration packaged with your release.

## What this config controls

The `common` section defines shared defaults such as image pull secrets, security context, health probes, ingress annotations, and shared environment variable sources. Other shared settings, such as logging and resource request behavior, are configured under `harmonize`.

## Configuration fields

### Image pull settings

Location: `common`

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `imagePullSecrets` | array | `[]` | List of Kubernetes secrets for pulling images. |
| `image.pullPolicy` | string | `Always` | Image pull policy. Possible values: `Always`, `IfNotPresent`, `Never`. |


Image pull policy behavior:

| Policy | Behavior |
|  --- | --- |
| `Always` | Always pulls the image, even if a local copy exists. |
| `IfNotPresent` | Uses the local image if available and pulls only when missing. |
| `Never` | Never pulls images. Images must already be available on the node. |


### Security context

Location: `common.securityContext` and `common.podSecurityContext`

Container security context:

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `runAsNonRoot` | boolean | `true` | Require containers to run as a non-root user. |
| `runAsUser` | integer | `1001` | User ID to run the container as. |
| `runAsGroup` | integer | `1001` | Group ID to run the container as. |
| `readOnlyRootFilesystem` | boolean | `true` | Mount root filesystem as read-only. |


Pod security context:

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `fsGroup` | integer | `1001` | Group ID for volume file system ownership. |
| `fsGroupChangePolicy` | string | `OnRootMismatch` | When Kubernetes changes file system group ownership. |


### Health probes

Location: `common.probes`

| Probe type | Parameter | Default | Description |
|  --- | --- | --- | --- |
| Liveness | `initialDelaySeconds` | `150` | Seconds before the first liveness probe. |
| Liveness | `timeoutSeconds` | `60` | Probe timeout. |
| Liveness | `failureThreshold` | `10` | Failures before restart. |
| Startup | `initialDelaySeconds` | `120` | Seconds before the first startup probe. |
| Startup | `failureThreshold` | `30` | Failures before marking startup unhealthy. |
| Readiness | `initialDelaySeconds` | `120` | Seconds before the first readiness probe. |
| Readiness | `timeoutSeconds` | `60` | Probe timeout. |
| Readiness | `failureThreshold` | `10` | Failures before marking unready. |


### Ingress settings

Location: `common.ingress.main`

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `annotations` | object | `{}` | Additional ingress annotations. |
| `labels` | object | `{}` | Additional ingress labels. |
| `ingressClassName` | string | `nil` | Ingress class name, such as `nginx`. |


### Environment configuration

Location: `common.envFrom`

Use `envFrom` to inject shared environment variables into components from Kubernetes ConfigMaps or Secrets.

### Service links

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `enableServiceLinks` | boolean | `false` | Enable Kubernetes service environment variables. |


Setting `enableServiceLinks: false` reduces the number of automatically injected service environment variables.

## Logging configuration

Location: `harmonize.logging`

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `logLevel` | string | `info` | Default log level for components. Possible values: `trace`, `debug`, `info`, `warning`, `error`, `fatal`. |


Supported log levels:

| Level | Description |
|  --- | --- |
| `trace` | Most verbose; includes detailed diagnostic information. |
| `debug` | Debugging information. |
| `info` | General operational information. |
| `warning` | Warning conditions that may require attention. |
| `error` | Error conditions that affect functionality. |
| `fatal` | Critical errors that cause component failure. |


## Resource request behavior

Location: `harmonize.resources`

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `set_requests_with_limit_values.cpu` | boolean | `false` | Set CPU requests equal to CPU limits. |
| `set_requests_with_limit_values.memory` | boolean | `false` | Set memory requests equal to memory limits. |


Behavior:

- When set to `false`, resource requests use smaller values, allowing more flexible scheduling.
- When set to `true`, resource requests are set equal to limits, which increases reserved resources for the pod.


## Component selection

Location: `harmonize.included_components`

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `included_components` | array | `[]` | List of components to install. An empty list means all components. |


Selective installation requires understanding component dependencies. Consult your Ripple Customer Platform Engineer if you are unsure which components your deployment requires.

## Example

This example shows common shared settings in one deployment values file:


```yaml
common:
  imagePullSecrets:
    - name: registry-secret
  image:
    pullPolicy: IfNotPresent

  securityContext:
    runAsNonRoot: true
    runAsUser: 1001
    runAsGroup: 1001
    readOnlyRootFilesystem: true

  podSecurityContext:
    fsGroup: 1001
    fsGroupChangePolicy: OnRootMismatch

  probes:
    liveness:
      initialDelaySeconds: 150
      timeoutSeconds: 60
      failureThreshold: 10
    startup:
      initialDelaySeconds: 120
      failureThreshold: 30
    readiness:
      initialDelaySeconds: 120
      timeoutSeconds: 60
      failureThreshold: 10

  ingress:
    main:
      annotations:
        kubernetes.io/ingress.class: nginx
      ingressClassName: nginx

harmonize:
  logging:
    logLevel: info
  resources:
    set_requests_with_limit_values:
      cpu: false
      memory: false
  included_components: []
```

## Related topics

- [Container registry configuration](/products/custody/deployment/reference/repository)
- [Telemetry configuration](/products/custody/deployment/reference/telemetry-configuration)
- [Networking configuration](/products/custody/deployment/reference/networking)