Skip to content

OCPBUGS-86075: docs(nodepool): fixing incomplete stuck node drain documentation in section Scaling To Zero - #8544

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
PoornimaSingour:fix/nodepool-lifecycle-docs
May 25, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
PoornimaSingour:fix/nodepool-lifecycle-docs

Conversation

@PoornimaSingour

@PoornimaSingour PoornimaSingour commented May 19, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

As a part of this PR below has been fixed in upstream document of NodePool lifecycle in Scaling To Zero section :

  • Complete truncated bullet points for PodDisruptionBudgets and PersistentVolumes conditions.
  • Add important admonition explaining expected behavior during simultaneous node removal.
  • Include YAML example for nodeDrainTimeout and nodeVolumeDetachTimeout fields.
  • Fix HyperShift casing and add cross-reference to scale-to-zero docs.

Which issue(s) this PR fixes:

Fixes : https://redhat.atlassian.net/browse/OCPBUGS-86075

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Documentation
    • Rewrote NodePool scale-down guidance to clarify why node drains can become blocked and what triggers this behavior.
    • Added an explicit important note that drains may block indefinitely when all nodes are removed at once.
    • Expanded prevention guidance with a concrete configuration example to increase node drain and volume-detach timeouts.
    • Added a note describing an alternative annotation-based approach that avoids draining.

@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 openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 19, 2026
@openshift-ci

openshift-ci Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@coderabbitai

coderabbitai Bot commented May 19, 2026 •

Copy link
Copy Markdown
Contributor

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 PR updates the NodePool "Scaling To Zero" documentation: it explains why node drains can block when protected pods cannot be rescheduled (including when all nodes are removed at once), adds an explicit important warning, expands prevention guidance with a NodePool YAML example setting .spec.nodeDrainTimeout and .spec.nodeVolumeDetachTimeout to values > 0s, updates the API reference wording, and notes an alternative non-draining approach using machine annotations.


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Stable And Deterministic Test Names ❌ Error Two added Ginkgo test files contain 12+ dynamic test names using fmt.Sprintf with variable values (workload.Name), violating stable test title requirements. Replace fmt.Sprintf dynamic test names with static strings; remove variable values from test titles per the Ginkgo test naming standards.
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: fixing incomplete/truncated documentation in the NodePool 'Scaling To Zero' section with focus on stuck node drain issues.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Test Structure And Quality ✅ Passed PR test files use standard Go testing.T with Gomega, not Ginkgo. The custom check is for Ginkgo test code (Describe/It blocks), which is not applicable.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR. Changes are documentation-only (Markdown file update).
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR is a documentation-only change (Markdown file) with no new Ginkgo e2e tests. The SNO compatibility check only applies when tests are added, which is not the case here.
Topology-Aware Scheduling Compatibility ✅ Passed This is a documentation-only change. The custom check applies to deployment manifests, operator code, or controllers, none of which are modified in this PR.
Ote Binary Stdout Contract ✅ Passed PR is documentation-only (markdown file). OTE Binary Stdout Contract check applies only to executable code/test infrastructure, not documentation files.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR only modifies documentation (nodepool-lifecycle.md). No Ginkgo e2e tests are added, so the IPv6/disconnected network compatibility check does not apply.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@PoornimaSingour PoornimaSingour changed the title docs(nodepool): fixing incomplete stuck node drain documentation in section Scaling To Zero OCPBUGS-86075: docs(nodepool): fixing incomplete stuck node drain documentation in section Scaling To Zero May 19, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels May 19, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@PoornimaSingour: This pull request references Jira Issue OCPBUGS-86075, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

What this PR does / why we need it:

As a part of this PR below has been fixed in upstream document of NodePool lifecycle in Scaling To Zero section :

  • Complete truncated bullet points for PodDisruptionBudgets and PersistentVolumes conditions.
  • Add important admonition explaining expected behavior during simultaneous node removal.
  • Include YAML example for nodeDrainTimeout and nodeVolumeDetachTimeout fields.
  • Fix HyperShift casing and add cross-reference to scale-to-zero docs.

Which issue(s) this PR fixes:

Fixes : https://redhat.atlassian.net/browse/OCPBUGS-86075

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

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

@PoornimaSingour: This pull request references Jira Issue OCPBUGS-86075, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

What this PR does / why we need it:

As a part of this PR below has been fixed in upstream document of NodePool lifecycle in Scaling To Zero section :

  • Complete truncated bullet points for PodDisruptionBudgets and PersistentVolumes conditions.
  • Add important admonition explaining expected behavior during simultaneous node removal.
  • Include YAML example for nodeDrainTimeout and nodeVolumeDetachTimeout fields.
  • Fix HyperShift casing and add cross-reference to scale-to-zero docs.

Which issue(s) this PR fixes:

Fixes : https://redhat.atlassian.net/browse/OCPBUGS-86075

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Documentation
  • Expanded NodePool scale down documentation with clearer explanations of drain blocking issues and practical configuration guidance to prevent them.
  • Added details on alternative approaches to bypass drain operations.

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 added area/documentation Indicates the PR includes changes for documentation and removed do-not-merge/needs-area labels May 19, 2026

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
docs/content/how-to/automated-machine-management/nodepool-lifecycle.md (1)

70-104: ⚡ Quick win

Consider adding a diagram to illustrate the drain blocking scenario.

While the textual explanation is clear, a diagram could help visualize the drain process and why it blocks when all nodes are removed simultaneously. This could be a simple flowchart or state diagram showing:

  • Initial state: Multiple nodes with PDB-protected pods
  • Drain attempt: Pods cannot be rescheduled (no available nodes)
  • Outcome: Drain blocks vs. timeout-based removal

As per coding guidelines, markdown files should provide service architecture diagrams using mermaid or ASCII format where applicable.

📊 Example mermaid diagram
```mermaid
graph TD
    A[Scale NodePool to 0] --> B{All nodes being removed?}
    B -->|Yes| C{PDB-protected pods present?}
    B -->|No| D[Normal drain process]
    C -->|Yes| E{Drain timeout configured?}
    C -->|No| D
    E -->|Yes| F[Wait for timeout, then remove nodes]
    E -->|No| G[Drain blocks indefinitely]
    D --> H[Nodes removed successfully]
    F --> H
    
    style G fill:`#ffcccc`
    style F fill:`#ccffcc`
    style H fill:`#ccffcc`

```

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/how-to/automated-machine-management/nodepool-lifecycle.md`
around lines 70 - 104, Add a simple mermaid diagram illustrating the
drain-blocking scenario into the "Scaling To Zero" section to complement the
text; place it after the paragraph that lists conditions preventing drains and
before the "Prevention" heading, and reference the decision points shown in the
reviewer example (e.g., "Scale NodePool to 0", "PDB-protected pods present?",
"Drain timeout configured?") so readers can visually connect to the existing
fields .spec.nodeDrainTimeout and .spec.nodeVolumeDetachTimeout in the NodePool
example.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/content/how-to/automated-machine-management/nodepool-lifecycle.md`:
- Around line 70-104: Add a simple mermaid diagram illustrating the
drain-blocking scenario into the "Scaling To Zero" section to complement the
text; place it after the paragraph that lists conditions preventing drains and
before the "Prevention" heading, and reference the decision points shown in the
reviewer example (e.g., "Scale NodePool to 0", "PDB-protected pods present?",
"Drain timeout configured?") so readers can visually connect to the existing
fields .spec.nodeDrainTimeout and .spec.nodeVolumeDetachTimeout in the NodePool
example.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 0fb94c7f-e1db-41e2-a2ba-a74f4568f2c2

📥 Commits

Reviewing files that changed from the base of the PR and between cf2b91f and f410496.

⛔ 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 (1)
  • docs/content/how-to/automated-machine-management/nodepool-lifecycle.md

@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 19, 2026 10:29 Inactive
@PoornimaSingour
PoornimaSingour marked this pull request as ready for review May 19, 2026 10:35
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 19, 2026
@openshift-ci
openshift-ci Bot requested review from bryan-cox and enxebre May 19, 2026 10:36

@bryan-cox bryan-cox left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for fixing the broken documentation — the truncated bullet points and typo fix are clearly needed. A few comments inline.


- The hosted cluster contains `PodDisruptionBudgets` that require at least
- The hosted cluster contains pods that use `PersistentVolumes``
- The hosted cluster contains `PodDisruptionBudgets` that require at least one healthy pod, preventing eviction when there are no other nodes to reschedule onto.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

[blocking] aggregated-docs.md is auto-generated by make docs-aggregate (via hack/tools/docs-aggregator/main.go). Manual edits here will be overwritten the next time anyone runs make update.

Please revert all changes to this file and regenerate it instead:

make docs-aggregate

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.

@bryan-cox ,Good learning here for me. Reverted manual edits and regenerated with make docs-aggregate. Thank you !!!

namespace: clusters
spec:
nodeDrainTimeout: 1m
nodeVolumeDetachTimeout: 5m

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

[suggestion] These timeout values are very aggressive for a documentation example that users will copy-paste:

  • nodeDrainTimeout: 1m — in production, graceful drain can legitimately take several minutes (pods with long terminationGracePeriodSeconds, slow preStop hooks). A 1-minute timeout risks data loss.
  • The relative ordering is inverted — drain typically takes longer than volume detach, so nodeDrainTimeout should generally be >= nodeVolumeDetachTimeout.

Consider more conservative values:

  nodeDrainTimeout: 30m
  nodeVolumeDetachTimeout: 10m

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.

Updated the values, nodeDrainTimeout: 30m and nodeVolumeDetachTimeout: 10m. Agreed that 1m is too aggressive and few customer might just copy paste it.


!!! important

This is expected behavior. When all nodes are being removed simultaneously, pods protected by PDBs have nowhere to be rescheduled, so the drain operation blocks indefinitely. Configure drain timeouts to ensure nodes are removed after a bounded period.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

[nit] The text says pods have nowhere to be rescheduled — but the drain blocks because eviction is refused by the PDB admission check, not because rescheduling fails.

Suggested rewording:

This is expected behavior. When all nodes are removed simultaneously, pods protected by PodDisruptionBudgets cannot be evicted because the PDB constraints cannot be satisfied with no remaining nodes. As a result, the drain operation blocks indefinitely. Configure nodeDrainTimeout to ensure nodes are eventually removed after a bounded period.

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.

Thanks, updated the wording to clarify that eviction.

!!! note
See the [Hypershift API reference page](../../reference/api.md) for more details.
See the [HyperShift API reference page](../../reference/api.md) for more details on these fields.
For an alternative approach that skips draining entirely via machine annotations, see [Scaling down data plane to Zero](scale-to-zero-dataplane.md).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

[nit] These two lines will render as a single dense paragraph in MkDocs since there is no blank line between them. Add a blank indented line between them for better readability.

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.

@bryan-cox I have fixed it. Also aligned the !!! note block format to match the !!! important blocks in the same file.

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.

There is a issue here if we are adding blank line then hyperlinks are not showing in the doc preview see https://github.com/PoornimaSingour/hypershift/blob/f82366f09df63b6b2a990a8a7854a8e07c963331/docs/content/how-to/automated-machine-management/nodepool-lifecycle.md commit.

The issue is how GitHub renders this — GitHub doesn't understand MkDocs !!! note admonition syntax.
It treats the indented content as a code block or plain text, so the markdown links inside don't render as hyperlinks.

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.

Seems like it will look like this in the Github but in upstream it will come in hyperlinks. Changes are done

