Add DatadogPodAutoscaler manifest reference - #39378
Conversation
…ng overview Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
|
I can only run on private repositories. |
Preview links (active after the
|
Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
clamoriniere
left a comment
There was a problem hiding this comment.
few requires change needed for the content
Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
|
Created DOCS-15498 for editorial review. |
|
/review |
There was a problem hiding this comment.
🤖 Automated review by Claude. AI-generated; verify before acting.
Overall this is a well-structured, high-quality PR that adds a much-needed manifest reference and cleanly refactors the in-place vertical scaling coverage in _index.md. A few minor style-level nits below.
Reviewed c93aa6618ac75bd78b94fa8e2737a60fd1bf3daa — workflow run
|
|
||
| By default, applying a vertical recommendation requires a full pod rollout: the pod template is updated, Kubernetes recreates the pods, and the new resources take effect as those pods are admitted. For slow-starting or latency-sensitive services, that is a meaningful disruption. | ||
|
|
||
| In-place vertical scaling instead updates container resources on the running pods through the Kubernetes [pod resize subresource](https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/), so most resizes happen with no restart. In-place vertical scaling is supported on Kubernetes 1.33+, where the `InPlacePodVerticalScaling` feature gate is enabled by default. It requires Datadog Cluster Agent 7.78+. |
There was a problem hiding this comment.
Style: The contributing style guide asks for numbered reference-style links with definitions at the bottom of the page. This paragraph (and the ones at line 221 for the downward API, and line 260 for the upstream limitations) use inline external URLs. Consider promoting them to reference-style, e.g. [pod resize subresource][16] with the definition alongside [14] and [15] at the bottom of the file.
| [7]: https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/ | ||
| [8]: /integrations/datadog-cluster-agent/#metrics | ||
| [9]: /help/ | ||
| [10]: /containers/guide/container-discovery-management/ |
There was a problem hiding this comment.
Style: The reference-link numbering skips [4], [5], and [6] (goes 1, 2, 3, 7, 8, 9, 10). Looks like it was copied from _index.md. Renumber sequentially so the definitions match the in-text references:
| [10]: /containers/guide/container-discovery-management/ | |
| [1]: https://app.datadoghq.com/orchestration/scaling/workload | |
| [2]: /containers/autoscaling/ | |
| [3]: /containers/autoscaling/#in-place-vertical-scaling | |
| [4]: https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/ | |
| [5]: /integrations/datadog-cluster-agent/#metrics | |
| [6]: /help/ | |
| [7]: /containers/guide/container-discovery-management/ |
(You'll also need to update the in-text references [7], [8], [9], [10] accordingly.)
| strategy: Auto | ||
| ``` | ||
|
|
||
| For vertical-only scaling, set both horizontal strategies to `Disabled`, set `update.strategy: Auto`, and omit `objectives`. |
There was a problem hiding this comment.
Suggestion: This instruction is slightly inconsistent with the "Choose a scaling mode" table at line 125-129, which only requires omitting objectives and setting update.strategy: Auto for vertical-only mode (no mention of disabling the horizontal strategies). If disabling scaleUp/scaleDown is redundant when objectives is omitted, consider simplifying to match the table; if it is meaningfully different, clarify why here so readers aren't confused about which form to use.
| #### Behavior and limitations | ||
|
|
||
| - **`resizePolicy` stays under your control.** Datadog never sets or overrides the container-level `resizePolicy`; it is immutable after pod creation and is an application-level decision. When unset, Kubernetes defaults to `NotRequired` for CPU and memory, meaning resize without restart. Set `RestartContainer` per resource on containers that cannot absorb a live change. | ||
| - **Kubernetes limitations apply.** Only CPU and memory can be resized; QoS class cannot change; requests and limits can be changed but not removed entirely; Windows pods and pods under static CPU or memory manager policies are excluded. See the [upstream limitations](https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/#limitations). |
There was a problem hiding this comment.
Suggestion: This is a dense semicolon-separated sentence with four distinct limitations. Consider breaking it into a nested bullet list for scannability — each of these is a common gotcha a user might want to reference individually.
|
I think users will benefit if we also add these details to the DPA CRD such that they are discoverable by agents via |
What does this PR do? What is the motivation?
Adds a new sub-page, DatadogPodAutoscaler manifest reference, documenting
DatadogPodAutoscaler(DPA) configuration options that are only available by editing the manifest and were not previously covered in the docs. It also makes targeted updates to the Kubernetes Autoscaling overview so the two pages stay consistent and correct.Changes
New page
containers/autoscaling/manifest.md:required/optionalmarkers), supported target workloads, and how to choose a scaling mode.controlledResources(CPU and memory rightsizing, with the memory-only default when combined with horizontal scaling),controlledValues(RequestsAndLimits/RequestsOnly),minAllowed/maxAllowed,enabled, and"*"wildcard non-merge semantics.options.burstable), OOMKill bump tuning (options.outOfMemory.bumpUpRatio), sidecars (including native sidecars), vertical rollout timing (resizePendingPeriod/rolloutFallbackDelay), andContainerResource/AbsoluteValue/CustomQuery(includingApmMetrics) objectives, plus telemetry tagging.Updates to
containers/autoscaling/_index.md:inPlaceVerticalScaling(Operator and Helm) and added a dedicated In-place vertical scaling section.Navigation:
Review feedback addressed:
objectivesconfigures horizontal scaling and is also used by multidimensional scaling.Testing / validation
tabs/tab) and fenced code blocks in both changed pages.#in-place-vertical-scaling,#cluster-profiles) are defined.Merge readiness
For Datadog employees:
<name>/<description>convention and include the forward slash (/). If you've already created your PR with an incorrect branch name, please rename your branch and open a fresh PR./reviewto run an automated check that catches common issues before a Documentation team member reviews your PR.AI assistance
Drafted with Bits Code (Claude Code): converted a source reference document into the new page, applied Datadog documentation style, made the consistency edits to the overview, and addressed two rounds of reviewer feedback. Reviewed by the author.
Additional notes
No Jira ticket is associated with this change. StatefulSet is documented as a fully supported target workload per maintainer guidance. The ArgoCD and Terraform guides were intentionally left unchanged.
PR by Bits - View session in Datadog
Comment @DataDog to request changes