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

Support 'enterprise' license type #49474

Closed
peterschretlen opened this issue Oct 28, 2019 · 17 comments · Fixed by #52273
Closed

Support 'enterprise' license type #49474

peterschretlen opened this issue Oct 28, 2019 · 17 comments · Fixed by #52273
Assignees
Labels
Feature:License Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc

Comments

@peterschretlen
Copy link
Contributor

peterschretlen commented Oct 28, 2019

The enterprise license type is currently supported and used by ECE and ECK, but is not recognized by Elasticsearch or other parts of the stack.

With elastic/elasticsearch#48510, Elasticsearch will add support for this type. Initially a call to the Get license API will return a platinum license when an enterprise license is installed for backward compatibility reasons. Future iterations will remove this behavior, and the enterprise value will be returned.

When this happens Kibana and its plugins will need to work with the new license level - recognizing it as a valid license type, and treating it in license checks as 'higher' than the platinum license (the enterprise feature set will be a superset of the platinum license)

License management in Kibana does not need to change as part of this issue. Since enterprise licenses are managed by ECE and ECK, license management will be disabled altogether in Kibana like it is in ESS.

@peterschretlen peterschretlen added Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Feature:License labels Oct 28, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-platform (Team:Platform)

@mshustov
Copy link
Contributor

Initially a call to the Get license API will return a platinum license when an enterprise license is installed for backward compatibility reasons.

Doesn't require any changes in Licensing plugin.

Future iterations will remove this behavior, and the enterprise value will be returned.

We should update Licensing plugin to add enterprise as a valid license type.


Hopefully, we switch to the NP Licensing plugin and needn't sync these changes with the legacy plugin.

Also, all the plugins implement a minimal required license check in different ways. For those plugins that match to license type manually, we should add enterprise as a valid value.
For example here https://github.com/restrry/kibana/blob/a6d0b6018bcd9e1c7688465e91c0934d5f9cd422/x-pack/legacy/plugins/ml/server/lib/check_license/check_license.js#L37-L40

@joshdover
Copy link
Contributor

The timeline here:

  • Add support for this level in Kibana 7.6, use this period to test
  • Elasticsearch will switch to exposing this in 7.7

@alisonelizabeth
Copy link
Contributor

Also, all the plugins implement a minimal required license check in different ways. For those plugins that match to license type manually, we should add enterprise as a valid value.

@restrry can you confirm the platform team will be handling this change for all plugins?

@peterschretlen
Copy link
Contributor Author

peterschretlen commented Oct 31, 2019

The logic changes for the new license in Kibana are small and straightforward enough I think it's better one person on the Kibana team owns the change for all plugins, pulling in reviewers from other app/solution teams for awareness and double checking the logic as needed. It's easier to coordinate and the changes all land at once.

@joshdover @alisonelizabeth preferably platform but if necessary I'm sure another team could take this.

@joshdover joshdover added this to Prioritized Backlog in kibana-core [DEPRECATED] Nov 12, 2019
@bytebilly
Copy link
Contributor

Quick update: Elasticsearch will not reuse the existing enterprise license used by ECE, but a new one (also named enterprise) that will apply to the Stack only.

This probably doesn't change anything when getting the license information from the API (it will return enterprise), but it may change for the fields that it will contain, so if there are components relying on those fields they should be considered based on what they will be.

@mshustov mshustov self-assigned this Nov 19, 2019
@mshustov mshustov mentioned this issue Nov 22, 2019
12 tasks
@elasticmachine elasticmachine mentioned this issue Nov 29, 2019
12 tasks
@mshustov mshustov moved this from Prioritized Backlog to In progress in kibana-core [DEPRECATED] Dec 5, 2019
@mshustov
Copy link
Contributor

mshustov commented Dec 9, 2019

@peterschretlen @bytebilly can we test the Kibana part somehow of we should wait for elastic/elasticsearch#48510 to be finished? Should we split the current task into 2 parts and test everything later?

@peterschretlen
Copy link
Contributor Author

@restrry ES support for enterprise has been added in elastic/elasticsearch#49223, so should be able to test on master. 7.x should follow soon in elastic/elasticsearch#49474

@mshustov
Copy link
Contributor

mshustov commented Dec 9, 2019

@peterschretlen I'm trying to figure out how to generate a proper license. I cannot use any of https://wiki.elastic.co/pages/viewpage.action?spaceKey=PM&title=Internal+License+-+X-Pack if I build from master locally

@bytebilly
Copy link
Contributor

@restrry the current license portal is not able to generate stack enterprise licenses yet (related issue).

I think that you can create (and sign) a license, but it's still a manual temporary process.

@peterschretlen
Copy link
Contributor Author

There is one used in the API test ( https://github.com/elastic/elasticsearch/blob/6ec22eb508135da3b6df59000f9be03130ca506b/x-pack/plugin/src/test/resources/rest-api-spec/test/license/30_enterprise_license.yml#L16 ) ? I don't know if would work for testing but might be worth a try.

@mshustov
Copy link
Contributor

mshustov commented Dec 9, 2019

I think that you can create (and sign) a license, but it's still a manual temporary process.

Are there any docs describing the process ? @bytebilly

@bytebilly
Copy link
Contributor

@restrry I think the best way to do it is to use a test license.

The final format will probably be slightly different, with max_nodes replaced by max_resource_units. I don't know if this is relevant to Kibana. As far as I know, license details are not shown in the UI (but I may be wrong).

@mshustov
Copy link
Contributor

mshustov commented Dec 12, 2019

@peterschretlen Do we need a separate issue to update the docs? I'm concern about better wording and doc generation pipeline.

@bytebilly
Copy link
Contributor

I updated https://github.com/elastic/dev/issues/1278#issue-504202939 with the latest information.

We'll have max_resource_units for enterprise licenses instead of max_nodes.

I also checked that the License Management app doesn't show the value for max_nodes, so there should be no visible changes in the UI for that.

@peterschretlen
Copy link
Contributor Author

@peterschretlen Do we need a separate issue to update the docs? I'm concern about better wording and doc generation pipeline.

@restrry I'll create an issue. I see a few references like ...if you are using a Gold or Platinum license... that may be worth updating - is that your concern?

@mshustov
Copy link
Contributor

mshustov commented Dec 16, 2019

@peterschretlen yes. I'm not sure whether we want to promote Enterprise license in docs, nor should we provide the full list of suitable licenses for each case.

kibana-core [DEPRECATED] automation moved this from In progress to Done (7.6) Dec 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:License Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants