-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
[DNM] ui build: split admin ui build based on license #19850
Conversation
What is the result when a user hits |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This approach LGTM provided everyone is comfortable with this method of CCL'ing. Nice work!
@cuongdo, we plan to stub out each top-level CCL component. So if you have an entire page under CCL, you'd presumably provide an OSS stub page that read "this page is only available in CCL binaries". |
@benesch That sounds generally good. There should be some way of converting users to CCL builds, such as a link to https://www.cockroachlabs.com/product/cockroachdb-enterprise/ cc @dianasaur323 who will likely have better ideas |
@cuongdo This change doesn't really get into routing (or specifics of how any fallback/alternative implementation would be handled). This mechanism is very general - the OSS build would implement a stub with the fallback behavior. I've made suggestions on what would happen with the routing of the first CCL changes over on #19643. The implementation might be something like:
If we start to see common patterns we can refactor things later. |
LGTM Review status: 0 of 12 files reviewed at latest revision, all discussions resolved, some commit checks failed. Comments from Reviewable |
This change plumbs the OSS/CCL build choice through to the admin UI build, to enable development of upcoming UI features covered by the CCL. CCL code is expected to be encapsulated by hook components, each of which will have a no-op version present in the OSS build.
d28bfee
to
b41ff55
Compare
One significant requirement is not covered by this: handling clusters running the CCL build but without a valid license, which need to fall back to the OSS version of components. |
At least some of them should display "enterprise license expired", no? You can just drop a |
There are two cases: one is an expired license, but another is someone who downloaded our compiled binaries but just wants to use the OSS features. It would be a little strange for them to see "license expired", or indeed anything related to enterprise licensing, in that case. |
Agreed. You could check for both cases in the CCL entrypoints, though. |
It just means we need to actually bundle the OSS versions, too, and allow the CCL components to reference the OSS ones. So I think we'll need to rethink the structure. |
That should happen automatically if the CCL plugin looks like this:
|
Yes, but how exactly do you import the OSS one from the CCL one? The configuration in this PR won't allow it, AFAICT. |
There is also the case when someone might want to downgrade from OSS after
having an enterprise license that expired. This would be particularly true
of people who signed up for a free 30-day trial license and decided not to
convert. Would the user flow there be changing the cluster setting of the
license field?
…On Mon, Nov 13, 2017 at 1:59 PM, Andrew Couch ***@***.***> wrote:
Yes, but how exactly do you import the OSS one from the CCL one? The
configuration in this PR won't allow it, AFAICT.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#19850 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFgDWFfE83Zjl7BUx7CDE9h-GHwjyVmAks5s2JGBgaJpZM4QT5eh>
.
--
Diana Hsieh
[email protected]
407-690-9048
|
Closing in favor of #20051 |
This change plumbs the OSS/CCL build choice through to the admin UI build, to enable development of upcoming UI features covered by the CCL. CCL code is expected to be encapsulated by hook components, each of which will have a no-op version present in the OSS build.
I've also included a demonstration of how to implement a component under this system, but that is not intended to be merged. After people have taken a look at this, I'll move that information into documentation.