Skip to content

CNTRLPLANE-3203: Add autoscaling documentation for self-managed Azure#8239

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
bryan-cox:CNTRLPLANE-3203
Apr 15, 2026
Merged

CNTRLPLANE-3203: Add autoscaling documentation for self-managed Azure#8239
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
bryan-cox:CNTRLPLANE-3203

Conversation

@bryan-cox
Copy link
Copy Markdown
Member

@bryan-cox bryan-cox commented Apr 14, 2026

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive how-to guides for NodePool and cluster autoscaling for self-managed Azure HostedClusters.
    • Described modes, global/node limits, expander strategies, scale-down settings, and node-group balancing.
    • Clarified Azure-specific behavior, including that scale-from-zero is unsupported (NodePool min ≥ 1).
    • Included end-to-end YAML examples, verification steps, operational notes, and updated site navigation.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 14, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@bryan-cox: This pull request references CNTRLPLANE-3203 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested review from csrwng and jparrill April 14, 2026 17:10
@openshift-ci openshift-ci bot added the area/documentation Indicates the PR includes changes for documentation label Apr 14, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 14, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bryan-cox

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added area/platform/azure PR/issue for Azure (AzurePlatform) platform approved Indicates a PR has been approved by an approver from all required OWNERS files. and removed do-not-merge/needs-area labels Apr 14, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 14, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This pull request adds documentation for configuring autoscaling for HostedClusters: a general autoscaling guide and an Azure self-managed-specific guide. It documents NodePool-level spec.autoScaling and HostedCluster-level spec.autoscaling fields with examples and YAML manifests, commands to enable/disable and verify autoscaling (including AutoscalingEnabled), operational behavior for scale-up and optional scale-down, monitoring commands, and Azure-specific notes (per-NodePool CAPZ VM provisioning and no scale-from-zero support). The self-managed Azure index and mkdocs navigation were updated to include the new pages.

Sequence Diagram(s)

sequenceDiagram
  participant Scheduler
  participant ClusterAutoscaler
  participant HostedClusterAPI
  participant NodePoolController
  participant CAPZ as CAPZ/Azure
  participant Azure

  Scheduler->>ClusterAutoscaler: Pod pending (no nodes)
  ClusterAutoscaler->>ClusterAutoscaler: Evaluate NodePools and HostedCluster autoscaling config
  ClusterAutoscaler->>HostedClusterAPI: Request scale-up (select NodePool, desired replicas)
  HostedClusterAPI->>NodePoolController: Reconcile NodePool replicas/scale request
  NodePoolController->>CAPZ: Create Machines/VMs for NodePool
  CAPZ->>Azure: Provision VMs
  Azure-->>CAPZ: VM(s) ready
  CAPZ-->>NodePoolController: Machines registered
  NodePoolController-->>HostedClusterAPI: NodePool reports new nodes
  HostedClusterAPI-->>ClusterAutoscaler: Scale-up observed (nodes available)
  ClusterAutoscaler-->>Scheduler: Pods scheduled onto new nodes
Loading
sequenceDiagram
  participant Metrics as Metrics/Controller
  participant ClusterAutoscaler
  participant HostedClusterAPI
  participant NodePoolController
  participant CAPZ as CAPZ/Azure
  participant Azure

  Metrics->>ClusterAutoscaler: Nodes underutilized (scale-down eligible)
  ClusterAutoscaler->>ClusterAutoscaler: Evaluate scale-down rules, balancing, and timing
  opt Scale-down enabled
    ClusterAutoscaler->>HostedClusterAPI: Request scale-down (reduce replicas)
    HostedClusterAPI->>NodePoolController: Reconcile NodePool replicas/scale request
    NodePoolController->>CAPZ: Delete Machines/VMs
    CAPZ->>Azure: Deallocate/delete VMs
    Azure-->>CAPZ: VMs deleted
    CAPZ-->>NodePoolController: Machines removed
    NodePoolController-->>HostedClusterAPI: NodePool reports fewer nodes
    HostedClusterAPI-->>ClusterAutoscaler: Scale-down observed
  end
Loading
🚥 Pre-merge checks | ✅ 10
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title clearly and specifically summarizes the main change: adding autoscaling documentation for self-managed Azure, which aligns with all four files changed (autoscaling.md, autoscaling-self-managed.md, index update, and mkdocs navigation).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed PR contains only documentation modifications (markdown and mkdocs.yml) with no Go test code or Ginkgo test definitions to evaluate.
Test Structure And Quality ✅ Passed This PR contains only documentation changes (markdown and configuration files) with no Ginkgo test code.
Microshift Test Compatibility ✅ Passed Pull request consists entirely of documentation changes with no Ginkgo e2e tests added, making this check not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR consists exclusively of documentation changes with no Ginkgo e2e tests introduced, making SNO test compatibility check not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed This pull request is documentation-only and does not introduce any deployment manifests, operator code, or controllers with scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The pull request is a documentation-only change, modifying markdown files and YAML documentation configuration with no executable code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR contains only documentation changes; no Go test files or Ginkgo e2e test patterns present, so custom check is not applicable.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@bryan-cox: This pull request references CNTRLPLANE-3203 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
  • Added comprehensive guide for configuring autoscaling in self-managed Azure HostedClusters, including NodePool-level and cluster-level autoscaling configuration.
  • Included operational commands, monitoring guidance, and end-to-end configuration examples.
  • Added navigation entry for the autoscaling documentation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/content/how-to/azure/autoscaling-self-managed.md`:
- Around line 98-108: Remove the entire "Expanders" section including the
"Expanders" heading, the table describing `LeastWaste`, `Priority`, and
`Random`, the reference to `spec.autoscaling.expanders`, and the "Default:
[Priority, LeastWaste]" line; ensure no leftover mentions of "Expanders" or
`spec.autoscaling.expanders` remain in the document since the ClusterAutoscaling
API and HyperShift on Azure do not support configurable expander strategies.
- Around line 122-127: Remove the incorrect `maxFreeDifferenceRatioPercent`
table row from the Node Group Balancing section because that field does not
exist on the ClusterAutoscaling API; update the markdown table to only include
`balancingIgnoredLabels` (and any Platform-specific note) so the docs match the
actual ClusterAutoscaling schema and API.
- Around line 88-96: The "Scaling Behavior" table documents fields that don't
exist on the ClusterAutoscaling API; remove the four unsupported rows
(`maxNodesTotal`, `maxPodGracePeriod`, `maxNodeProvisionTime`,
`podPriorityThreshold`) and leave only the `scaling` row in the table so the doc
matches the actual ClusterAutoscaling fields; update any surrounding text
referencing those removed fields to avoid dangling mentions.
- Around line 182-188: Step 2 incorrectly references a non-existent "configured
expander strategy"; update the text so the autoscaler selects a suitable
NodePool based on capacity and scheduling constraints (not an expander) and then
triggers a scale-up by increasing the NodePool replica count—leave references to
NodePool, autoscaler, HyperShift, scaling/ScaleUpAndScaleDown,
utilizationThresholdPercent, and unneededDurationSeconds intact and only remove
the expander strategy wording.
- Around line 129-180: Remove the unsupported autoscaling fields from the
HostedCluster example: delete spec.autoscaling.maxNodesTotal,
spec.autoscaling.expanders (the Random expander list), and
spec.autoscaling.maxFreeDifferenceRatioPercent; keep the remaining autoscaling
entries (scaling, scaleDown, balancingIgnoredLabels) and leave the two NodePool
definitions unchanged (my-cluster-nodepool-1 and my-cluster-nodepool-2).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 5e66a73a-b4f8-441b-ab75-4055cf0fa5a8

📥 Commits

Reviewing files that changed from the base of the PR and between 9b4b004 and 9467952.

📒 Files selected for processing (3)
  • docs/content/how-to/azure/autoscaling-self-managed.md
  • docs/content/how-to/azure/self-managed-azure-index.md
  • docs/mkdocs.yml

Comment thread docs/content/how-to/azure/autoscaling-self-managed.md Outdated
Comment thread docs/content/how-to/azure/autoscaling-self-managed.md Outdated
Comment thread docs/content/how-to/azure/autoscaling-self-managed.md Outdated
Comment thread docs/content/how-to/azure/autoscaling-self-managed.md Outdated
Comment thread docs/content/how-to/azure/autoscaling-self-managed.md Outdated
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 34.65%. Comparing base (f059233) to head (61e94da).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8239   +/-   ##
=======================================
  Coverage   34.65%   34.65%           
=======================================
  Files         767      767           
  Lines       93263    93263           
=======================================
  Hits        32318    32318           
  Misses      58266    58266           
  Partials     2679     2679           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@bryan-cox: This pull request references CNTRLPLANE-3203 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
  • Added a comprehensive guide for configuring autoscaling for self-managed Azure HostedClusters, covering NodePool-level and cluster-level options.
  • Described modes, limits, timing, expander strategies, scale-down policies, and Azure-specific limitation (NodePool min >= 1).
  • Included operational guidance, monitoring commands, end-to-end YAML examples, and added the guide to navigation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@bryan-cox bryan-cox force-pushed the CNTRLPLANE-3203 branch 2 times, most recently from afccc01 to c9b5279 Compare April 14, 2026 17:42
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@bryan-cox: This pull request references CNTRLPLANE-3203 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
  • Added comprehensive autoscaling how-to content covering NodePool-level and cluster-level autoscaling for self-managed Azure HostedClusters.
  • Documented modes, limits, expander strategies, scale-down behavior, node-group balancing, and Azure-specific note that scale-from-zero is unsupported (NodePool min ≥ 1).
  • Included end-to-end YAML examples, operational guidance, verification commands, and updated site navigation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@bryan-cox: This pull request references CNTRLPLANE-3203 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add documentation for node pool and cluster autoscaling on self-managed Azure HostedClusters
  • Covers NodePool autoScaling (min/max), HostedCluster autoscaling (scale-down, expanders, balancing), monitoring, and limitations
  • Add nav entry in mkdocs.yml and link from the self-managed Azure index page

Context

Autoscaling is validated in CI via TestAutoscaling on the e2e-azure-self-managed job (PR #77597), but no user-facing documentation existed for configuring it on self-managed Azure.

Test plan

  • Verify docs render correctly with mkdocs serve

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
  • Added comprehensive how-to guides for NodePool and cluster autoscaling for self-managed Azure HostedClusters.
  • Described modes, global/node limits, expander strategies, scale-down settings, and node-group balancing.
  • Clarified Azure-specific behavior, including that scale-from-zero is unsupported (NodePool min ≥ 1).
  • Included end-to-end YAML examples, verification steps, operational notes, and updated site navigation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/content/how-to/autoscaling.md`:
