Improve ingress component-route update and removal UX
@amandahla is already working on this.
Since Jul 21, 2026.
- Dominant language
- Go
- Stars
- 103
- Forks
- 257
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 43
Description
Summary
Follow up on the component-route UX introduced in #3403. Evaluate a clearer, explicit interface for updating and removing individual ingress component routes.
Current behavior and problem
rosa edit ingress --component-routes supports partial updates: routes omitted from an invocation remain unchanged. Removing a route currently relies on supplying the existing DSL with empty values, for example:
rosa edit ingress -c <cluster> \
--component-routes 'downloads: hostname=;tlsSecretRef=' <ingress-id>
This is difficult to discover, requires users to know the internal route fields, and can be easy to mistype or misquote because the DSL uses semicolons.
Requested evaluation
-
Evaluate an explicit removal option, for example:
rosa edit ingress <ingress-id> -c <cluster> \ --remove-component-route downloads -
Evaluate more standard component-route update representations, such as:
- repeatable key-value input, for example
--component-route name=console,hostname=console.example.com,tlsSecretRef=console-tls; - a JSON or YAML payload alternative, if consistent with existing ROSA CLI conventions.
- repeatable key-value input, for example
The final interface should preserve the distinction between:
- omitting a route: leave it unchanged;
- updating a route: set the supplied values;
- removing a route: explicit deletion/clear operation.
Affected areas
rosa edit ingresscommand and its flag parsing undercmd/edit/ingress- CLI help text and parser/request tests
- Any applicable ingress E2E coverage or documentation
Acceptance criteria
- The removal flow is explicit and documented; it does not require users to provide empty
hostnameandtlsSecretRefvalues. - Partial update semantics remain unchanged: routes not named by update or removal options are preserved.
- The chosen update input format is evaluated for consistency, discoverability, shell safety, validation, and backward compatibility.
- Unit/request tests cover updating one route, removing one route while preserving another, invalid route names, and duplicate/conflicting input.
- CLI help documents update versus removal behavior and examples.
References
- Originating pull request: https://github.com/openshift/rosa/pull/3403
- Originating discussion: https://github.com/openshift/rosa/pull/3403#issuecomment-5035316369
- Requested by: @amandahla
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.