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.
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.
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:
Per-agent resources fully replace the resources from protocolMapperAgentDefaults. Helm does not merge values at this level. For example, if you set only resources.limits on an agent, the agent has limits but no requests because the default requests are not inherited.
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?