- Around line 25-28: The table entry for the autoscaler `min` constraint is
incorrect; update the docs table row describing `min` to state that `min` can be
0 for the AWS platform (supporting scale-from-zero) but must be >= 1 for all
other platforms, matching the API validation in
api/hypershift/v1beta1/nodepool_types.go (see the `min` validation rule) and
retain the existing scale-from-zero note; ensure the wording explicitly calls
out the platform-specific behavior for AWS vs non-AWS platforms.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 6bf5244a-ffbe-4621-85da-41dbf8cb11a5

📥 Commits

Reviewing files that changed from the base of the PR and between c9b5279 and 404fab6.

⛔ Files ignored due to path filters (1)
  • docs/content/reference/aggregated-docs.md is excluded by !docs/content/reference/aggregated-docs.md
📒 Files selected for processing (4)
  • docs/content/how-to/autoscaling.md
  • docs/content/how-to/azure/autoscaling-self-managed.md
  • docs/content/how-to/azure/self-managed-azure-index.md
  • docs/mkdocs.yml
✅ Files skipped from review due to trivial changes (3)
  • docs/content/how-to/azure/self-managed-azure-index.md
  • docs/mkdocs.yml
  • docs/content/how-to/azure/autoscaling-self-managed.md

Comment thread docs/content/how-to/autoscaling.md
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/content/how-to/autoscaling.md (1)

61-62: Clarify scope: cluster autoscaling doesn’t act on fixed-replica NodePools.

Line 61 currently reads as “all NodePools,” which can be interpreted as including NodePools without spec.autoScaling. Consider tightening the wording to avoid confusion.

