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.
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 ingress command and its flag parsing under cmd/edit/ingress
- CLI help text and parser/request tests
- Any applicable ingress E2E coverage or documentation
Acceptance criteria
References
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-routessupports partial updates: routes omitted from an invocation remain unchanged. Removing a route currently relies on supplying the existing DSL with empty values, for example: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:
Evaluate more standard component-route update representations, such as:
--component-route name=console,hostname=console.example.com,tlsSecretRef=console-tls;The final interface should preserve the distinction between:
Affected areas
rosa edit ingresscommand and its flag parsing undercmd/edit/ingressAcceptance criteria
hostnameandtlsSecretRefvalues.References