Skip to content

ROSAENG-9174 | feat: enable --component-routes for HCP clusters#3376

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:masterfrom
reedcort:ROSAENG-9174-enable-component-routes-hcp
Jul 15, 2026
Merged

ROSAENG-9174 | feat: enable --component-routes for HCP clusters#3376
openshift-merge-bot[bot] merged 1 commit into
openshift:masterfrom
reedcort:ROSAENG-9174-enable-component-routes-hcp

Conversation

@reedcort

@reedcort reedcort commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

PR Summary

Enable --component-routes flag and interactive mode for HCP clusters in rosa edit ingress, allowing customers to configure custom console and downloads hostnames with TLS certificates.

Detailed Description of the Issue

ROSA HCP customers cannot use rosa edit ingress --component-routes to set custom hostnames for Console and Downloads routes. The CLI blocks all ingress V2 flags for HCP clusters, including component-routes. The backend (clusters-service) and HyperShift operator now both support componentRoutes for HCP, but the CLI guard rail prevents customers from using the feature.

Related Issues and PRs

Type of Change

  • feat - adds a new user-facing capability.

Previous Behavior

rosa edit ingress --component-routes on an HCP cluster returned:

ERR: New ingress attributes [component-routes, ...] can't be supplied for Hosted Control Plane clusters

Behavior After This Change

rosa edit ingress --component-routes works on HCP clusters for console and downloads routes. OAuth is excluded because it runs on the management cluster and is not configurable via component routes on HCP.

Flag mode:

rosa edit ingress -c mycluster \
  --component-routes 'console: hostname=console.example.com;tlsSecretRef=console-tls, downloads: hostname=downloads.example.com;tlsSecretRef=downloads-tls' \
  <ingress-id>

Interactive mode (-i): prompts for console and downloads only (no oauth).

Validation:

  • Passing oauth as a component name returns: 'oauth' is not a valid component name. Expected include [console, downloads]
  • Passing hostname without tlsSecretRef returns the backend 400 error

How to Test (Step-by-Step)

Preconditions

  • A running ROSA HCP cluster
  • The hypershift-component-routes feature toggle enabled
  • HyperShift operator >= v0.1.79 deployed
  • A TLS secret created in openshift-config namespace on the hosted cluster

Test Steps

  1. Set componentRoutes via flag mode: rosa edit ingress -c <cluster-name> --component-routes 'console: hostname=console.custom.example.com;tlsSecretRef=console-tls-secret, downloads: hostname=downloads.custom.example.com;tlsSecretRef=downloads-tls-secret' <ingress-id>
  2. Verify on the cluster: oc get ingresses.config.openshift.io cluster -o jsonpath='{.spec.componentRoutes}'
  3. Verify custom routes: oc get routes -n openshift-console
  4. Test interactive mode: rosa edit ingress -c <cluster-name> -i <ingress-id> — should prompt for console and downloads only
  5. Test oauth rejection: pass oauth as a component name — should error client-side
  6. Test clearing: pass empty hostname and tlsSecretRef values
  7. Verify other V2 flags remain blocked: rosa edit ingress -c <cluster-name> --excluded-namespaces 'test' <ingress-id>

Expected Results

  • ComponentRoutes set and propagate to hosted cluster ingress config
  • Custom routes created (console-custom, downloads-custom)
  • Original routes redirect (301) to custom hostnames
  • OAuth rejected client-side with clear error message
  • Other V2 flags still blocked for HCP
  • Interactive mode only prompts for console and downloads

Proof of the Fix

make test:

Ran 13 of 13 Specs in 0.001 seconds
SUCCESS! -- 13 Passed | 0 Failed | 0 Pending | 0 Skipped

Flag mode — set console + downloads:

$ rosa edit ingress -c creed-hcp --component-routes '...' c0p6
INFO: Updated ingress 'c0p6' on cluster '...'

Propagation verified:

[
  {"hostname":"console.custom.example.com","name":"console","namespace":"openshift-console","servingCertKeyPairSecret":{"name":"console-tls-secret"}},
  {"hostname":"downloads.custom.example.com","name":"downloads","namespace":"openshift-console","servingCertKeyPairSecret":{"name":"downloads-tls-secret"}}
]

Custom routes created:

console-custom     console.custom.example.com        console     https   reencrypt/Redirect
downloads-custom   downloads.custom.example.com      downloads   http    edge/Redirect

OAuth rejection:

ERR: 'oauth' is not a valid component name. Expected include [console, downloads]

Hostname without secret — backend 400:

