Skip to content

Add instrumentation for contextual logging to include service provider keys - #7412

Closed
deads2k wants to merge 2 commits into
openshift:mainfrom
deads2k:log-context-example
Closed

Add instrumentation for contextual logging to include service provider keys#7412
deads2k wants to merge 2 commits into
openshift:mainfrom
deads2k:log-context-example

Conversation

@deads2k

@deads2k deads2k commented Dec 18, 2025

Copy link
Copy Markdown
Contributor

We will use this to correlate our logs and have more efficient debugging capability between teams

/assign @sjenning

if this is agreeable, I'll search out all controllers and update them. There will likely be a followup later to log using JSON so we can more easily extract the keys.

@coderabbitai

coderabbitai Bot commented Dec 18, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Adds annotation-driven logging context across multiple controllers and webhooks by extracting service-provider annotations and injecting them into controller loggers and namespaces; introduces new support/logcontext utilities to build and propagate this annotation-based context.

Changes

Cohort / File(s) Change Summary
New logging utilities
support/logcontext/service_provider_logging.go
Add AddAnnotationContext(log logr.Logger, annotations map[string]string) logr.Logger to attach annotations with prefix context.serviceprovider.hypershift.openshift.io/ to a logger, and AddServiceProviderAnnotations(targetAnnotations, hostedClusterAnnotations map[string]string) to copy prefixed annotations into a target annotations map without overwriting existing keys.
HostedCluster controller & webhook
hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go, hypershift-operator/controllers/hostedcluster/hostedcluster_webhook.go
Inject annotation-enriched logger into reconcile/defaulting contexts using logcontext.AddAnnotationContext and ctrl.LoggerInto; propagate service-provider annotations into the HostedControlPlane namespace via logcontext.AddServiceProviderAnnotations. Adjust imports accordingly.
Other controllers — annotation logger propagation
hypershift-operator/controllers/hostedclustersizing/hostedclustersizing_controller.go, hypershift-operator/controllers/nodepool/nodepool_controller.go, hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go, hypershift-operator/controllers/platform/aws/controller.go, hypershift-operator/controllers/scheduler/azure/controller.go
After loading HostedCluster, wrap logger with logcontext.AddAnnotationContext and rebind it into the context with ctrl.LoggerInto at Reconcile start; no logic or signature changes otherwise.
Scheduler — AWS specific changes
hypershift-operator/controllers/scheduler/aws/autoscaler.go, hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go
Add logcontext use to enrich and inject logger with HostedCluster annotations in relevant reconcile paths (MachineSetDescaler and dedicated-serving reconciliations).
Build manifest
go.mod
Implicit updates due to added package usage (imports adjusted).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Heterogeneous but repetitive changes: many controllers receive the same logging/context injection pattern.
  • Areas needing extra attention:
    • support/logcontext/service_provider_logging.go correctness for string prefix handling and non-overwrite semantics.
    • Namespace annotation propagation in hostedcluster_controller.go to ensure no unintended mutation or nil-map panics.
    • Proper re-binding of logger into contexts (ctrl.LoggerInto) so downstream code consistently receives the enriched logger.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

@openshift-ci
openshift-ci Bot requested review from csrwng and sjenning December 18, 2025 21:31
@openshift-ci openshift-ci Bot added area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release and removed do-not-merge/needs-area labels Dec 18, 2025

@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: 0

🧹 Nitpick comments (1)
hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (1)

337-346: Consider validating that the extracted log key is not empty.

After removing the prefix from the annotation key, if the result is an empty string (e.g., if someone sets an annotation with key exactly "context.serviceprovider.hypershift.openshift.io/"), you would add an empty key to the logger. While this is an unlikely edge case, adding a defensive check would improve robustness.

🔎 Proposed defensive check
 func addAnnotationContext(log logr.Logger, annotations map[string]string) logr.Logger {
 	for k, v := range annotations {
 		if !strings.HasPrefix(k, "context.serviceprovider.hypershift.openshift.io/") {
 			continue
 		}
 		logKey, _ := strings.CutPrefix(k, "context.serviceprovider.hypershift.openshift.io/")
-
+		if logKey == "" {
+			continue
+		}
 		log = log.WithValues(logKey, v)
 	}
 	return log
 }
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between c33b48b and 53153ca.

📒 Files selected for processing (1)
  • hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go
🔇 Additional comments (1)
hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (1)

364-364: LGTM! Good placement for contextual logging enrichment.

The logger is enriched with service provider context early in the reconciliation flow, which will ensure all subsequent log entries include this context for better correlation and debugging across teams.

// This is useful when the service provider has keys like resourceGroupName, resourceName, hcpClusterName, clusterServiceID
// and wants to be able to select all log lines that contain those keys.
// We use annotations because they can hold more values and are applicable to all resource types.
func addAnnotationContext(log logr.Logger, annotations map[string]string) logr.Logger {

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.

Per Cesar, move to support/logcontext

…r keys

We will use this to correlate our logs and have more efficient debugging
capability between teams
Adding annotation from the service provider to the namespaces created
for particular requested clusters makes auto-labelling easier for
various aggregation concerns.
@deads2k
deads2k force-pushed the log-context-example branch from 53153ca to 5a8335f Compare December 19, 2025 17:48
@openshift-ci openshift-ci Bot added area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/azure PR/issue for Azure (AzurePlatform) platform labels Dec 19, 2025
@openshift-ci

openshift-ci Bot commented Dec 19, 2025

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: deads2k
Once this PR has been reviewed and has the lgtm label, please ask for approval from sjenning. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@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: 0

🧹 Nitpick comments (1)
support/logcontext/service_provider_logging.go (1)

28-38: Consider adding a defensive nil check for targetAnnotations.

The function mutates targetAnnotations in-place (line 36), which will panic if targetAnnotations is nil. The current caller properly initializes the map before calling (hostedcluster_controller.go:1310-1311), so there's no immediate issue. However, adding a guard would make the function more robust for future callers.

🔎 Optional defensive check
 func AddServiceProviderAnnotations(targetAnnotations map[string]string, hostedClusterAnnotations map[string]string) {
+	if targetAnnotations == nil {
+		return
+	}
 	for k, v := range hostedClusterAnnotations {
 		if !strings.HasPrefix(k, "context.serviceprovider.hypershift.openshift.io/") {
 			continue
 		}
 		if _, exists := targetAnnotations[k]; exists {
 			continue
 		}
 		targetAnnotations[k] = v
 	}
 }
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 53153ca and 5a8335f.

📒 Files selected for processing (10)
  • hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (4 hunks)
  • hypershift-operator/controllers/hostedcluster/hostedcluster_webhook.go (2 hunks)
  • hypershift-operator/controllers/hostedclustersizing/hostedclustersizing_controller.go (2 hunks)
  • hypershift-operator/controllers/nodepool/nodepool_controller.go (2 hunks)
  • hypershift-operator/controllers/platform/aws/controller.go (2 hunks)
  • hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go (2 hunks)
  • hypershift-operator/controllers/scheduler/aws/autoscaler.go (2 hunks)
  • hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go (3 hunks)
  • hypershift-operator/controllers/scheduler/azure/controller.go (2 hunks)
  • support/logcontext/service_provider_logging.go (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • hypershift-operator/controllers/hostedclustersizing/hostedclustersizing_controller.go
  • hypershift-operator/controllers/scheduler/azure/controller.go
  • hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go
  • hypershift-operator/controllers/nodepool/nodepool_controller.go
  • support/logcontext/service_provider_logging.go
  • hypershift-operator/controllers/scheduler/aws/autoscaler.go
  • hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go
  • hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go
  • hypershift-operator/controllers/hostedcluster/hostedcluster_webhook.go
  • hypershift-operator/controllers/platform/aws/controller.go
🧬 Code graph analysis (9)
hypershift-operator/controllers/hostedclustersizing/hostedclustersizing_controller.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/scheduler/azure/controller.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/nodepool/nodepool_controller.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/scheduler/aws/autoscaler.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (1)
support/logcontext/service_provider_logging.go (2)
  • AddAnnotationContext (13-23)
  • AddServiceProviderAnnotations (28-38)
hypershift-operator/controllers/hostedcluster/hostedcluster_webhook.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
hypershift-operator/controllers/platform/aws/controller.go (1)
support/logcontext/service_provider_logging.go (1)
  • AddAnnotationContext (13-23)
🔇 Additional comments (13)
hypershift-operator/controllers/scheduler/aws/autoscaler.go (1)

172-173: LGTM!

The logging context enrichment is correctly implemented. The logger is augmented with HostedCluster annotations and properly re-injected into the context for downstream use, enabling better log correlation across teams.

hypershift-operator/controllers/hostedclustersizing/hostedclustersizing_controller.go (1)

138-139: LGTM!

The annotation-based logging context is properly set up after fetching the HostedCluster, ensuring enriched log output for the reconciliation flow.

hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go (1)

123-125: LGTM!

The logging context is correctly enriched with HostedCluster annotations early in the reconciliation flow, providing useful context even during deletion scenarios.

hypershift-operator/controllers/nodepool/nodepool_controller.go (1)

222-223: LGTM!

The logging context enrichment is properly implemented after retrieving the HostedCluster, ensuring annotation-based context is available throughout the NodePool reconciliation.

hypershift-operator/controllers/hostedcluster/hostedcluster_webhook.go (1)

38-41: LGTM!

The logging context enrichment is well-implemented with a clear explanatory comment. This ensures annotation-based context propagates to any code retrieving the logger from the context during defaulting operations.

hypershift-operator/controllers/platform/aws/controller.go (1)

260-261: LGTM!

The logging context is correctly augmented with HostedCluster annotations after fetching the cluster, providing enriched context for AWS endpoint service reconciliation.

hypershift-operator/controllers/scheduler/azure/controller.go (1)

69-70: LGTM!

The annotation-based logging context is properly established after fetching the HostedCluster, ensuring enriched log output for Azure scheduling operations.

hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go (2)

155-156: LGTM!

The logging context enrichment in DedicatedServingComponentScheduler.Reconcile is correctly implemented, providing annotation-based context for dedicated serving component scheduling operations.


434-435: LGTM!

The logging context enrichment in DedicatedServingComponentSchedulerAndSizer.Reconcile follows the same correct pattern, ensuring consistent annotation-based logging context across both scheduler implementations.

hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go (3)

61-61: LGTM!

The new import is required for the annotation-based logging context functionality introduced in this PR.


348-349: LGTM!

The logger enrichment pattern is correct:

  1. Extracts service-provider annotations from HostedCluster
  2. Adds them as log context via AddAnnotationContext
  3. Rebinds the enriched logger into the context for downstream reconciliation steps

This ensures log correlation across teams as intended by the PR objectives.


1310-1314: LGTM!

The namespace annotation propagation correctly:

  1. Initializes the annotations map if needed (defensive nil check)
  2. Propagates service-provider annotations from HostedCluster to the HostedControlPlane namespace
  3. Enables consistent log context across namespaces for correlation

This aligns with the PR objective of enabling log correlation between teams.

support/logcontext/service_provider_logging.go (1)

13-23: LGTM!

The function correctly:

  • Filters annotations by the service-provider prefix
  • Strips the prefix to create clean log keys
  • Enriches the logger with key-value pairs using WithValues
  • Returns the augmented logger for caller rebinding

Handles nil annotations safely (range over nil map is a no-op in Go).

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 10, 2026
@openshift-merge-robot

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

3 similar comments
@openshift-merge-robot

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

@openshift-ci

openshift-ci Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

@deads2k: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aks 5a8335f link true /test e2e-aks
ci/prow/verify 5a8335f link true /test verify
ci/prow/unit 5a8335f link true /test unit
ci/prow/e2e-azure-self-managed 5a8335f link true /test e2e-azure-self-managed
ci/prow/verify-workflows 5a8335f link true /test verify-workflows
ci/prow/security 5a8335f link true /test security

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-ci

openshift-ci Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Stale PRs are closed after 21d of inactivity.

If this PR is still relevant, comment to refresh it or remove the stale label.
Mark the PR as fresh by commenting /remove-lifecycle stale.

If this PR is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci Bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 11, 2026
@openshift-ci

openshift-ci Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Stale PRs rot after 14d of inactivity.

Mark the PR as fresh by commenting /remove-lifecycle rotten.
Rotten PRs close after an additional 7d of inactivity.

If this PR is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci Bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jun 25, 2026
@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

Now I have the complete picture across all four jobs. Let me compile the final report.

Test Failure Analysis Complete

Job Information

  • Prow Jobs: pull-ci-openshift-hypershift-main-verify, pull-ci-openshift-hypershift-main-e2e-aks, pull-ci-openshift-hypershift-main-security, tide
  • Build IDs: 2002073556065718272 (verify), 2002073544221003776 (e2e-aks), 2053896686756958208 (security)
  • PR: Add instrumentation for contextual logging to include service provider keys #7412 — "Add instrumentation for contextual logging to include service provider keys"
  • PR Head Commit: 5a8335fc083f0d5c38c636a814f35571c2b50bb3
  • PR Mergeable State: CONFLICTING (mergeStateStatus: DIRTY)

Test Failure Analysis

Error

CONFLICT (content): Merge conflict in hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go
CONFLICT (content): Merge conflict in hypershift-operator/controllers/nodepool/nodepool_controller.go
CONFLICT (content): Merge conflict in hypershift-operator/controllers/platform/aws/controller.go
CONFLICT (content): Merge conflict in hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go
CONFLICT (content): Merge conflict in hypershift-operator/controllers/scheduler/aws/autoscaler.go
CONFLICT (content): Merge conflict in hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go
Automatic merge failed; fix conflicts and then commit the result.
# Error: exit status 1

Summary

All four failing CI jobs share the same root cause: PR #7412's branch is severely out of date with the main branch. When Prow attempts to merge the PR commit (5a8335fc) onto current main, git merge conflicts occur in 6 files — all controller files where the PR adds logcontext.AddAnnotationContext() calls. The verify and security jobs fail at the git-merge stage before any build/test/scan step runs. The e2e-aks job's artifacts have been garbage-collected (build ID 2002073544221003776 dates from ~December 2025), but earlier analysis from the PR indicates that specific run failed due to a transient AKS infrastructure flake (ovnkube-node DaemonSet reported 2/1 pods ready), not a code issue. The tide error is derivative — it cannot merge the PR because required checks are failing. GitHub confirms the PR's current mergeStateStatus is DIRTY with mergeable: CONFLICTING.

Root Cause

Primary cause: Stale PR branch with merge conflicts (all jobs)

PR #7412 modifies 10 files across multiple HyperShift controllers to add contextual logging instrumentation via a new support/logcontext package. The main branch has advanced significantly since the PR was created (the PR's base is far behind main — at the time of the security job run, main was at merge commit f16ca0d22 from PR #8478, indicating hundreds of PRs merged since #7412 was opened).

The PR touches controller Reconcile() methods to add logcontext.AddAnnotationContext(log, annotations) calls immediately after fetching the HostedCluster. These are the exact same code locations that other merged PRs have modified, causing content conflicts in 6 out of 10 changed files:

  1. hypershift-operator/controllers/hostedcluster/hostedcluster_controller.go
  2. hypershift-operator/controllers/nodepool/nodepool_controller.go
  3. hypershift-operator/controllers/platform/aws/controller.go
  4. hypershift-operator/controllers/resourcebasedcpautoscaler/controller.go
  5. hypershift-operator/controllers/scheduler/aws/autoscaler.go
  6. hypershift-operator/controllers/scheduler/aws/dedicated_request_serving_nodes.go

The conflict count has grown over time:

  • Earlier runs (verify-workflows, build 2045127325250490368): 1 conflict (platform/aws/controller.go)
  • Latest run (security, build 2053896686756958208): 6 conflicts (all files listed above)

Secondary cause for e2e-aks (transient infrastructure flake)

The e2e-aks job artifacts were garbage-collected, but the PR discussion indicates test TestCreateCluster/Main/Check_if_the_config.json_is_correct_in_all_of_the_nodes failed because ovnkube-node DaemonSet reported 2/1 pods ready — a transient AKS infrastructure condition during node scaling. The same test passed for a different HostedCluster within the same run, confirming it was a flake unrelated to the PR's code changes.

Tide error is derivative: Tide cannot merge the PR because required status checks are failing.

Recommendations
  1. Rebase the PR branch onto current main — This is the blocking action. The PR author (deads2k) must resolve merge conflicts in all 6 controller files. Given the number of conflicts has grown from 1 to 6 over time, rebasing sooner rather than later is critical to prevent further drift.

  2. Re-trigger all CI jobs after rebasing — Once conflicts are resolved and the branch is updated, all jobs (verify, e2e-aks, security) should be re-triggered. The code changes themselves (adding logcontext.AddAnnotationContext() calls) are straightforward additions that are unlikely to cause functional test failures.

  3. The e2e-aks flake does not require code changes — If e2e-aks fails again after rebase, a /retest e2e-aks is appropriate since the prior failure was an infrastructure flake unrelated to this PR's changes.

  4. Consider breaking the PR into smaller pieces — The PR touches 10 files across many controllers with a repetitive pattern. If merge conflict resolution becomes burdensome, the author could split the PR (e.g., one PR for the new support/logcontext package + one controller, then subsequent PRs for remaining controllers).

Evidence
Evidence Detail
PR mergeable state CONFLICTING (mergeStateStatus: DIRTY) confirmed via gh pr view
Verify job (build 2002073556065718272) GCS artifacts deleted; same-PR verify-workflows job (build 2045127325250490368) shows CONFLICT in platform/aws/controller.go, exit status 1
Security job (build 2053896686756958208) 6 merge conflicts: hostedcluster_controller.go, nodepool_controller.go, platform/aws/controller.go, resourcebasedcpautoscaler/controller.go, scheduler/aws/autoscaler.go, scheduler/aws/dedicated_request_serving_nodes.go
Security job main branch HEAD f16ca0d22 (PR #8478 merge), far ahead of PR #7412's base
e2e-aks job (build 2002073544221003776) GCS artifacts garbage-collected; PR discussion indicates ovnkube-node DaemonSet flake (2/1 pods ready)
Conflict escalation Earlier runs: 1 conflict; latest run: 6 conflicts — main branch continues to diverge
PR commit 5a8335fc083f0d5c38c636a814f35571c2b50bb3 (unchanged since PR creation)
Tide error Derivative — cannot merge because required checks are failing

@openshift-ci

openshift-ci Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Rotten PRs close after 7d of inactivity.

Reopen the PR by commenting /reopen.
Mark the PR as fresh by commenting /remove-lifecycle rotten.

/close

@openshift-ci openshift-ci Bot closed this Jul 2, 2026
@openshift-ci

openshift-ci Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

@openshift-ci[bot]: Closed this PR.

Details

In response to this:

Rotten PRs close after 7d of inactivity.

Reopen the PR by commenting /reopen.
Mark the PR as fresh by commenting /remove-lifecycle rotten.

/close

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

area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/azure PR/issue for Azure (AzurePlatform) platform lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants