Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-7040

Enhance ROSA CLI Flag Descriptions to Specify Compatibility with Classic and HCP Clusters

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • None
    • ROSA
    • 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:

      1. 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)
           
      1. 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 

              rh-ee-adejong Aaren de Jong
              rhn-support-judzhu Xiaoguang Zhu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: