-
Feature Request
-
Resolution: Done
-
Normal
-
None
-
None
-
None
-
Improvement
-
False
-
None
-
False
-
Not Selected
-
-
Description: The ROSA CLI provides users with commands to configure and manage resources for both ROSA Classic and HCP (Hosted Control Plane) clusters. However, many command flags are not universally supported across these cluster types. For example, some flags applicable to ROSA Classic clusters, such as those in the rosa edit ingresscommand (-excluded-namespaces, -route-selector, etc.), are not supported for HCP clusters. This limitation is only revealed through error messages after execution, leading to confusion and frustration.
This issue is not limited to the rosa edit ingress command but could affect multiple commands and flags throughout the CLI. Customers often need to test commands to determine which flags are applicable, resulting in a time-consuming and error-prone process.
Customer Impact:
- Customers managing HCP clusters may unknowingly attempt to use unsupported flags and encounter errors during execution.
- A clearer distinction of flag compatibility would enhance user confidence and streamline cluster management workflows.
Proposed Solution:
- Update CLI Flag Descriptions
-
- Clearly indicate whether a flag is:
- Supported only for ROSA Classic clusters.
- Supported only for HCP clusters.
- Supported for both cluster types.
- Example:
--excluded-namespaces string Excluded namespaces for ingress. Format should be a comma-separated list 'value1, value2...'. If no values are specified, all namespaces will be exposed. (Supported on ROSA Classic only) --route-selector string Route Selector for ingress. Format should be a comma-separated list of 'key=value'. If no label is specified, all routes will be exposed on both routers. For legacy ingress support these are inclusion labels, otherwise they are treated as exclusion labels. (Supported on ROSA Classic only) --private Restrict application route to direct, private connectivity. (Supported on both ROSA Classic and HCP clusters)
- Clearly indicate whether a flag is:
- CLI Documentation and Help Output
-
- Enhance the CLI’s --help output for all commands to include a section summarizing compatibility for each flag with ROSA Classic and HCP clusters.
Current behavior:
$ rosa edit ingress -h Edit a cluster ingress for a cluster.Usage: rosa edit ingress ID [flags]Aliases: ingress, routeExamples: # Make additional ingress with ID 'a1b2' private on a cluster named 'mycluster' rosa edit ingress --private --cluster=mycluster a1b2 # Update the router selectors for the additional ingress with ID 'a1b2' rosa edit ingress --label-match=foo=bar --cluster=mycluster a1b2 # Update the default ingress using the sub-domain identifier rosa edit ingress --private=false --cluster=mycluster apps # Update the load balancer type of the apps2 ingress rosa edit ingress --lb-type=nlb --cluster=mycluster apps2Flags: -c, --cluster string Name or ID of the cluster. --component-routes string Component routes settings. Available keys [oauth, console, downloads]. For each key a pair of hostname and tlsSecretRef is expected to be supplied. Format should be a comma separate list 'oauth: hostname=example-hostname;tlsSecretRef=example-secret-ref,downloads:... --excluded-namespaces string Excluded namespaces for ingress. Format should be a comma-separated list 'value1, value2...'. If no values are specified, all namespaces will be exposed. -h, --help help for ingress --label-match string Alias to 'route-selector' flag. --lb-type string Type of Load Balancer. Options are classic,nlb. --namespace-ownership-policy string Namespace Ownership Policy for ingress. Options are Strict,InterNamespaceAllowed. Default is 'Strict'. --private Restrict application route to direct, private connectivity. --route-selector string Route Selector for ingress. Format should be a comma-separated list of 'key=value'. If no label is specified, all routes will be exposed on both routers. For legacy ingress support these are inclusion labels, otherwise they are treated as exclusion label. --wildcard-policy string Wildcard Policy for ingress. Options are WildcardsDisallowed,WildcardsAllowed. Default is 'WildcardsDisallowed'.Global Flags: --color string Surround certain characters with escape sequences to display them in color on the terminal. Allowed options are [auto never always] (default "auto") --debug Enable debug mode. -i, --interactive Enable interactive mode. --profile string Use a specific AWS profile from your credential file. --region string Use a specific AWS region, overriding the AWS_REGION environment variable. (DEPRECATED: Region flag will be removed from this command in future versions) -y, --yes Automatically answer yes to confirm operation.
$ rosa edit ingress h2k1 -c jude-rosa-hcp --excluded-namespaces jude-1,jude-3 E: New ingress attributes [wildcard-policy, component-routes, excluded-namespaces, cluster-routes-hostname, namespace-ownership-policy, cluster-routes-tls-secret-ref] can't be supplied for Hosted Control Plane clusters $ rosa edit ingress h2k1 -c jude-rosa-hcp --route-selector hypershift.openshift.io/managed=true E: Updating route selectors is not supported for Hosted Control Plane clusters