> ## Documentation Index
> Fetch the complete documentation index at: https://docs.controlplane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Settings

> Configure BYOK agent settings via the Control Plane API or the cpln-byok-current configmap for self-managed Kubernetes clusters.

If this CPLN Platform Location is created from the Managed kubernetes CPLN PLatform Add-on then all these settings can be adjusted in the Control Plane api. See [CPLN Platform Add-on](/mk8s/add-ons/byok) for information about where to adjust the settings.

If this Kubernetes cluster is not managed by Control Plane, then the configmap `cpln-byok-current` in the `kube-system` namespace can be used to adjust these options.

You can read the default values in the configmap by running this kubectl command against the cluster:

`kubectl get configmap -n kube-system cpln-byok-default -o yaml`

## Usage

To modify the configuration, update the configmap `cpln-byok-current` in the `kube-system` namespace.

Its recommended to store settings in a git repo or CI system so that they can be applied automatically for each new cluster.

## Example cpln-byok-default configmap

```json theme={null}
{
  "actuator": {
    "minCpu": "50m",
    "maxCpu": "1001m",
    "minMemory": "200Mi",
    "maxMemory": "500Mi",
    "logLevel": "info",
    "env": {
      "CACHE_PERIOD_DATA_SERVICE": "600",
      "LABEL_NODES": "false"
    }
  },
  "common": {
    "pdb": {
      "minAvailable": 0
    }
  },
  "internalDns": {
    "minCpu": "1m",
    "maxCpu": "1001m",
    "minMemory": "100Mi",
    "maxMemory": "512Mi"
  },
  "istio": {
    "istiod": {
      "replicas": 1,
      "maxCpu": "1001m",
      "minMemory": "100Mi",
      "maxMemory": "2500Mi",
      "pdb": 0
    }
  },
  "logSplitter": {
    "minCpu": "1m",
    "maxCpu": "200m",
    "minMemory": "10Mi",
    "maxMemory": "256Mi",
    "memBufferSize": "128M",
    "perPodRate": 10000
  },
  "monitoring": {
    "minMemory": "100Mi"
  },
  "redis": {
    "minCpu": "10m",
    "maxCpu": "2001m",
    "minMemory": "100Mi",
    "maxMemory": "1000Mi",
    "storage": "8Gi"
  },
  "middlebox": {
    "enabled": true
  }
}
```

## General Configurations

Common configuration settings that may be available for each component, check the `cpln-byok-default` configmap for availability.

| Property         | Type           | Description                                                    |
| :--------------- | :------------- | :------------------------------------------------------------- |
| minCpu           | string         | Minimum CPU allocation                                         |
| maxCpu           | string         | Maximum CPU allocation                                         |
| minMemory        | string         | Minimum memory allocation                                      |
| maxMemory        | string         | Maximum memory allocation                                      |
| logLevel         | string         | Logging level for the actuator                                 |
| env              | key: string\[] | Optional environment variables for the component               |
| targetPercent    | number         | Target percentage for Horizontal CPU autoscaling               |
| pdb.minAvailable | number         | Minimum number of available pods for the pod disruption budget |
| replicas         | number         | Number of replicas                                             |

## Additional Options

### Actuator

Actuator is responsible for syncing the configuration between the Control Plane API and the cluster.
It has several environment variables that will control its behavior.

[Actuator Settings](/byok/settings/actuator)

### Log Splitter

Configuration for component that forwards logs for workloads to Control Plane.

| Property      | Type   | Description                                           |
| :------------ | :----- | :---------------------------------------------------- |
| memBufferSize | string | Memory buffer size                                    |
| perPodRate    | number | Max log records per second before rate limit; per pod |

### Redis

Configuration for a Redis instance that is used by Control Plane.

| Property | Type   | Description                                                                                  |
| :------- | :----- | :------------------------------------------------------------------------------------------- |
| storage  | string | Storage allocation for Redis in kubernetes storage capacity format. examples: `1Gi`, `500Mi` |

### Middlebox

Configuration for Middlebox, required for the [Cloud Wormhole agent](/reference/agent) to work with BYOK location.

| Property        | Type    | Description                                                                                                                                                                               |
| :-------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| enabled         | boolean | Required. `true` or `false`                                                                                                                                                               |
| ip              | string  | Optional. For cloud platform that do not support UDP type Load Balancers                                                                                                                  |
| port            | number  | Optional. To change the default (51820) port.                                                                                                                                             |
| ingressReplicas | number  | Optional. Required for the agent [reverse HTTP proxy](/reference/agent#bi-directional-functionality). Set greater than `0` to enable inbound access from allowed agents. Defaults to `0`. |
