Enable elasticsearch per project or group
What does this MR do?
Allows Elasticsearch indexing and searching to be enabled on a per-project or per-group manner.
ElasticsearchIndexedNamespaces
ElasticsearchIndexedProjects
These classes are used by ApplicationSetting to enable/disable projects and namespaces (groups) that should be indexed by elasticsearch.
We also have the application setting, elasticsearch_limit_indexing
, that enables/disables the new functionality
In order to be able to selectively choose projects/namespaces to use with elasticsearch, elasticsearch_limit_indexing
MUST be enabled under the admin integrations options.
Instead of checking for elasticsearch usage in the sidekiq workers, I've opted for checking where the workers get called instead, since we already have a project
object in most cases and can check cheaply
What are the relevant issue numbers?
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process. -
EE specific content should be in the top level /ee
folder -
For a paid feature, have we considered GitLab.com plans, how it works for groups, and is there a design for promoting it to users who aren't on the correct plan? -
Security reports checked/validated by reviewer
Closes #1607 (closed)
Edited by Mario de la Ossa