Skip to content

OCPBUGS-90077: Fix infinite reboot on SSH exit command status#4284

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:masterfrom
mansikulkarni96:go1.26
Jul 9, 2026
Merged

OCPBUGS-90077: Fix infinite reboot on SSH exit command status#4284
openshift-merge-bot[bot] merged 1 commit into
openshift:masterfrom
mansikulkarni96:go1.26

Conversation

@mansikulkarni96

@mansikulkarni96 mansikulkarni96 commented Jul 7, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features

    • Nodes now track reboot attempts and stop retrying after a limit is reached.
  • Bug Fixes

    • Improved reboot handling so an expected SSH disconnect during restart is no longer treated as a failure.
    • When reboot attempts are exhausted, the reboot request is cleared and a warning is recorded.
    • Reboot-related cleanup now removes both the reboot request and any stored attempt count.

@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 Jul 7, 2026
@openshift-ci

openshift-ci Bot commented Jul 7, 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 Jul 7, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This change adds reboot-attempt tracking for nodes. New constants and helper functions in the metadata package read, increment, and clear a reboot-attempts annotation on nodes, alongside the existing reboot-required annotation. The node reconciler now checks the attempt count during reconciliation: reaching the configured maximum stops further reboot processing, clears annotations, and emits a warning event, while attempts below the maximum are incremented before proceeding. Separately, the Windows reboot routine now tolerates a specific SSH command-exit condition during restart, treating it as expected rather than a fatal error, with the remaining reboot/reinitialization sequence unchanged.

🚥 Pre-merge checks | ✅ 5 | ❌ 15

❌ Failed checks (15 inconclusive)

Check name Status Explanation Resolution
Go Best Practices & Build Tags ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Security: Secrets, Ssh & Csr ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Kubernetes Controller Patterns ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Windows Service Management ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Platform-Specific Requirements ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Stable And Deterministic Test Names ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Test Structure And Quality ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Microshift Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Single Node Openshift (Sno) Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Topology-Aware Scheduling Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Ote Binary Stdout Contract ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Ipv6 And Disconnected Network Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Weak-Crypto ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Container-Privileges ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Sensitive-Data-In-Logs ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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.
Title check ✅ Passed The title clearly matches the main fix: preventing repeated reboots when SSH exits during reboot.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 7, 2026
@mansikulkarni96

Copy link
Copy Markdown
Member Author

@CodeRabbit full review

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 `@controllers/node_controller.go`:
- Around line 97-111: The reboot flow in node reconciliation counts failures too
early and logs a non-error with Error, so update the logic around
`IncrementRebootAttempts`, `SafeReboot`, and the `r.log` call in the node
controller. Move the reboot-attempt increment so it happens only after an actual
reboot attempt fails (after `SafeReboot` returns an error), and leave setup
failures from `signer.Create`, `instanceFromNode`, or `NewNodeConfig` uncounted.
Also replace the `r.log.Error(nil, ...)` call for the max-attempts condition
with an appropriate `log.Info(...)` message since the warning event already
records the failure condition.
🪄 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: 9a67611e-a642-4189-9a4d-0f4db2e69d4b

📥 Commits

Reviewing files that changed from the base of the PR and between 232cb69 and c682d9a.

📒 Files selected for processing (3)
  • controllers/node_controller.go
  • pkg/metadata/metadata.go
  • pkg/windows/windows.go

Comment thread controllers/node_controller.go Outdated
Comment on lines +97 to +111
attempts := metadata.GetRebootAttempts(node)
if attempts >= metadata.MaxRebootAttempts {
r.log.Error(nil, "max reboot attempts reached", "node", node.Name, "attempts", attempts)
r.recorder.Eventf(node, core.EventTypeWarning, "RebootFailed",
"Node %s failed to reboot after %d attempts", node.Name, attempts)
if err := metadata.RemoveRebootAnnotation(ctx, r.client, *node); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to remove reboot annotation: %w", err)
}
return ctrl.Result{}, nil
}

if err := metadata.IncrementRebootAttempts(ctx, r.client, node); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to increment reboot attempts: %w", err)
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Reboot attempt counter is incremented before the reboot is attempted.

IncrementRebootAttempts (line 108) runs before signer.Create, instanceFromNode, NewNodeConfig, and SafeReboot. If any of these setup steps fail, the counter is incremented but no reboot was attempted. After 3 such failures (e.g., transient API errors during signer.Create), the node gives up without a single reboot attempt.

Consider moving the increment to after SafeReboot fails so only actual reboot failures are counted:

🔧 Suggested fix: increment after reboot failure
 	if _, ok := node.GetAnnotations()[metadata.RebootAnnotation]; ok {
 		attempts := metadata.GetRebootAttempts(node)
 		if attempts >= metadata.MaxRebootAttempts {
-			r.log.Error(nil, "max reboot attempts reached", "node", node.Name, "attempts", attempts)
+			r.log.Info("max reboot attempts reached, giving up", "node", node.Name, "attempts", attempts)
 			r.recorder.Eventf(node, core.EventTypeWarning, "RebootFailed",
 				"Node %s failed to reboot after %d attempts", node.Name, attempts)
 			if err := metadata.RemoveRebootAnnotation(ctx, r.client, *node); err != nil {
 				return ctrl.Result{}, fmt.Errorf("failed to remove reboot annotation: %w", err)
 			}
 			return ctrl.Result{}, nil
 		}
-
-		if err := metadata.IncrementRebootAttempts(ctx, r.client, node); err != nil {
-			return ctrl.Result{}, fmt.Errorf("failed to increment reboot attempts: %w", err)
-		}

 		signer, err := signer.Create(ctx, types.NamespacedName{Namespace: r.watchNamespace,
 			Name: secrets.PrivateKeySecret}, r.client)
 		if err != nil {
 			return ctrl.Result{}, fmt.Errorf("unable to create signer from private key secret: %w", err)
 		}
 		instanceInfo, err := r.instanceFromNode(ctx, node)
 		if err != nil {
 			return ctrl.Result{}, err
 		}
 		nc, err := nodeconfig.NewNodeConfig(ctx, r.client, r.k8sclientset, r.clusterServiceCIDR, r.watchNamespace,
 			instanceInfo, signer, nil, nil, r.platform)
 		if err != nil {
 			return ctrl.Result{}, fmt.Errorf("failed to create new nodeconfig: %w", err)
 		}
 		defer func() {
 			err := nc.Close()
 			if err != nil {
 				r.log.Info("WARNING: error closing nodeconfig", "error", err.Error())
 			}
 		}()

 		if err := nc.SafeReboot(ctx); err != nil {
+			if incErr := metadata.IncrementRebootAttempts(ctx, r.client, node); incErr != nil {
+				r.log.Error(incErr, "failed to increment reboot attempts", "node", node.Name)
+			}
 			return ctrl.Result{}, fmt.Errorf("full instance reboot failed: %w", err)
 		}
 	}
 	return ctrl.Result{}, nil
 }

Also, r.log.Error(nil, ...) on line 99 is semantically incorrect — log.Error expects an error. Use log.Info for this condition since the RebootFailed warning event already provides error-level visibility. As per coding guidelines, use logr.Logger appropriately: log.Error(err, ...) is for errors, log.Info(...) for conditions.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
attempts := metadata.GetRebootAttempts(node)
if attempts >= metadata.MaxRebootAttempts {
r.log.Error(nil, "max reboot attempts reached", "node", node.Name, "attempts", attempts)
r.recorder.Eventf(node, core.EventTypeWarning, "RebootFailed",
"Node %s failed to reboot after %d attempts", node.Name, attempts)
if err := metadata.RemoveRebootAnnotation(ctx, r.client, *node); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to remove reboot annotation: %w", err)
}
return ctrl.Result{}, nil
}
if err := metadata.IncrementRebootAttempts(ctx, r.client, node); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to increment reboot attempts: %w", err)
}
attempts := metadata.GetRebootAttempts(node)
if attempts >= metadata.MaxRebootAttempts {
r.log.Info("max reboot attempts reached, giving up", "node", node.Name, "attempts", attempts)
r.recorder.Eventf(node, core.EventTypeWarning, "RebootFailed",
"Node %s failed to reboot after %d attempts", node.Name, attempts)
if err := metadata.RemoveRebootAnnotation(ctx, r.client, *node); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to remove reboot annotation: %w", err)
}
return ctrl.Result{}, nil
}
signer, err := signer.Create(ctx, types.NamespacedName{Namespace: r.watchNamespace,
Name: secrets.PrivateKeySecret}, r.client)
if err != nil {
return ctrl.Result{}, fmt.Errorf("unable to create signer from private key secret: %w", err)
}
instanceInfo, err := r.instanceFromNode(ctx, node)
if err != nil {
return ctrl.Result{}, err
}
nc, err := nodeconfig.NewNodeConfig(ctx, r.client, r.k8sclientset, r.clusterServiceCIDR, r.watchNamespace,
instanceInfo, signer, nil, nil, r.platform)
if err != nil {
return ctrl.Result{}, fmt.Errorf("failed to create new nodeconfig: %w", err)
}
defer func() {
err := nc.Close()
if err != nil {
r.log.Info("WARNING: error closing nodeconfig", "error", err.Error())
}
}()
if err := nc.SafeReboot(ctx); err != nil {
if incErr := metadata.IncrementRebootAttempts(ctx, r.client, node); incErr != nil {
r.log.Error(incErr, "failed to increment reboot attempts", "node", node.Name)
}
return ctrl.Result{}, fmt.Errorf("full instance reboot failed: %w", err)
}
🤖 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 `@controllers/node_controller.go` around lines 97 - 111, The reboot flow in
node reconciliation counts failures too early and logs a non-error with Error,
so update the logic around `IncrementRebootAttempts`, `SafeReboot`, and the
`r.log` call in the node controller. Move the reboot-attempt increment so it
happens only after an actual reboot attempt fails (after `SafeReboot` returns an
error), and leave setup failures from `signer.Create`, `instanceFromNode`, or
`NewNodeConfig` uncounted. Also replace the `r.log.Error(nil, ...)` call for the
max-attempts condition with an appropriate `log.Info(...)` message since the
warning event already records the failure condition.

Source: Coding guidelines

Comment thread pkg/metadata/metadata.go
// DesiredVersionAnnotation is a Node annotation, indicating the Service ConfigMap that should be used to configure it
DesiredVersionAnnotation = "windowsmachineconfig.openshift.io/desired-version"
// RebootAnnotation indicates the node's underlying instance needs to be restarted
RebootAnnotation = "windowsmachineconfig.openshift.io/reboot-required"

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.

Kubernetes annotations are just map[string]string, so a value like a reboot-required having the counter is perfectly valid. for example reboot-required: "2"

Nothing anywhere inspects the value, so overloading it with the attempt count is a non-breaking change.

I'd lean toward consolidating to the single annotation, since it also reduces the total annotation surface area on the Node object

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

/lgtm

@jrvaldes

jrvaldes commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

/test unit

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 8, 2026
@openshift-ci

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jrvaldes, mansikulkarni96

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:
  • OWNERS [jrvaldes,mansikulkarni96]

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

@mansikulkarni96 mansikulkarni96 marked this pull request as ready for review July 8, 2026 16:08
@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 Jul 8, 2026
@openshift-ci openshift-ci Bot requested a review from jrvaldes July 8, 2026 16:09
@mansikulkarni96 mansikulkarni96 changed the title Fix infinite reboot on SSH exit command status OCPBUGS-90077: Fix infinite reboot on SSH exit command status Jul 8, 2026
@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 8, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@mansikulkarni96: This pull request references Jira Issue OCPBUGS-90077, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

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

Details

In response to this:

Summary by CodeRabbit

  • New Features

  • Nodes now track reboot attempts and stop retrying after a limit is reached.

  • Bug Fixes

  • Improved reboot handling so an expected SSH disconnect during restart is no longer treated as a failure.

  • When reboot attempts are exhausted, the reboot request is cleared and a warning is recorded.

  • Reboot-related cleanup now removes both the reboot request and any stored attempt count.

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.

@mansikulkarni96

Copy link
Copy Markdown
Member Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Jul 8, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@mansikulkarni96: This pull request references Jira Issue OCPBUGS-90077, 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 ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

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 openshift-ci-robot removed the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Jul 8, 2026
@mansikulkarni96

Copy link
Copy Markdown
Member Author

/cherry-pick release-4.22
/cherry-pick release-4.21
/cherry-pick release-4.20

@openshift-cherrypick-robot

Copy link
Copy Markdown

@mansikulkarni96: once the present PR merges, I will cherry-pick it on top of release-4.20, release-4.21, release-4.22 in new PRs and assign them to you.

Details

In response to this:

/cherry-pick release-4.22
/cherry-pick release-4.21
/cherry-pick release-4.20

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.

@jrvaldes

jrvaldes commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

/override ci/prow/vsphere-disconnected-e2e-operator

@openshift-ci

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@jrvaldes: Overrode contexts on behalf of jrvaldes: ci/prow/vsphere-disconnected-e2e-operator

Details

In response to this:

/override ci/prow/vsphere-disconnected-e2e-operator

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.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 1f60442 and 2 for PR HEAD a8f3c2a in total

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 23a7dca and 1 for PR HEAD a8f3c2a in total

@mansikulkarni96

Copy link
Copy Markdown
Member Author

/test vsphere-proxy-e2e-operator

@mansikulkarni96

Copy link
Copy Markdown
Member Author

/override ci/prow/vsphere-proxy-e2e-operator

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@mansikulkarni96: Overrode contexts on behalf of mansikulkarni96: ci/prow/vsphere-proxy-e2e-operator

Details

In response to this:

/override ci/prow/vsphere-proxy-e2e-operator

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.

@mansikulkarni96

Copy link
Copy Markdown
Member Author

/override ci/prow/vsphere-disconnected-e2e-operator

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@mansikulkarni96: Overrode contexts on behalf of mansikulkarni96: ci/prow/vsphere-disconnected-e2e-operator

Details

In response to this:

/override ci/prow/vsphere-disconnected-e2e-operator

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.

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@mansikulkarni96: 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 5035be4 into openshift:master Jul 9, 2026
19 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@mansikulkarni96: Jira Issue OCPBUGS-90077: All pull requests linked via external trackers have merged:

Jira Issue OCPBUGS-90077 has been moved to the MODIFIED state.

Details

In response to this:

Summary by CodeRabbit

  • New Features

  • Nodes now track reboot attempts and stop retrying after a limit is reached.

  • Bug Fixes

  • Improved reboot handling so an expected SSH disconnect during restart is no longer treated as a failure.

  • When reboot attempts are exhausted, the reboot request is cleared and a warning is recorded.

  • Reboot-related cleanup now removes both the reboot request and any stored attempt count.

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

Copy link
Copy Markdown

@mansikulkarni96: new pull request created: #4296

Details

In response to this:

/cherry-pick release-4.22
/cherry-pick release-4.21
/cherry-pick release-4.20

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.

@openshift-cherrypick-robot

Copy link
Copy Markdown

@mansikulkarni96: new pull request created: #4297

Details

In response to this:

/cherry-pick release-4.22
/cherry-pick release-4.21
/cherry-pick release-4.20

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.

@openshift-cherrypick-robot

Copy link
Copy Markdown

@mansikulkarni96: new pull request created: #4298

Details

In response to this:

/cherry-pick release-4.22
/cherry-pick release-4.21
/cherry-pick release-4.20

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.

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. jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants