Skip to content

Add DatadogPodAutoscaler manifest reference - #39378

Open
clamoriniere wants to merge 6 commits into
masterfrom
dd/cedric.lamoriniere/dpa-manifest-reference
Open

Add DatadogPodAutoscaler manifest reference#39378
clamoriniere wants to merge 6 commits into
masterfrom
dd/cedric.lamoriniere/dpa-manifest-reference

Conversation

@clamoriniere

@clamoriniere clamoriniere commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

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:

  • Manifest anatomy (annotated skeleton with per-field required/optional markers), supported target workloads, and how to choose a scaling mode.
  • Container constraints: 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.
  • Burstable mode (options.burstable), OOMKill bump tuning (options.outOfMemory.bumpUpRatio), sidecars (including native sidecars), vertical rollout timing (resizePendingPeriod / rolloutFallbackDelay), and ContainerResource / AbsoluteValue / CustomQuery (including ApmMetrics) objectives, plus telemetry tagging.
  • Links back to the overview instead of duplicating setup and prerequisite content.

Updates to containers/autoscaling/_index.md:

  • Corrected the in-place vertical scaling enablement field to inPlaceVerticalScaling (Operator and Helm) and added a dedicated In-place vertical scaling section.
  • Documented that in-place vertical scaling is supported on Kubernetes 1.33+, and that in-place resizes are not observed by applications that read resources only at startup or via the downward API.
  • Added a note that vertical recommendations reach new pods through the Admission Controller mutating webhook.
  • Clarified that the OOMKill memory bump is re-applied until the workload stabilizes and is configurable.
  • Added pointers from Path B (GitOps) and the example-configurations section to the new manifest reference.

Navigation:

  • Added a Manifest reference entry to the English left navigation under Autoscaling.

Review feedback addressed:

  • Removed feature-status labels (all content on the page is GA).
  • Marked each field in the manifest skeleton as required or optional.
  • Clarified that objectives configures horizontal scaling and is also used by multidimensional scaling.
  • Emphasized that containers of an autoscaled workload must not be excluded from Agent collection, with a link to Container Discovery Management.
  • Corrected the scale-down comment and marked custom-query-with-vertical-scaling as not supported.

Testing / validation

  • Verified Hugo shortcode balance (tabs/tab) and fenced code blocks in both changed pages.
  • Verified that all internal anchor links resolve to real headings, that reference definitions and usages match (no dangling or unused references), and that cross-page anchors (#in-place-vertical-scaling, #cluster-profiles) are defined.
  • Confirmed no em dashes or en dashes remain in the changed files.
  • Reviewed the changed content against the Datadog Vale substitution list (American English, no flagged terms). Vale is not installed in this environment, so this was a manual review of the diff.

Merge readiness

  • Ready for merge

For Datadog employees:

  • ⚠️ Your branch name MUST follow the <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.
  • 🤖 New: Comment with /review to 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

…ng overview

Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
@datadog-prod-us1-6

datadog-prod-us1-6 Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

View session in Datadog

Bits Code status: ✅ Done

CI Auto-fix: Failed (reached max 5 attempts) | Disable

Comment @DataDog to request changes

@clamoriniere
clamoriniere requested a review from a team as a code owner August 20, 2026 21:47
@datadog-official

Copy link
Copy Markdown
Contributor

I can only run on private repositories.

@github-actions github-actions Bot added the Architecture Everything related to the Doc backend label Aug 20, 2026
@clamoriniere
clamoriniere requested a review from a team August 20, 2026 21:49
@github-actions

Copy link
Copy Markdown
Contributor

@clamoriniere clamoriniere left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few requires change needed for the content

Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/_index.md Outdated
Comment thread hugo/content/en/containers/autoscaling/_index.md Outdated
Comment thread hugo/content/en/containers/autoscaling/_index.md
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Comment thread hugo/content/en/containers/autoscaling/manifest.md Outdated
Co-authored-by: clamoriniere <cedric.lamoriniere@datadoghq.com>
@domalessi domalessi self-assigned this Aug 21, 2026
@domalessi

Copy link
Copy Markdown
Contributor

Created DOCS-15498 for editorial review.

@domalessi domalessi added the editorial review Waiting on a more in-depth review label Aug 21, 2026
@domalessi domalessi removed their assignment Aug 21, 2026
@domalessi

Copy link
Copy Markdown
Contributor

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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 c93aa6618ac75bd78b94fa8e2737a60fd1bf3daaworkflow 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+.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

Suggested change
[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`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@AlexanderYastrebov

Copy link
Copy Markdown

I think users will benefit if we also add these details to the DPA CRD such that they are discoverable by agents via kubectl explain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Architecture Everything related to the Doc backend Bits AI editorial review Waiting on a more in-depth review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants