Skip to content

NO-JIRA: chore(deps): weekly dependabot consolidation - #8334

Merged
openshift-merge-bot[bot] merged 5 commits into
openshift:mainfrom
hypershift-community:fix/weekly-dependabot-consolidation
Apr 30, 2026
Merged

NO-JIRA: chore(deps): weekly dependabot consolidation#8334
openshift-merge-bot[bot] merged 5 commits into
openshift:mainfrom
hypershift-community:fix/weekly-dependabot-consolidation

Conversation

@hypershift-jira-solve-ci

@hypershift-jira-solve-ci hypershift-jira-solve-ci Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Weekly consolidation of dependabot dependency updates.

Consolidated PRs

Commits

  1. chore(deps): update root module dependencies
  2. chore(deps): update vendored dependencies
  3. chore(deps): update hack/tools module dependencies
  4. chore(deps): update hack/tools vendored dependencies
  5. chore: update remaining generated files

Assisted-by: Claude (via Claude Code)


Note: This PR was auto-generated by the dependabot-triage periodic CI job. See the full report for token usage, cost breakdown, and detailed output.

Summary by CodeRabbit

  • Chores

    • Upgraded Go module dependencies to latest stable versions across multiple packages including cryptography libraries, Git utilities, and observability tools to enhance platform stability, security, and system compatibility.
  • Tests

    • Fixed test log output formatting to improve readability and clarity during test execution and result reporting.

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

Copy link
Copy Markdown

@hypershift-jira-solve-ci[bot]: This pull request explicitly references no jira issue.

Details

In response to this:

Summary

Weekly consolidation of dependabot dependency updates.

Consolidated PRs

Commits

  1. chore(deps): update root module dependencies
  2. chore(deps): update vendored dependencies
  3. chore(deps): update hack/tools module dependencies
  4. chore(deps): update hack/tools vendored dependencies
  5. chore: update remaining generated files

Assisted-by: Claude (via Claude Code)


Note: This PR was auto-generated by the dependabot-triage periodic CI job. See the full report for token usage, cost breakdown, and detailed output.

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.

@coderabbitai

coderabbitai Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 8e57e511-e74e-4d97-9bfa-15f006498a85

📥 Commits

Reviewing files that changed from the base of the PR and between c1a8bb6 and 6ea5b6b.