ERR: Can't update 'console' component route hostname ... without also supplying a new TLS secret reference

Cleanup via empty values:

$ rosa edit ingress -c creed-hcp --component-routes 'console: hostname=;tlsSecretRef=, downloads: hostname=;tlsSecretRef=' c0p6
INFO: Updated ingress 'c0p6' on cluster '...'

Interactive mode — set values (no oauth prompted):

$ rosa edit ingress -c creed-hcp -i c0p6
? Private ingress: No
? Would you like to edit the component routes? Yes
? console route hostname: console.custom.example.com
? console route tlsSecretRef: console-tls-secret
? downloads route hostname: downloads.custom.example.com
? downloads route tlsSecretRef: downloads-tls-secret
W: No need to update ingress as there are no changes

Interactive mode — clear console, keep downloads:

$ rosa edit ingress -c creed-hcp -i c0p6
? Private ingress: No
? Would you like to edit the component routes? Yes
? console route hostname:
? console route tlsSecretRef:
? downloads route hostname: downloads.custom.example.com
? downloads route tlsSecretRef: downloads-tls-secret
I: Updated ingress 'c0p6' on cluster '...'

Breaking Changes

  • No breaking changes

Developer Verification Checklist

  • Commit subject/title follows [JIRA-TICKET] | [TYPE]: <MESSAGE>.
  • PR description clearly explains both what changed and why.
  • Relevant Jira/GitHub issues and related PRs are linked.
  • make install-hooks has been run in this clone.
  • Tests were added/updated where appropriate.
  • I manually tested the change.
  • make test passes.
  • make lint passes.
  • make rosa passes.
  • Documentation or repo-local agent guidance was added/updated where appropriate.
  • Any risk, limitation, or follow-up work is documented.

Summary by CodeRabbit

  • New Features

    • Enabled component-route editing for Hosted Control Plane clusters.
    • Interactive component-route setup now runs when editing is allowed and prompts for all supported routes for the selected cluster type.
    • Prompts prefill existing ingress values as defaults.
  • Bug Fixes

    • Component-route parsing and validation are now limited to cluster-type-supported routes.
    • Updated ingress V2 flag exclusivity and improved component-route input validation and error messages (including invalid names and duplicate/wrong counts).
  • Tests

    • Added Ginkgo coverage for Hosted Control Plane component-route parsing and rejection cases.

@openshift-ci

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

@openshift-ci openshift-ci Bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes labels Jul 14, 2026
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Ingress component-route parsing now accepts caller-provided allowed route sets, including HCP routes for console and downloads. CLI and interactive editing select routes based on cluster type and prevent unsupported updates. Ingress V2 flag exclusivity was updated, with tests covering valid HCP routes, invalid names, duplicate routes, and incorrect route counts.

Suggested reviewers: gdbranco, braetroutman

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning The HCP wrong-count spec still mixes cardinality with an invalid oauth route, and the HCP table never asserts the exact returned key set. Use only valid HCP routes in the wrong-count case, and assert the exact returned keys in the HCP table before checking hostnames/secret refs.
✅ Passed checks (14 passed)
Check name Status Explanation
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.
Stable And Deterministic Test Names ✅ Passed All Ginkgo titles in the changed test file are static literals; no dynamic names, timestamps, or generated identifiers were introduced.
Microshift Test Compatibility ✅ Passed The new Ginkgo tests are unit-only parser tests; they don’t call OpenShift APIs/resources or make MicroShift-unsupported assumptions.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Added Ginkgo specs are unit parser tests only; no exutil/oc/node/topology checks or multi-node assumptions found.
Topology-Aware Scheduling Compatibility ✅ Passed Only CLI ingress parsing/tests changed; no manifests, operators, controllers, or scheduling constraints were added.
Ote Binary Stdout Contract ✅ Passed No stdout writes were added in main/init/suite setup; init() only registers flags/completions and the new prints are test-scoped.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The added Ginkgo specs are unit/parser tests only; they use no network, IP literals, or external services, so the IPv6/disconnected check doesn’t apply.
No-Weak-Crypto ✅ Passed Changed ingress parser/CLI only; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, no custom crypto, and no secret/token comparisons were added.
Container-Privileges ✅ Passed PASS: The PR only changes ingress CLI parsing/tests; no container or Kubernetes manifests were modified, and no privileged settings were introduced.
No-Sensitive-Data-In-Logs ✅ Passed No new log/output paths print secrets, tokens, PII, or hostnames; new errors mention only component names/flags, and prompts are user-entered.
Title check ✅ Passed The title is concise and accurately states the primary change: enabling --component-routes for HCP clusters.
Description check ✅ Passed The description follows the template and covers issue context, behavior changes, testing, proof, and related issues.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@reedcort
reedcort marked this pull request as ready for review July 14, 2026 18:11
@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 14, 2026
@openshift-ci
openshift-ci Bot requested review from BraeTroutman and gdbranco July 14, 2026 18: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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
cmd/edit/ingress/cmd.go (1)