Suggested wording tweak
-Cluster autoscaling configures global autoscaling behavior that applies to all NodePools in a HostedCluster. This includes scale-down policies, node group balancing, and expander strategies.
+Cluster autoscaling configures global autoscaling behavior for autoscaling-enabled NodePools in a HostedCluster. This includes scale-down policies, node group balancing, and expander strategies.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/how-to/autoscaling.md` around lines 61 - 62, Change the wording
that claims "applies to all NodePools" to clarify scope: state that Cluster
autoscaling configures global behavior for NodePools that use autoscaling and
does not affect NodePools with a fixed replica count (i.e., those lacking
spec.autoScaling). Update the sentence referencing "all NodePools" to explicitly
mention "NodePools with spec.autoScaling enabled (it does not act on NodePools
without spec.autoScaling / fixed-replica NodePools)" so readers understand the
limitation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/content/how-to/autoscaling.md`:
- Around line 61-62: Change the wording that claims "applies to all NodePools"
to clarify scope: state that Cluster autoscaling configures global behavior for
NodePools that use autoscaling and does not affect NodePools with a fixed
replica count (i.e., those lacking spec.autoScaling). Update the sentence
referencing "all NodePools" to explicitly mention "NodePools with
spec.autoScaling enabled (it does not act on NodePools without spec.autoScaling
/ fixed-replica NodePools)" so readers understand the limitation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 4984fc07-c4ee-45ce-970f-6d0943624549

📥 Commits

Reviewing files that changed from the base of the PR and between 404fab6 and f8e5bcd.

⛔ Files ignored due to path filters (1)
  • docs/content/reference/aggregated-docs.md is excluded by !docs/content/reference/aggregated-docs.md
📒 Files selected for processing (4)
  • docs/content/how-to/autoscaling.md
  • docs/content/how-to/azure/autoscaling-self-managed.md
  • docs/content/how-to/azure/self-managed-azure-index.md
  • docs/mkdocs.yml
✅ Files skipped from review due to trivial changes (3)
  • docs/mkdocs.yml
  • docs/content/how-to/azure/self-managed-azure-index.md
  • docs/content/how-to/azure/autoscaling-self-managed.md

Copy link
Copy Markdown
Contributor

@csrwng csrwng left a comment

Choose a reason for hiding this comment

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

Just one question, otherwise lgtm

| Expander | Description |
|----------|-------------|
| `LeastWaste` | Selects the NodePool with the least idle CPU and memory after scaling. |
| `Priority` | Selects the NodePool with the highest user-defined priority. |
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.

How do you configure priority for a nodepool?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The Priority expander uses the upstream cluster autoscaler's ConfigMap-based mechanism. Users create a ConfigMap named cluster-autoscaler-priority-expander in the kube-system namespace of the guest cluster, mapping integer priorities to node group name patterns (regex). HyperShift doesn't expose a dedicated API field for this on NodePool — it relies on the upstream behavior. Added a note to the docs clarifying this.


AI-assisted response via Claude Code

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

… Azure

Add documentation covering node pool and cluster autoscaling configuration for self-managed Azure HostedClusters,
including NodePool autoScaling, ClusterAutoscaling with scale-down policies, expander strategies, and node group balancing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@csrwng
Copy link
Copy Markdown
Contributor

csrwng commented Apr 15, 2026

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 15, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification

No second-stage tests were triggered for this PR.

This can happen when:

  • The changed files don't match any pipeline_run_if_changed patterns
  • All files match pipeline_skip_if_only_changed patterns
  • No pipeline-controlled jobs are defined for the main branch

Use /test ? to see all available tests.

@bryan-cox
Copy link
Copy Markdown
Member Author

/verified by @bryan-cox

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Apr 15, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@bryan-cox: This PR has been marked as verified by @bryan-cox.

Details

In response to this:

/verified by @bryan-cox

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 15, 2026

@bryan-cox: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot bot merged commit 3c56500 into openshift:main Apr 15, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/documentation Indicates the PR includes changes for documentation area/platform/azure PR/issue for Azure (AzurePlatform) platform jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants