Skip to content

Fix dispatcher capacity and add ipCapacity field to count for maxNodes - #5346

Open
deepsm007 wants to merge 1 commit into
openshift:mainfrom
deepsm007:fix/dispatcher-capacity-and-ipcapacity
Open

Fix dispatcher capacity and add ipCapacity field to count for maxNodes#5346
deepsm007 wants to merge 1 commit into
openshift:mainfrom
deepsm007:fix/dispatcher-capacity-and-ipcapacity

Conversation

@deepsm007

@deepsm007 deepsm007 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Dispatcher used to balance jobs only with capacity (how much load we want on a cluster). That ignored how many nodes a cluster can actually grow to before it runs out of subnet IPs so tight /26 farms (e.g. build09) got the same pressure as roomy /24 ones (e.g. build05) and hit scale/IP limits first.

This adds optional ipCapacity (usable IPs / max nodes from the CIDR) and weights load as capacity × (ipCapacity / farm max). Same capacity → bigger CIDR takes more jobs; cutting capacity 100→50 still halves load. Missing ipCapacity keeps the old capacity-only behavior.

/cc @jmguzik @openshift/test-platform

Reference thread

Summary

Enhances the Prow job dispatcher’s load balancing to optionally account for farm subnet IP capacity.

  • Cluster load uses capacity × (ipCapacity / maxIPCapacity).
  • Farms with larger CIDRs receive more jobs at equal capacity.
  • Reduced ipCapacity proportionally reduces a farm’s load.
  • Farms without ipCapacity retain capacity-only behavior.
  • Fallback selection skips blocked, ineligible, and invalid-capacity clusters.
  • Cluster configuration loading and change detection now support ipCapacity.
  • Prometheus volume distribution uses the same weighting.
  • Tests cover configuration validation, cluster selection, load scoring, and volume distribution.

@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: automatic mode

@openshift-ci
openshift-ci Bot requested review from a team and jmguzik July 30, 2026 20:02
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

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: d53dadb4-3a5b-4cb2-93c8-7f7dc771d797

📥 Commits

Reviewing files that changed from the base of the PR and between f2ceeee and f34e466.

📒 Files selected for processing (2)
  • pkg/dispatcher/helpers.go
  • pkg/dispatcher/helpers_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • openshift/release (manual)
  • openshift/ci-docs (manual)
  • openshift/release-controller (manual)
  • openshift/ci-chat-bot (manual)
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/dispatcher/helpers.go
  • pkg/dispatcher/helpers_test.go

📝 Walkthrough

Walkthrough

Changes

The dispatcher now parses optional cluster IP capacity, derives IP-weighted load, uses stress scores for fallback selection, and distributes Prometheus volumes by normalized load weights. Tests cover parsing, change detection, selection, stress scoring, and volume allocation.

IP-weighted cluster dispatch

Layer / File(s) Summary
Capacity metadata and weighting
pkg/dispatcher/config.go, pkg/dispatcher/helpers.go, pkg/dispatcher/helpers_test.go
Cluster configuration supports optional IPCapacity. Weighting, parsing, change detection, and related tests were updated.
Stress-based fallback selection
cmd/prow-job-dispatcher/main.go, cmd/prow-job-dispatcher/main_test.go
Fallback selection filters ineligible clusters and chooses the eligible cluster with the lowest volume-to-weight stress score.
Weighted volume distribution
pkg/dispatcher/prometheus_volumes.go, pkg/dispatcher/prometheus_volumes_test.go
Volume allocation uses normalized LoadWeight values, with tests covering IP capacity and cluster capacity changes.

Estimated code review effort: 3 (Moderate) | ~30 minutes

🚥 Pre-merge checks | ✅ 15 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 15.38% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Coverage For New Features ⚠️ Warning The patch tests LoadWeight and clusterStressScore, but MaxIPCapacity is a new pure function with no direct unit test; it is only exercised indirectly by volume and dispatch tests. Add a table-driven TestMaxIPCapacity covering empty maps, zero capacities, and multiple positive IPCapacity values.
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the dispatcher capacity fix and the addition of ipCapacity for max-node-aware load balancing.
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.
Go Error Handling ✅ Passed The added code checks validation and selection errors, propagates them, uses contextual fmt.Errorf where it creates errors, and adds no panic, ignored error, or unsafe pointer dereference.
Stable And Deterministic Test Names ✅ Passed Changed tests use Go table-driven t.Run names with static literals; no Ginkgo declarations or dynamic pod, node, namespace, timestamp, UUID, or IP values appear.
Test Structure And Quality ✅ Passed The changed tests use standard Go testing and local fakes/configuration. No Ginkgo blocks, cluster resource operations, or Eventually/Consistently waits require this check.
Microshift Test Compatibility ✅ Passed The PR adds standard Go unit tests using testing.T; no Ginkgo e2e tests, MicroShift-sensitive APIs, or unsupported feature assumptions were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The pull request adds standard Go unit tests (Test...), not Ginkgo e2e tests; no new It, Describe, Context, or When tests require SNO compatibility review.
Topology-Aware Scheduling Compatibility ✅ Passed The commit changes only dispatcher Go code and tests for cluster load scoring; it adds no deployment manifests, operator/controller code, or topology-based scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The diff adds no stdout writes or suite-level output setup; new code uses pure calculations and fmt.Errorf, while main initializes logging with logrusutil.Init before log calls.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The pull request adds only standard Go unit tests (Test...); no new Ginkgo e2e tests, IPv4 assumptions, or external connectivity requirements are present.
No-Weak-Crypto ✅ Passed The PR diff adds no MD5, SHA-1, DES, RC4, Blowfish, ECB, crypto API, custom crypto, or secret/token comparison code.
Container-Privileges ✅ Passed The PR changes only seven Go files. No manifest or Dockerfile changes exist, and searches found no privileged, host namespace, SYS_ADMIN, or privilege-escalation settings.
No-Sensitive-Data-In-Logs ✅ Passed The PR adds no logging calls or secret-bearing values; new errors expose only config paths, provider names, cluster names, and numeric capacity data.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: deepsm007

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 Jul 30, 2026

@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

🧹 Nitpick comments (2)
cmd/prow-job-dispatcher/main.go (1)

235-253: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Non-deterministic tie-breaking when clusters share the same stress score.

for c, v := range m ranges a plain map with randomized Go iteration order. When multiple clusters tie on score (e.g. all-zero initial volumes), the winner varies run-to-run, making dispatch decisions non-reproducible for identical inputs.

♻️ Suggested deterministic iteration
-			m := cv.clusterVolumeMap[cp]
-			for c, v := range m {
+			m := cv.clusterVolumeMap[cp]
+			clusterNames := make([]string, 0, len(m))
+			for c := range m {
+				clusterNames = append(clusterNames, c)
+			}
+			sort.Strings(clusterNames)
+			for _, c := range clusterNames {
+				v := m[c]
🤖 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 `@cmd/prow-job-dispatcher/main.go` around lines 235 - 253, Make cluster
selection deterministic in the loop over cv.clusterVolumeMap by collecting
eligible cluster keys and iterating them in a stable sorted order before
computing clusterStressScore. Preserve the existing filtering and scoring
behavior, including retaining the first cluster encountered when scores tie.
pkg/dispatcher/config.go (1)

32-50: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Expand doc comments for MaxIPCapacity/LoadWeight with params and return semantics.

Both are new exported functions central to the dispatcher's weighting contract (consumed in cmd/prow-job-dispatcher/main.go and pkg/dispatcher/prometheus_volumes.go). Current comments state the "what" but not parameters/return value, making the scaling behavior (0=omit semantics, ratio direction) less discoverable for callers.

As per path instructions, "Comment important exported functions with their purpose, parameters, and return values."

📝 Suggested doc improvement
-// MaxIPCapacity returns the largest IPCapacity in m.
+// MaxIPCapacity returns the largest IPCapacity value found across all
+// clusters in m. It returns 0 if m is empty or no cluster has IPCapacity set.
 func MaxIPCapacity(m ClusterMap) int {
 	max := 0
 	for _, info := range m {
 		if info.IPCapacity > max {
 			max = info.IPCapacity
 		}
 	}
 	return max
 }
 
-// LoadWeight is Capacity scaled by ipCapacity/maxIP when IP is set.
+// LoadWeight returns the effective scheduling weight for a cluster: its
+// Capacity scaled by (IPCapacity / maxIP) when both info.IPCapacity and
+// maxIP are positive; otherwise it returns Capacity unscaled, preserving
+// capacity-only behavior for clusters/farms without IPCapacity configured.
 func LoadWeight(info ClusterInfo, maxIP int) float64 {
🤖 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 `@pkg/dispatcher/config.go` around lines 32 - 50, Expand the Go doc comments
for exported functions MaxIPCapacity and LoadWeight to describe their purpose,
parameters, and return values. Document that MaxIPCapacity returns the largest
IPCapacity in the provided ClusterMap, and that LoadWeight scales Capacity by
IPCapacity/maxIP only when both values are positive, preserving Capacity when IP
scaling is omitted.
🤖 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 `@cmd/prow-job-dispatcher/main.go`:
- Around line 229-254: Update findClusterForJobConfig’s fallback selection after
the candidate loop to detect when no valid, unblocked cluster was assigned.
Return an explicit error instead of allowing the function to return an empty
cluster, preserving the existing selection behavior when at least one candidate
survives the filters.

---

Nitpick comments:
In `@cmd/prow-job-dispatcher/main.go`:
- Around line 235-253: Make cluster selection deterministic in the loop over
cv.clusterVolumeMap by collecting eligible cluster keys and iterating them in a
stable sorted order before computing clusterStressScore. Preserve the existing
filtering and scoring behavior, including retaining the first cluster
encountered when scores tie.

In `@pkg/dispatcher/config.go`:
- Around line 32-50: Expand the Go doc comments for exported functions
MaxIPCapacity and LoadWeight to describe their purpose, parameters, and return
values. Document that MaxIPCapacity returns the largest IPCapacity in the
provided ClusterMap, and that LoadWeight scales Capacity by IPCapacity/maxIP
only when both values are positive, preserving Capacity when IP scaling is
omitted.
🪄 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: fe339fd5-1fc7-4567-8652-beb7b12944de

📥 Commits

Reviewing files that changed from the base of the PR and between 7fa17c5 and 55f51c9.

📒 Files selected for processing (7)
  • cmd/prow-job-dispatcher/main.go
  • cmd/prow-job-dispatcher/main_test.go
  • pkg/dispatcher/config.go
  • pkg/dispatcher/helpers.go
  • pkg/dispatcher/helpers_test.go
  • pkg/dispatcher/prometheus_volumes.go
  • pkg/dispatcher/prometheus_volumes_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • openshift/release (manual)
  • openshift/ci-docs (manual)
  • openshift/release-controller (manual)
  • openshift/ci-chat-bot (manual)

Comment thread cmd/prow-job-dispatcher/main.go
@deepsm007
deepsm007 force-pushed the fix/dispatcher-capacity-and-ipcapacity branch from 55f51c9 to f99e852 Compare July 30, 2026 20:11

@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

🧹 Nitpick comments (1)
pkg/dispatcher/config.go (1)

25-25: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document ipCapacity for configuration authors.

Make the field comment start with IPCapacity and clearly describe zero behavior. Also update the linked openshift/ci-docs configuration schema, which currently omits this operator-configurable field.

As per coding guidelines, “Go documentation on Classes/Functions/Fields should be written properly.”

🤖 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 `@pkg/dispatcher/config.go` at line 25, Update the IPCapacity field comment in
the configuration struct to begin with “IPCapacity” and clearly state that zero
omits the capacity; then add this operator-configurable field to the linked
openshift/ci-docs configuration schema using the matching name and type.

Sources: Coding guidelines, Linked repositories

🤖 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 `@pkg/dispatcher/helpers.go`:
- Line 16: Validate IPCapacity at the configuration trust boundary so values
below zero are rejected, while zero remains the omitted value. Update the
existing loading or validation path around LoadWeight and mirror the established
invalid-Capacity handling, ensuring invalid entries are blocked rather than
silently treated as omitted.

---

Nitpick comments:
In `@pkg/dispatcher/config.go`:
- Line 25: Update the IPCapacity field comment in the configuration struct to
begin with “IPCapacity” and clearly state that zero omits the capacity; then add
this operator-configurable field to the linked openshift/ci-docs configuration
schema using the matching name and type.
🪄 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: b472b072-d475-4a1c-a5ad-f2c84ea86d1a

📥 Commits

Reviewing files that changed from the base of the PR and between 55f51c9 and f99e852.

📒 Files selected for processing (7)
  • cmd/prow-job-dispatcher/main.go
  • cmd/prow-job-dispatcher/main_test.go
  • pkg/dispatcher/config.go
  • pkg/dispatcher/helpers.go
  • pkg/dispatcher/helpers_test.go
  • pkg/dispatcher/prometheus_volumes.go
  • pkg/dispatcher/prometheus_volumes_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • openshift/release (manual)
  • openshift/ci-docs (manual)
  • openshift/release-controller (manual)
  • openshift/ci-chat-bot (manual)

Comment thread pkg/dispatcher/helpers.go
@deepsm007

Copy link
Copy Markdown
Contributor Author

/test e2e

@deepsm007

Copy link
Copy Markdown
Contributor Author

/override ci/prow/integration
Unrelated to PR changes, failing for cluster imageset updater. Peter is working on a fix.

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

@openshift-ci

openshift-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

@deepsm007: Overrode contexts on behalf of deepsm007: ci/prow/integration

Details

In response to this:

/override ci/prow/integration
Unrelated to PR changes, failing for cluster imageset updater. Peter is working on a fix.

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.

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

The overall approach of combining dispatcher capacity with IP capacity is reasonable. The focused dispatcher tests pass on the current PR head. However, the PR should not be merged in its current form IMO.

Mixed configurations with omitted and configured ipCapacity values produce unstable weights. A constrained cluster can receive full weight until another configured cluster is added. This means a partial rollout may fail to protect clusters with limited IP capacity. The configuration should either require ipCapacity for all active clusters or use a stable default baseline. The dispatcher should also return an error when no eligible fallback or signalize somehow this problem. Negative ipCapacity values should be rejected during configuration loading.

@jmguzik

jmguzik commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

The best of course would be to have the same cluster ip ranges but that requires work.

@deepsm007
deepsm007 force-pushed the fix/dispatcher-capacity-and-ipcapacity branch from f99e852 to f2ceeee Compare August 11, 2026 14:25

@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

🧹 Nitpick comments (2)
pkg/dispatcher/helpers.go (2)

133-144: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document HasCapacityOrCapabilitiesChanged.

Add an exported Go doc comment. State that it detects capacity, IP-capacity, and capability changes for matching clusters.

As per coding guidelines, “Go documentation on Classes/Functions/Fields should be written properly.” As per path instructions, “Comment important exported functions with their purpose, parameters, and return values.”

🤖 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 `@pkg/dispatcher/helpers.go` around lines 133 - 144, Add an exported Go doc
comment immediately above HasCapacityOrCapabilitiesChanged. Document that it
compares matching clusters in prev and next for capacity, IP-capacity, and
capability changes, and describe the prev and next parameters plus the boolean
return value.

Sources: Coding guidelines, Path instructions


18-18: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document the new cluster configuration field.

Add ipCapacity to the dynamic scheduling documentation. The linked openshift/ci-docs configuration reference does not describe this operator-facing field.

🤖 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 `@pkg/dispatcher/helpers.go` at line 18, Document the new IP capacity
configuration field represented by the IPCapacity struct field and its yaml key
ipCapacity in the dynamic scheduling configuration reference, including its
operator-facing purpose and expected value.

Source: Linked repositories

🤖 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 `@pkg/dispatcher/helpers.go`:
- Around line 66-74: Update the validation around hasIPCapacity in the relevant
helper to remove the loop that rejects active clusters with omitted ipCapacity,
while preserving validation that explicitly configured negative capacities
remain invalid. Adjust the mixed-configuration case in the helper tests to
expect successful loading instead of an error.

---

Nitpick comments:
In `@pkg/dispatcher/helpers.go`:
- Around line 133-144: Add an exported Go doc comment immediately above
HasCapacityOrCapabilitiesChanged. Document that it compares matching clusters in
prev and next for capacity, IP-capacity, and capability changes, and describe
the prev and next parameters plus the boolean return value.
- Line 18: Document the new IP capacity configuration field represented by the
IPCapacity struct field and its yaml key ipCapacity in the dynamic scheduling
configuration reference, including its operator-facing purpose and expected
value.
🪄 Autofix

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: bb925756-e447-48f8-8eac-56a5ae86969c

📥 Commits

Reviewing files that changed from the base of the PR and between f99e852 and f2ceeee.

📒 Files selected for processing (5)
  • cmd/prow-job-dispatcher/main.go
  • cmd/prow-job-dispatcher/main_test.go
  • pkg/dispatcher/config.go
  • pkg/dispatcher/helpers.go
  • pkg/dispatcher/helpers_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • openshift/release (manual)
  • openshift/ci-docs (manual)
  • openshift/release-controller (manual)
  • openshift/ci-chat-bot (manual)
🚧 Files skipped from review as they are similar to previous changes (3)
  • cmd/prow-job-dispatcher/main_test.go
  • cmd/prow-job-dispatcher/main.go
  • pkg/dispatcher/config.go

Comment thread pkg/dispatcher/helpers.go Outdated
@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

Reject negative ipCapacity at config load, scale load weight by
ipCapacity/maxIP with maxIP as baseline for omitted values, and return
an error when dispatch finds no eligible cluster.
@deepsm007
deepsm007 force-pushed the fix/dispatcher-capacity-and-ipcapacity branch from b7e215b to f34e466 Compare August 11, 2026 15:55
@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

@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

@deepsm007: 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.

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants