vmware-tanzu / community-edition

VMware Tanzu Community Edition is no longer an actively maintained project. Code is available for historical purposes only.
https://tanzucommunityedition.io/
Apache License 2.0
1.33k stars 307 forks source link

tanzu CLI should support different editions without re-installing binaries #1219

Closed stmcginnis closed 2 years ago

stmcginnis commented 3 years ago

Feature Request

There will be people using both Tanzu Community Edition and the commercial versions of Tanzu Kubernetes Grid. We need to make sure they are able to use and install the tanzu CLI without interfering with each other.

Describe alternatives you've considered

Current situation is it is recommended not to try to manage both on the same machine. But early feedback is this is going to be a major pain point for many users.

mcwumbly commented 3 years ago

I've been thinking it'd be nice to be able to have multiple versions of the same edition installed at the same time for testing purposes as well. That may or may not be solved the same way. It's probably less common of a need though...

dvonthenen commented 3 years ago

This should be fixed when 0.7.0 is released

jorgemoralespou commented 3 years ago

@dvonthenen can you give any details on how this is fixed? How will the experience look like for a user working with both TKG and TCE?

dvonthenen commented 3 years ago

Yea, since we are using the exact same binaries now (ie not using any kind of branch), we stopped moving the tanzu folder containing config out of the way. You should be able to try it in the v0.7.0-rc.1 release just published.

jorgemoralespou commented 3 years ago

@dvonthenen I understand that the fix you're talking about is that the files will be located on the same local directory, but the UX for users of both CLIs are not defined, which means that as a user I can do tanzu management-cluster create and depending on the plugin I have installed will install a TCE or a TKG. And not only that, but as a user I won't be able to decide which one to use in an easy way, which means that users will not have a way to use TKG and TCE concurrently.

joshrosso commented 3 years ago

Having a solid UX defined (proposal required) and implemented is definitely ideal for the interoperability between editions.

When we break down the difference in editions, at least for common functionality such as management-clusters, you'll see the primary different is the package repository that is installed. For what we've conventionally referred to as TKG, you'll see the standard package repository installed. For us (Tanzu Community Edition), you'll see TCE.

There is some work in flight to provide an API surface in clusters that will allow the CLI to detect which edition is running. I believe this will be part of the puzzle along with a "before cluster exists" UX around potentially selecting which edition you'd like to install for. I really like @mcwumbly's suggestion here.

There's a lot of great stuff here and it touches a lot of pieces including product management, who need to be involved strategically to understand what kind of UX we should enable for CE users who also have (want?) access to commercial editions of Tanzu.

For now, I’ll move this issue into the icebox. We’ll continue to evaluate this issue for prioritization in future milestones. In the meantime, we welcome contributions!

For potential future contributors:

mcwumbly commented 3 years ago

Looks like @nrb is proposing something here regarding installing multiple plugin versions that may related: https://github.com/vmware-tanzu/tanzu-framework/issues/447

joshrosso commented 2 years ago

Due to the need for:

This will not make it in for v0.11.0. We'll revisit this in v0.12.0. Note that this is not possible until we jump to to framework v0.17.0, as that is where the work to dynamically change compatibility files came in.

joshrosso commented 2 years ago

Let's continue to track this work in:

Current status is that we are going to re-assess if this is viable in the v0.13.0 timeframe.