Repository navigation
Conversation
Problem The proxy concurrency task says that setting proxy.resources.cpu.request or .limit in the control-plane Helm values configures the proxy's runtime. It doesn't: only the config.linkerd.io/proxy-cpu-* annotations and the CLI flags derive runtime.workers from the CPU quantities. With Helm values alone the proxy gets LINKERD2_PROXY_CORES=1 and no LINKERD2_PROXY_CORES_MAX, so it runs single-threaded no matter the limit. The chart's values.yaml already says these values must be kept in sync with runtime.workers by hand. Solution Say that the Helm CPU values only set the container resources, and show proxy.runtime.workers.minimum and maximum next to them. Applied to 2.18, 2.19 and 2-edge, which share this page and support workers.maximum. Validation helm template of charts/linkerd-control-plane with the documented values renders LINKERD2_PROXY_CORES_MIN=1 and LINKERD2_PROXY_CORES_MAX=2, and the same workers block lands in linkerd-config for the injector. Without the runtime block only LINKERD2_PROXY_CORES=1 is rendered. markdownlint passes on the changed files. Signed-off-by: Lucas Barros <lucasbarros.kam@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Configuring Proxy Concurrency says that setting
proxy.resources.cpu.requestorproxy.resources.cpu.limitin the control-plane Helm values configures the proxy's runtime ("rounding up to the next whole number"). That isn't what happens. Only theconfig.linkerd.io/proxy-cpu-request/proxy-cpu-limitannotations (pkg/inject/inject.go) and the--proxy-cpu-*CLI flags deriveruntime.workersfrom the CPU quantities. Helm values go straight to the container resources, and the chart's ownvalues.yamlsays they have to be kept in sync withruntime.workersby hand.So a cluster that follows the page and sets a 2-core limit through Helm still runs single-threaded proxies:
No
LINKERD2_PROXY_CORES_MAXis rendered, soWorkers::cores()falls back to one worker.Solution
State that the Helm CPU values only set the container resources, and show
proxy.runtime.workers.minimum/maximumnext to them (minimum at least the request, maximum matching the limit, both in whole cores).runtime.workers.maximumis already read by_proxy.tplandProxyRuntimeWorkers, but it isn't documented anywhere yet. The annotation section and the note about rounding annotation values are unchanged, because they are correct.Applied to
2.18,2.19and2-edge. The page is identical in the three versions, andworkers.maximumexists in all of them (checked_proxy.tplatedge-25.4.4).Validation
With the documented values:
The same
workersblock is rendered intolinkerd-config, which the injector uses for meshed workloads.markdownlint -c linkerd.io/.markdownlint.yamlpasses on the changed files.Related to #1495.
AI disclosure: written with the help of Claude Code, reviewed and tested by me.