@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 20, 2026 09:49 Inactive

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/content/how-to/automated-machine-management/nodepool-lifecycle.md`:
- Around line 89-99: Add a language identifier to the fenced code block that
begins with "apiVersion: hypershift.openshift.io/v1beta1" so the block is marked
as YAML (e.g., change the opening ``` to ```yaml) to satisfy markdownlint MD040
and improve rendering; locate the block that contains the NodePool spec
(includes nodeDrainTimeout and nodeVolumeDetachTimeout) and update its fence
accordingly.
🪄 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: Enterprise

Run ID: 5a1ad9ef-2920-42d5-9120-b39f3e075307

📥 Commits

Reviewing files that changed from the base of the PR and between f410496 and 012fb10.

⛔ 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 (1)
  • docs/content/how-to/automated-machine-management/nodepool-lifecycle.md

@PoornimaSingour
PoornimaSingour force-pushed the fix/nodepool-lifecycle-docs branch from 012fb10 to 04a05dc Compare May 20, 2026 10:04
@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 20, 2026 10:06 Inactive
@PoornimaSingour
PoornimaSingour force-pushed the fix/nodepool-lifecycle-docs branch from 04a05dc to 373fdb9 Compare May 20, 2026 10:18
@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 20, 2026 10:20 Inactive
@PoornimaSingour
PoornimaSingour force-pushed the fix/nodepool-lifecycle-docs branch from 373fdb9 to f82366f Compare May 20, 2026 10:25
@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 20, 2026 10:27 Inactive
@PoornimaSingour
PoornimaSingour force-pushed the fix/nodepool-lifecycle-docs branch from f82366f to 8ade07c Compare May 20, 2026 11:49
@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-8544 May 20, 2026 11:51 Inactive
Complete truncated bullet points in the Scaling To Zero section,
fix PDB eviction explanation, add NodePool YAML example with
conservative drain timeout values, and improve MkDocs admonition
formatting. Regenerate aggregated-docs.md via make docs-aggregate.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bryan-cox

Copy link
Copy Markdown
Member

/approve

@openshift-ci

openshift-ci Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

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

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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 21, 2026
@enxebre

enxebre commented May 25, 2026

Copy link
Copy Markdown
Member

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 25, 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.

@PoornimaSingour

Copy link
Copy Markdown
Contributor Author

/test

@openshift-ci

openshift-ci Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

@PoornimaSingour: The /test command needs one or more targets.
The following commands are available to trigger required jobs:

/test e2e-aks
/test e2e-aks-4-22
/test e2e-aks-override
/test e2e-aws
/test e2e-aws-4-22
/test e2e-aws-override
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-gke
/test images
/test okd-scos-images
/test security
/test verify-deps

The following commands are available to trigger optional jobs:

/test address-review-comments
/test agentic-qe-aws
/test e2e-aws-autonode
/test e2e-aws-external-oidc-techpreview
/test e2e-aws-metrics
/test e2e-aws-minimal
/test e2e-aws-techpreview
/test e2e-azure-aks-external-oidc-techpreview
/test e2e-azure-aks-ovn-conformance
/test e2e-azure-kubevirt-ovn
/test e2e-azure-v2-self-managed
/test e2e-conformance
/test e2e-gke
/test e2e-kubevirt-aws-ovn
/test e2e-kubevirt-azure-ovn
/test e2e-openstack-aws
/test e2e-openstack-aws-conformance
/test e2e-openstack-aws-csi-cinder
/test e2e-openstack-aws-csi-manila
/test e2e-openstack-aws-nfv
/test e2e-v2-aws-backuprestore
/test okd-scos-e2e-aws-ovn
/test reqserving-e2e-aws

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-hypershift-main-images
pull-ci-openshift-hypershift-main-okd-scos-images
pull-ci-openshift-hypershift-main-verify-deps
Details

In response to this:

/test

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.

@PoornimaSingour

Copy link
Copy Markdown
Contributor Author

/test ?

@openshift-ci

openshift-ci Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

@PoornimaSingour: The following commands are available to trigger required jobs:

/test e2e-aks
/test e2e-aks-4-22
/test e2e-aks-override
/test e2e-aws
/test e2e-aws-4-22
/test e2e-aws-override
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-gke
/test images
/test okd-scos-images
/test security
/test verify-deps

The following commands are available to trigger optional jobs:

/test address-review-comments
/test agentic-qe-aws
/test e2e-aws-autonode
/test e2e-aws-external-oidc-techpreview
/test e2e-aws-metrics
/test e2e-aws-minimal
/test e2e-aws-techpreview
/test e2e-azure-aks-external-oidc-techpreview
/test e2e-azure-aks-ovn-conformance
/test e2e-azure-kubevirt-ovn
/test e2e-azure-v2-self-managed
/test e2e-conformance
/test e2e-gke
/test e2e-kubevirt-aws-ovn
/test e2e-kubevirt-azure-ovn
/test e2e-openstack-aws
/test e2e-openstack-aws-conformance
/test e2e-openstack-aws-csi-cinder
/test e2e-openstack-aws-csi-manila
/test e2e-openstack-aws-nfv
/test e2e-v2-aws-backuprestore
/test okd-scos-e2e-aws-ovn
/test reqserving-e2e-aws

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-hypershift-main-images
pull-ci-openshift-hypershift-main-okd-scos-images
pull-ci-openshift-hypershift-main-verify-deps
Details

In response to this:

/test ?

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.

@PoornimaSingour

Copy link
Copy Markdown
Contributor Author

/verified

This is a documentation-only change (NodePool lifecycle docs). All CI checks pass — lint, verify, gitlint, build docs,
codespell, images. No code changes, no unit tests affected. Verified locally that the markdown renders correctly.

@openshift-ci-robot

Copy link
Copy Markdown

@PoornimaSingour: The /verified command must be used with one of the following actions: by, later, remove, or bypass. See https://docs.ci.openshift.org/docs/architecture/jira/#premerge-verification for more information.

Details

In response to this:

/verified

This is a documentation-only change (NodePool lifecycle docs). All CI checks pass — lint, verify, gitlint, build docs,
codespell, images. No code changes, no unit tests affected. Verified locally that the markdown renders correctly.

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.

@PoornimaSingour

Copy link
Copy Markdown
Contributor Author

/verified by me

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label May 25, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@PoornimaSingour: This PR has been marked as verified by me.

Details

In response to this:

/verified by me

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 commented May 25, 2026

Copy link
Copy Markdown
Contributor

@PoornimaSingour: 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 c19746e into openshift:main May 25, 2026
19 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@PoornimaSingour: Jira Issue Verification Checks: Jira Issue OCPBUGS-86075
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-86075 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

What this PR does / why we need it:

As a part of this PR below has been fixed in upstream document of NodePool lifecycle in Scaling To Zero section :

  • Complete truncated bullet points for PodDisruptionBudgets and PersistentVolumes conditions.
  • Add important admonition explaining expected behavior during simultaneous node removal.
  • Include YAML example for nodeDrainTimeout and nodeVolumeDetachTimeout fields.
  • Fix HyperShift casing and add cross-reference to scale-to-zero docs.

Which issue(s) this PR fixes:

Fixes : https://redhat.atlassian.net/browse/OCPBUGS-86075

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Documentation
  • Rewrote NodePool scale-down guidance to clarify why node drains can become blocked and what triggers this behavior.
  • Added an explicit important note that drains may block indefinitely when all nodes are removed at once.
  • Expanded prevention guidance with a concrete configuration example to increase node drain and volume-detach timeouts.
  • Added a note describing an alternative annotation-based approach that avoids draining.

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-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in release 5.0.0-0.nightly-2026-05-25-135947

This branch was successfully deployed

1 active deployment
docs-preview/pr-8544 — 7f54bba7 Deployed May 21, 2026 by github-actions[bot]
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 jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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.

5 participants