⛔ Files ignored due to path filters (100)
  • contrib/repo_metrics/uv.lock is excluded by !**/*.lock
  • go.sum is excluded by !**/*.sum
  • hack/tools/go.sum is excluded by !**/*.sum
  • hack/tools/vendor/github.com/go-git/go-billy/v5/fs.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/helper/chroot/chroot.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/helper/polyfill/polyfill.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/memfs/memory.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/memfs/storage.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/osfs/os_bound.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-billy/v5/osfs/os_chroot.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/plumbing/format/index/index.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/repository.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/repository_extensions.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_unix.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_windows.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/storage/memory/storage.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/utils/merkletrie/filesystem/node.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/worktree.go is excluded by !**/vendor/**
  • hack/tools/vendor/github.com/go-git/go-git/v5/worktree_status.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/.golangci.yml is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/CHANGELOG.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/Makefile is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/RELEASING.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/encoder.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/hash.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/kv.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/type_string.go is excluded by !**/vendor/**, !**/*_string.go
  • hack/tools/vendor/go.opentelemetry.io/otel/attribute/value.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/baggage/baggage.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/internal/errorhandler/errorhandler.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/internal/global/handler.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/internal/global/state.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/metric/asyncint64.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/metric/meter.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/metric/syncint64.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/propagation/baggage.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/propagation/trace_context.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/requirements.txt is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/internal/x/features.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/config.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/container.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/env.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/os.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/process.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/internal/observ/batch_span_processor.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/internal/observ/simple_span_processor.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/internal/observ/tracer.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/trace/span.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/sdk/version.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/MIGRATION.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/MIGRATION.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/attribute_group.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/doc.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/error_type.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/exception.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/otelconv/metric.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/schema.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/trace/auto.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/trace/trace.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/trace/tracestate.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/version.go is excluded by !**/vendor/**
  • hack/tools/vendor/go.opentelemetry.io/otel/versions.yaml is excluded by !**/vendor/**
  • hack/tools/vendor/modules.txt is excluded by !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v3/asymmetric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v3/cipher/key_wrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v3/symmetric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v4/asymmetric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v4/cipher/key_wrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-jose/go-jose/v4/symmetric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/connection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/PATENTS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/dictionary.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/spdystream/spdy/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/modules.txt is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (3)
  • go.mod
  • hack/tools/go.mod
  • test/e2e/nodepool_test.go

📝 Walkthrough

Walkthrough

This pull request updates Go module dependencies across two module files and corrects a log message formatting issue in a test file. The go.mod file upgrades github.com/go-jose/go-jose/v3 to v3.0.5, github.com/go-jose/go-jose/v4 to v4.1.4, and github.com/moby/spdystream to v0.5.1. The hack/tools/go.mod file updates indirect dependencies including github.com/go-git/go-billy/v5 and github.com/go-git/go-git/v5 to v5.8.0 and v5.18.0 respectively, along with OpenTelemetry Go packages from v1.40.0 to v1.43.0. Additionally, a test file corrects string concatenation in a log message to include proper whitespace.

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 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 pull request as a weekly consolidation of Dependabot dependency updates across multiple modules.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.
Stable And Deterministic Test Names ✅ Passed The pull request does not contain any Ginkgo test definitions with dynamic names. The modified test file uses standard Go testing framework, and the only change is a logging statement fix.
Test Structure And Quality ✅ Passed The pull request modifies only test/e2e/nodepool_test.go using standard Go testing package, not Ginkgo. The custom check evaluates Ginkgo test code quality, which is not applicable to this file.
Microshift Test Compatibility ✅ Passed PR contains only dependency version bumps and a single-line log message fix in an existing test. No new Ginkgo e2e tests were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR only modifies dependencies and fixes string concatenation in existing test logging; no new Ginkgo e2e tests are added.
Topology-Aware Scheduling Compatibility ✅ Passed PR contains only Go module dependency updates and test log message fixes, with no modifications to deployment manifests, operator code, or controllers.
Ote Binary Stdout Contract ✅ Passed PR contains only dependency version updates and a test log formatting fix within a test case, with no new process-level stdout-writing code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR only updates dependencies and fixes existing test logging; no new Ginkgo e2e tests were added.

✏️ 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
openshift-ci Bot requested review from cblecker and jparrill April 24, 2026 20:15
@openshift-ci openshift-ci Bot added area/ci-tooling Indicates the PR includes changes for CI or tooling area/testing Indicates the PR includes changes for e2e testing and removed do-not-merge/needs-area labels Apr 24, 2026
@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 36.42%. Comparing base (15b9f13) to head (8bcc436).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8334   +/-   ##
=======================================
  Coverage   36.42%   36.42%           
=======================================
  Files         765      765           
  Lines       93302    93302           
=======================================
  Hits        33981    33981           
  Misses      56606    56606           
  Partials     2715     2715           
Flag Coverage Δ
cmd-support 30.37% <ø> (ø)
cpo-hostedcontrolplane 37.08% <ø> (ø)
cpo-other 35.69% <ø> (ø)
hypershift-operator 47.88% <ø> (ø)
other 27.76% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bryan-cox

Copy link
Copy Markdown
Member

/test ci/prow/e2e-v2-aws

@bryan-cox

Copy link
Copy Markdown
Member

/approve

@openshift-ci

openshift-ci Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bryan-cox, hypershift-jira-solve-ci[bot]

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 Apr 27, 2026
@bryan-cox

Copy link
Copy Markdown
Member

/test e2e-v2-aws

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

Dropped a question, otherwise lgtm

@@ -52,11 +52,11 @@ wheels = [

[[package]]

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.

Why this change is necessary?

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.

This change updates the uv.lock file to reflect the Pygments version bump from 2.19.2 to 2.20.0, which is part of the consolidated dependabot PR #8112. The uv.lock file is a lockfile for the Python dependencies in contrib/repo_metrics/ — when the Pygments dependency version is bumped in the project requirements, the lockfile must be updated accordingly to keep the pinned version, hashes, and download URLs in sync. Without this update, the lockfile would be stale and could cause version mismatches when installing dependencies.


AI-assisted response via Claude Code

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.

This change is part of the weekly dependabot dependency consolidation. The uv.lock file is the lockfile for the contrib/repo_metrics Python project — it was automatically updated to reflect the pygments version bump from 2.19.2 to 2.20.0. Keeping the lockfile in sync with updated dependencies ensures reproducible builds and avoids version drift.


AI-assisted response via Claude Code

@bryan-cox

Copy link
Copy Markdown
Member

/test address-review-comments

@jparrill

Copy link
Copy Markdown
Contributor

/lgtm

@jparrill

Copy link
Copy Markdown
Contributor

/verified by e2e

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

Copy link
Copy Markdown

@jparrill: This PR has been marked as verified by e2e.

Details

In response to this:

/verified by e2e

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 the lgtm Indicates that a PR is ready to be merged. label Apr 28, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage.

@bryan-cox

Copy link
Copy Markdown
Member

/pipeline required

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks-4-22
/test e2e-aws-4-22
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor Author

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2049537479467339776 | Cost: $4.444317500000001 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@bryan-cox

Copy link
Copy Markdown
Member

/retest

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor Author

Test Failure Analysis Complete

Job Information

Test Failure Analysis

Error

"Process did not finish before 2h0m0s timeout"
Container test exited with code 127, reason Error

TestCreateCluster/Main/EnsureMetricsForwarderWorking stuck in retry loop:
  "kube-apiserver target via metrics-forwarder not found in Prometheus active targets (will retry)"

Summary

The hypershift-aws-run-e2e-nested step exceeded its 2-hour timeout because the TestCreateCluster test never completed. All 11 other top-level tests passed successfully. TestCreateCluster got stuck during its final Main subtest — EnsureMetricsForwarderWorking — which polls Prometheus for a kube-apiserver scrape target via the metrics-forwarder. The target was never found, and the test appears to have hung indefinitely (the 10-minute PollUntilContextTimeout may not have fired or was blocked), leaving TestCreateCluster running silently for over an hour until the overall 2h timeout killed the process. This is unrelated to the dependabot dependency changes in the PR (go-jose, moby/spdystream, otel updates); the failure is a pre-existing flaky condition in the EnsureMetricsForwarderWorking test where the hosted cluster's Prometheus never discovers the metrics-forwarder scrape target.

Root Cause

The root cause is that TestCreateCluster/Main/EnsureMetricsForwarderWorking became stuck waiting for the guest cluster's Prometheus to discover and scrape a kube-apiserver target via the control-plane-metrics-forwarder service. The test sequence was:

  1. Metrics forwarding was enabled on the HostedCluster (line 1619)
  2. The endpoint-resolver and metrics-proxy deployments in the HCP namespace became ready
  3. The control-plane-metrics-forwarder deployment in the guest cluster (openshift-monitoring namespace) became ready
  4. Prometheus pod prometheus-k8s-0 was confirmed running
  5. Stuck point: The test began polling Prometheus's /api/v1/targets endpoint for an active target with scrape pool containing control-plane-metrics-forwarder and URL containing /metrics/kube-apiserver — this target was never found

The test uses wait.PollUntilContextTimeout with a 10-minute timeout and 15-second interval. However, after 5 retry log messages (lines 1644-1658), there was zero further output from this test for the remaining ~75 minutes until the 2h process timeout killed everything. This suggests either:

  • The PollUntilContextTimeout context was canceled/blocked by something outside the poll loop
  • The kubectl exec call into the Prometheus pod (used to query targets) hung on a network operation
  • The test goroutine was blocked and unable to log or timeout properly

The dependency changes in this PR (go-jose v3.0.5, go-jose v4.1.4, moby/spdystream v0.5.1, otel v1.43.0) do not affect the metrics-proxy/metrics-forwarder code path. The only test code change was a whitespace formatting fix in nodepool_test.go. This is a pre-existing flaky condition.

Recommendations
  1. Retry the job — This failure is a pre-existing test flake in EnsureMetricsForwarderWorking, not caused by the dependabot changes in PR NO-JIRA: chore(deps): weekly dependabot consolidation #8334. The dependency updates (go-jose, spdystream, otel) are in vendored libraries unrelated to the metrics forwarding code path.

  2. File a bug for the EnsureMetricsForwarderWorking hang — The test's 10-minute PollUntilContextTimeout did not terminate properly, causing the entire test suite to hang. The test should add:

    • A hard per-test timeout via t.Deadline() or explicit context cancellation
    • A timeout on the kubectl exec call to Prometheus (which may be the hung operation)
    • Better logging when the poll timeout fires (currently silent after timeout)
  3. Investigate metrics-forwarder target discovery — The Prometheus target was never found despite the control-plane-metrics-forwarder deployment being ready. This may indicate a race condition in the metrics-forwarder's ServiceMonitor configuration or a transient issue with the hosted cluster's Prometheus scrape configuration.

Evidence
Evidence Detail
Failed step hypershift-aws-run-e2e-nested (test phase, 2h30m8s runtime including grace period)
Exit code 127 (process timed out)
Stuck test TestCreateCluster/Main/EnsureMetricsForwarderWorking
Last test output util_metrics_proxy.go:117: kube-apiserver target via metrics-forwarder not found in Prometheus active targets (will retry) (line 1658)
Silence duration ~75 minutes between last retry log and process kill
Passed tests 11/12 top-level tests passed (TestNodePoolMultiArch, TestHAEtcdChaos, TestCreateClusterProxy, TestCreateClusterCustomConfig, TestCreateClusterPrivateWithRouteKAS, TestCreateClusterPrivate, TestCreateClusterRequestServingIsolation, TestNodePoolAutoscalingScaleFromZero, TestUpgradeControlPlane, TestNodePool, TestAutoscaling)
PR changes go-jose v3.0.4→v3.0.5, go-jose v4.1.3→v4.1.4, moby/spdystream v0.5.0→v0.5.1, otel v1.40.0→v1.43.0, whitespace fix in nodepool_test.go
Test start time 2026-04-29T18:34:33Z
Timeout time 2026-04-29T20:34:33Z (exactly 2h)
Grace period expiry 2026-04-29T21:04:33Z (30m grace)

OpenShift CI Bot added 4 commits April 30, 2026 00:11
Vendor updates for root module dependency changes.
Weekly dependabot dependency consolidation for hack/tools/ module.
Vendor updates for hack/tools/ module dependency changes.
Additional generated file updates from dependency changes.
@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor Author

Re: #8334 (comment)

Done. Rebased onto upstream/main — all 5 commits applied cleanly. Build verified successfully.


AI-assisted response via Claude Code

@hypershift-jira-solve-ci
hypershift-jira-solve-ci Bot force-pushed the fix/weekly-dependabot-consolidation branch from 6ea5b6b to 8bcc436 Compare April 30, 2026 00:18
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Apr 30, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@bryan-cox

Copy link
Copy Markdown
Member

/lgtm

just rebased to get latest gha workflow

@bryan-cox

Copy link
Copy Markdown
Member

/verified by e2e

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

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

Copy link
Copy Markdown

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

Details

In response to this:

/verified by e2e

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.

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor Author

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aws | Build: 2049650243108081664 | Cost: $4.526852250000001 | Failed step: hypershift-aws-run-e2e-nested

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@cblecker

Copy link
Copy Markdown
Member

/retest-required

@openshift-merge-bot
openshift-merge-bot Bot merged commit 5eaee74 into openshift:main Apr 30, 2026
32 checks passed
@ricardomaraschini

Copy link
Copy Markdown
Contributor

/cherry-pick release-4.22

@openshift-cherrypick-robot

Copy link
Copy Markdown

@ricardomaraschini: new pull request created: #8383

Details

In response to this:

/cherry-pick release-4.22

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. area/ci-tooling Indicates the PR includes changes for CI or tooling area/testing Indicates the PR includes changes for e2e testing 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.

6 participants