311-419: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Restrict --component-routes to HCP. Moving this block outside the legacy-ingress gate now lets classic clusters that still report legacy support reach the component-routes prompt/path. If this is meant to stay HCP-only, add an explicit legacy check before parsing or prompting.

🤖 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/edit/ingress/cmd.go` around lines 311 - 419, Restrict the
component-routes parsing and interactive prompt block to clusters without legacy
ingress support by adding an explicit !hasLegacyIngressSupport guard around the
componentRoutesFlag and interactive.Enabled() paths. Preserve the existing
isHypershift route selection and parsing behavior for HCP clusters.
🧹 Nitpick comments (1)
cmd/edit/ingress/cmd.go (1)

374-390: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Duplicated allowed-route selection.

The allowedRoutes/routes selection (expectedComponentRoutes vs expectedHcpComponentRoutes based on isHypershift) is repeated verbatim in both the CLI and interactive branches. Extracting a small helper (e.g. allowedComponentRoutes(isHypershift bool) []string) would remove the duplication.

♻️ Proposed refactor
+func allowedComponentRoutes(isHypershift bool) []string {
+	if isHypershift {
+		return expectedHcpComponentRoutes
+	}
+	return expectedComponentRoutes
+}
+
 	if cmd.Flags().Changed(componentRoutesFlag) {
-		allowedRoutes := expectedComponentRoutes
-		if isHypershift {
-			allowedRoutes = expectedHcpComponentRoutes
-		}
+		allowedRoutes := allowedComponentRoutes(isHypershift)
 		componentRoutes, err = parseComponentRoutesForAllowed(args.componentRoutes, allowedRoutes)
...
 		if confirm.Prompt(false, "Would you like to edit the component routes?") {
-			routes := expectedComponentRoutes
-			if isHypershift {
-				routes = expectedHcpComponentRoutes
-			}
+			routes := allowedComponentRoutes(isHypershift)
🤖 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/edit/ingress/cmd.go` around lines 374 - 390, Extract the repeated
expectedComponentRoutes versus expectedHcpComponentRoutes selection into a
helper such as allowedComponentRoutes(isHypershift bool) []string, then use it
in both the componentRoutesFlag CLI branch and the interactive branch. Preserve
the existing route values and isHypershift behavior.
🤖 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.

Outside diff comments:
In `@cmd/edit/ingress/cmd.go`:
- Around line 311-419: Restrict the component-routes parsing and interactive
prompt block to clusters without legacy ingress support by adding an explicit
!hasLegacyIngressSupport guard around the componentRoutesFlag and
interactive.Enabled() paths. Preserve the existing isHypershift route selection
and parsing behavior for HCP clusters.

---

Nitpick comments:
In `@cmd/edit/ingress/cmd.go`:
- Around line 374-390: Extract the repeated expectedComponentRoutes versus
expectedHcpComponentRoutes selection into a helper such as
allowedComponentRoutes(isHypershift bool) []string, then use it in both the
componentRoutesFlag CLI branch and the interactive branch. Preserve the existing
route values and isHypershift behavior.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: de6a5231-9f6e-4819-8334-145751c3598c

📥 Commits

Reviewing files that changed from the base of the PR and between e4eecdd and aaea152.

📒 Files selected for processing (3)
  • cmd/edit/ingress/cmd.go
  • cmd/edit/ingress/cmd_test.go
  • cmd/edit/ingress/flags.go

@reedcort
reedcort force-pushed the ROSAENG-9174-enable-component-routes-hcp branch from aaea152 to 39a9017 Compare July 14, 2026 18:30

@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 `@cmd/edit/ingress/flags.go`:
- Around line 105-113: Update parseComponentRoutesForAllowed to track component
names already encountered and return an error when a duplicate is parsed, before
assigning its builder into result. Preserve the existing count and allowed-route
validation while preventing duplicate names from overwriting earlier entries.
🪄 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: 0270b2b7-c7b9-4f2b-9d13-b1efeed39315

📥 Commits

Reviewing files that changed from the base of the PR and between aaea152 and 39a9017.

📒 Files selected for processing (3)
  • cmd/edit/ingress/cmd.go
  • cmd/edit/ingress/cmd_test.go
  • cmd/edit/ingress/flags.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • cmd/edit/ingress/cmd_test.go
  • cmd/edit/ingress/cmd.go

Comment thread cmd/edit/ingress/flags.go
@reedcort
reedcort force-pushed the ROSAENG-9174-enable-component-routes-hcp branch from 39a9017 to 55bc548 Compare July 14, 2026 18:49
Comment thread cmd/edit/ingress/cmd.go
}
}

if cmd.Flags().Changed(componentRoutesFlag) {

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.

Moving this block outside the legacy-guard also unblocks classic clusters with legacy ingress support, which were previously blocked by both the V2 flag check and the !hasLegacyIngressSupport guard. Wrap this section in if !hasLegacyIngressSupport || isHypershift to preserve the intended restriction.

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.

Relating the reviews with Cursor

+1 on the !hasLegacyIngressSupport || isHypershift fix after moving component-routes outside the legacy block. nit: extract canEditComponentRoutes := !hasLegacyIngressSupport || isHypershift and use it for both flag (!canEditComponentRoutes) and interactive paths instead of duplicating inverse logic. tests: HCP parser tests are solid; please add coverage for this guard (legacy classic blocked, HCP allowed) — that’s the regression this PR was at risk of introducing.
#3376 (comment)

@coderabbitai confirm relation with a short answer.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@amandahla Confirmed — this is the same concern as olucasfreitas' comment. Both target the componentRoutes block in cmd/edit/ingress/cmd.go that got moved outside the !hasLegacyIngressSupport guard; your note just refines that fix by suggesting the canEditComponentRoutes := !hasLegacyIngressSupport || isHypershift extraction (reused for both the flag and interactive paths) plus asking for regression test coverage (classic legacy blocked, HCP allowed).


🧠 Learnings used
Learnt from: amandahla
Repo: openshift/rosa PR: 3333
File: cmd/list/cluster/cmd.go:127-127
Timestamp: 2026-07-07T14:43:34.653Z
Learning: For ROSA command implementations under `cmd/` that need to detect HyperShift/Hypershift enablement, prefer calling the nil-safe helper `pkg/ocm.IsHyperShiftCluster(cluster)` rather than directly checking `cluster.Hypershift().Enabled()` (e.g., when `Hypershift()` could be nil). Keep behavior consistent with existing commands that already reuse this helper (such as the upgrade/list/edit/describe/create/delete OIDC/ingress flows).

@olucasfreitas

Copy link
Copy Markdown
Contributor

@reedcort ci/prow/lint is required and currently failing. The make lint checkbox is also unchecked — please fix lint issues before requesting review.

@olucasfreitas

Copy link
Copy Markdown
Contributor

Nitpick — cmd/edit/ingress/flags.go, line ~96 (help text for --component-routes):

This help text lists oauth as a valid key, but HCP clusters reject it. Consider appending a note like '(HCP clusters support console and downloads only)' so users don't need to discover this via a runtime error.

@olucasfreitas

Copy link
Copy Markdown
Contributor

Re: @coderabbitai's concern about restricting --component-routes to HCP (review comment on cmd/edit/ingress/cmd.go lines 311-419):

This is valid and still unresolved in the latest commit. The extraction opens component routes to classic clusters with legacy ingress support, which was previously blocked. Adding a !hasLegacyIngressSupport || isHypershift guard around the extracted block would fix this without changing the HCP behavior.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
sed -n '280,430p' cmd/edit/ingress/cmd.go

Length of output: 5858


@olucasfreitas Confirmed — I checked the current code in cmd/edit/ingress/cmd.go (Lines 311-419) and the componentRoutes handling block (both the --component-routes flag parsing and the interactive prompt) now sits outside the if !hasLegacyIngressSupport { ... } guard, at the same level as the rest of the function body. That means it executes unconditionally, so classic clusters with legacy ingress support can now set component routes via --component-routes or the interactive prompt, which was previously blocked.

Your suggested guard is correct and minimal — wrapping the extracted block with !hasLegacyIngressSupport || isHypershift restores the original restriction for classic legacy-ingress clusters while preserving the new HCP behavior:

if !hasLegacyIngressSupport || isHypershift {
    if cmd.Flags().Changed(componentRoutesFlag) {
        componentRoutes, err = parseComponentRoutesForAllowed(args.componentRoutes, allowedComponentRoutes(isHypershift))
        if err != nil {
            r.Reporter.Errorf("An error occurred whilst parsing the supplied component routes: %s", err)
            os.Exit(1)
        }
    } else if interactive.Enabled() {
        componentRoutes = map[string]*cmv1.ComponentRouteBuilder{}
        if confirm.Prompt(false, "Would you like to edit the component routes?") {
            for _, componentRoute := range allowedComponentRoutes(isHypershift) {
                ...
            }
        }
    }
}

This restores parity with the pre-PR behavior for classic clusters while keeping component-routes support for HCP clusters as intended by this PR.


✏️ Learnings added
Learnt from: olucasfreitas
URL: https://github.com/openshift/rosa/pull/3376

Timestamp: 2026-07-15T15:35:41.937Z
Learning: In cmd/edit/ingress/cmd.go (rosa CLI), the component-routes handling block (parsing `--component-routes` flag via `parseComponentRoutesForAllowed` and the interactive component-routes prompt) must be guarded by `!hasLegacyIngressSupport || isHypershift`. Without this guard, classic clusters with legacy ingress support incorrectly gain access to component-routes editing, which should remain blocked for them; only clusters without legacy ingress support or HCP (Hypershift) clusters should be allowed to edit component routes.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@reedcort
reedcort force-pushed the ROSAENG-9174-enable-component-routes-hcp branch from 55bc548 to eba1d50 Compare July 15, 2026 16:00
Comment thread cmd/edit/ingress/cmd.go Outdated
@reedcort
reedcort force-pushed the ROSAENG-9174-enable-component-routes-hcp branch from eba1d50 to da1a67f Compare July 15, 2026 17:46

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

🤖 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/edit/ingress/cmd_test.go`:
- Around line 95-106: Update the wrong-count test around
parseComponentRoutesForAllowed to provide only valid HCP component routes, such
as a single console route, and change the expected error to report 2 expected
and 1 supplied. Keep the test focused solely on cardinality validation rather
than invalid component-name handling.
- Around line 52-71: The test case around parseComponentRoutesForAllowed should
explicitly assert that the returned componentRouteBuilder keys are exactly
console and downloads before validating route values. Collect the keys, compare
them against the expected key set, then retain the existing hostname and TLS
secret assertions for each returned route.
🪄 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: 81f40cb0-56f5-41a8-b4c5-2c02041d72a8

📥 Commits

Reviewing files that changed from the base of the PR and between eba1d50 and da1a67f.

📒 Files selected for processing (3)
  • cmd/edit/ingress/cmd.go
  • cmd/edit/ingress/cmd_test.go
  • cmd/edit/ingress/flags.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • cmd/edit/ingress/cmd.go
  • cmd/edit/ingress/flags.go

Comment thread cmd/edit/ingress/cmd_test.go
Comment thread cmd/edit/ingress/cmd_test.go Outdated
Remove component-routes from the exclusivelyIngressV2Flags list so
rosa edit ingress --component-routes works on HCP clusters. Add
expectedHcpComponentRoutes with only console and downloads (oauth is
not configurable via component routes on HCP).

Move componentRoutes handling out of the !hasLegacyIngressSupport
block so it runs for all cluster types. Interactive mode prompts for
console and downloads only on HCP, all three on classic.

Signed-off-by: Cortney Reed <creed@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@reedcort
reedcort force-pushed the ROSAENG-9174-enable-component-routes-hcp branch from da1a67f to 33605ca Compare July 15, 2026 17:59
@olucasfreitas

Copy link
Copy Markdown
Contributor

/lgtm
/approve
/override ci/prow/govulncheck
/override ci/prow/security

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

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: olucasfreitas, reedcort

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

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

@olucasfreitas: Overrode contexts on behalf of olucasfreitas: ci/prow/govulncheck, ci/prow/security

Details

In response to this:

/lgtm
/approve
/override ci/prow/govulncheck
/override ci/prow/security

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.

@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 20.40816% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 28.57%. Comparing base (e4eecdd) to head (33605ca).
⚠️ Report is 6 commits behind head on master.

Files with missing lines Patch % Lines
cmd/edit/ingress/cmd.go 0.00% 35 Missing ⚠️
cmd/edit/ingress/flags.go 71.42% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3376      +/-   ##
==========================================
+ Coverage   28.52%   28.57%   +0.05%     
==========================================
  Files         333      333              
  Lines       36691    36747      +56     
==========================================
+ Hits        10467    10502      +35     
- Misses      25469    25490      +21     
  Partials      755      755              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

@openshift-ci

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

@reedcort: 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. dco-signoff: yes lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants