For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuring Compute Resources

Configure Kubernetes CPU and memory requests and limits for Connectware components and Connectware agents.

Kubernetes uses compute resource requests to schedule workloads onto nodes with sufficient capacity, and limits to cap how much a workload can consume. Configure requests and limits for both the components deployed with the connectware Helm chart and the agents deployed with the connectware-agent Helm chart.

By default, Connectware is configured with requests only and no limits, which allows it to burst and use available node resources when needed. Required resources depend heavily on the protocols, services, message rates, and payload sizes in your deployment. Monitor actual resource usage and adjust these values accordingly. For guidance on measuring usage and identifying bottlenecks, see Right-Sizing Kubernetes Resources for Connectware.

Configuration Values

The following Helm value controls compute resources. Set it per component in the connectware Helm chart, or per agent in the connectware-agent Helm chart, to override the chart's defaults.

Helm chart
Value
Description

connectware

<component>.resources.requests.cpu

CPU the scheduler reserves for the pod's containers.

connectware

<component>.resources.requests.memory

Memory the scheduler reserves for the pod's containers.

connectware

<component>.resources.limits.cpu

CPU ceiling for the pod's containers. When reached, the kernel throttles the container.

connectware

<component>.resources.limits.memory

Memory ceiling for the pod's containers. When exceeded, the container is OOMKilled and restarted.

connectware-agent

protocolMapperAgentDefaults.resources.requests.cpu

CPU the scheduler reserves for the pod's containers, for all agents.

connectware-agent

protocolMapperAgentDefaults.resources.requests.memory

Memory the scheduler reserves for the pod's containers, for all agents.

connectware-agent

protocolMapperAgentDefaults.resources.limits.cpu

CPU ceiling for the pod's containers, for all agents. When reached, the kernel throttles the container.

connectware-agent

protocolMapperAgentDefaults.resources.limits.memory

Memory ceiling for the pod's containers, for all agents. When exceeded, the container is OOMKilled and restarted.

connectware-agent

protocolMapperAgents[].resources.requests.cpu

CPU the scheduler reserves for the pod's containers, for a single agent.

connectware-agent

protocolMapperAgents[].resources.requests.memory

Memory the scheduler reserves for the pod's containers, for a single agent.

connectware-agent

protocolMapperAgents[].resources.limits.cpu

CPU ceiling for the pod's containers, for a single agent. When reached, the kernel throttles the container.

connectware-agent

protocolMapperAgents[].resources.limits.memory

Memory ceiling for the pod's containers, for a single agent. When exceeded, the container is OOMKilled and restarted.

cpu and memory accept any Kubernetes Quantity.

The two charts configure resources differently. Select the tab for the chart you use.

You configure each Connectware component separately. There is no global key to apply resources to all components at once.

Default Values

Every component comes with default CPU and memory requests and no limits. To see the default request values for every component, extract the chart's default values:

The resources entry under each component in the resulting default-values.yaml file shows its default requests.

Configuring Resources for a Component

To configure a component, set its resources, for example broker.resources, with requests and limits as Kubernetes quantities. Components you do not list keep their default requests.

To configure several components, list each one. To run a component without limits, set only its requests.

Set resources for all agents at once with protocolMapperAgentDefaults, then override individual agents in protocolMapperAgents.

Default Values

Agents installed through the connectware-agent Helm chart come with the following default requests. No limits are set by default.

Resource
Requests
Limits

CPU

1000m

None

Memory

1000Mi

None

Configuring Resources for All Agents

To apply compute resources to all agents, set resources.requests and resources.limits under protocolMapperAgentDefaults in your values.yaml file. Helm merges your values.yaml with the chart's defaults, so you can set only limits and the default requests are preserved:

This configuration applies your limits plus the default requests of 1000m/1000Mi to all agents. To override requests as well, specify them alongside limits:

Configuring Resources for a Single Agent

To override resources for a specific agent, set resources inside that agent's entry in protocolMapperAgents:

These values apply only to the bender-robots agent and do not affect other agents in the same Helm release. For details on how defaults and per-agent overrides interact, see Configuration Principles for the connectware-agent Helm Chart.

Per-agent resources fully replace the defaults. To give an agent requests but no limits, set only requests. The omitted limits are not inherited from the defaults:

Removing Resources

To remove compute resources, set resources to null. This works the same way whether you set it on protocolMapperAgentDefaults to remove the defaults for all agents, or on an individual agent in protocolMapperAgents to remove resources for that agent only.

Full Example

This example sets lower default resources for all agents, then overrides the welder-robots agent with higher requests and no limits. The requests are repeated explicitly because per-agent resources fully replace the defaults:

Reference

For the full list of resource-related Helm values, see the Connectware Helm Chart Values Reference and the Connectware-Agent Helm Chart Values Reference.

Last updated

Was this helpful?