Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider moving all cloud commands to top level #114

Closed
hasheddan opened this issue Sep 6, 2021 · 3 comments · Fixed by #117
Closed

Consider moving all cloud commands to top level #114

hasheddan opened this issue Sep 6, 2021 · 3 comments · Fixed by #117
Assignees
Labels
enhancement New feature or request needs-epic-link Needs a link to an epic needs-project Needs to be added to a project board points/2 Story points

Comments

@hasheddan
Copy link
Contributor

What problem are you facing?

Currently, up only has one top-level command (up license, which returns a link to Upbound's license information). All other commands fall under one of the following subcommands: cloud, uxp, xpkg. As Upbound's API operations (which currently fall under up cloud ... -- see full list below) no longer apply to only just the "cloud" hosted product, this subcommand makes less sense. Given that the only commands in cloud that do not fall under controlplane are login / logout, it could make sense to eliminate the cloud subcommand altogether and move all of its commands up a level.

How could Upbound help solve your problem?

Moving some of the commands up a level was previously discussed in #65, though at that time there was concern around confusion with something like up login not being clear about where a user was actually logging in. As the Upbound product offerings have continued to mature, and the UXP and XPKG commands have been added under their own subcommands, this distinction has become less ambiguous. We can likely safely assume that a top-level command for the Upbound CLI is used to interact with the Upbound product. Furthermore, all other up cloud commands fall under the controlplane subcommand, clearly distinguishing where they are performing operations. Any confusion around this can be further eliminated by helpful clear help text and documentation.

Current Cloud Commands

🤖 (up) up cloud -h
Usage: up cloud <command>

Interact with Upbound Cloud.

Flags:
  -h, --help                               Show context-sensitive help.
  -v, --version                            Print version and exit.

      --endpoint=https://api.upbound.io    Endpoint used for Upbound API ($UP_ENDPOINT).
      --profile=STRING                     Profile used to execute command ($UP_PROFILE).
  -a, --account=STRING                     Account used to execute command ($UP_ACCOUNT).

cloud
  cloud login
    Login to Upbound Cloud.

  cloud logout
    Logout from Upbound Cloud.

  cloud controlplane attach <name>
    Attach a self-hosted control plane.

  cloud controlplane create <name>
    Create a hosted control plane.

  cloud controlplane delete <id>
    Delete a control plane.

  cloud controlplane list
    List control planes for the account.

  cloud controlplane kubeconfig get --token=STRING <control-plane-ID>
    Get a kubeconfig for a control plane.

  cloud controlplane token create <control-plane-ID>
    Create a control plane token.

  cloud controlplane token delete <token-ID>
    Delete a control plane token.

  cloud controlplane token list <control-plane-ID>
    List tokens for the control plane.
@hasheddan hasheddan added enhancement New feature or request needs-project Needs to be added to a project board needs-epic-link Needs a link to an epic needs-points-label labels Sep 6, 2021
@grantgumina
Copy link

I wanted to jot down a few thoughts ahead of our meeting tomorrow. It's important we have a clear vision for the experience, even if we won't be able to ship that entirely in Q3.

  • With Upbound Enterprise shipping soon, we'll have products and features deploying in to primary states - multi-tenant and single tenant.

  • Users should be able to login to the single tenant or the multitenant product using the login command.

  • Keeping this in mind, I wonder if it's more intuitive for users to operate at an Organization level vs. product (cloud, enterprise, UXP, etc.) level.

    • For example, users could login to their account and perform operations on the organization (or personal account) they choose. Instead of cloud controlplane token delete it could be controlplane token delete as an example.
  • Alternatively, we could keep the basic framework in place and replace cloud with console.

@grantgumina
Copy link

@hasheddan and I met this morning to discuss what we'll do here, and we came to the following decisions.

  • Users will install Upbound Enterprise via up enterprise install. They'll supply their ID and token to authenticate with our licensing server.
  • Users will be instructed to up login and supply the Upbound Enterprise endpoint for the optional organization parameter
  • cloud subcommands will become top level commands

@hasheddan hasheddan self-assigned this Sep 7, 2021
@hasheddan
Copy link
Contributor Author

/points 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs-epic-link Needs a link to an epic needs-project Needs to be added to a project board points/2 Story points
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants