Advanced Search is compatible with Elasticsearch 8
### Overview GitLab's Advanced Search must sustain compatibility with the newest and current versions of Elasticsearch. This is because Elastic does not back patch versions older than two minor releases from the current version, so Elasticsearch versions that are no longer being patched could be susceptible to exploits. Elastic also makes frequent enhancements that improve efficiency. Advanced Search is used by `%TBD` for Gitlab Users and `%TBD` features for GitLab customers with more than `%TBD` licenses. Advanced Search integrates with Elastic as the core Search Engine. Because of the high level of customer dependency, Advanced Search is of the highest priority to ensure compatibility with Elasticsearch Versions. ### Compatibility Maintaining the Compatibility of GitLab and Elasticsearch is required to ensure that Gitlab.com and Self-managed customers can maintain the critical patches that fix vulnerabilities and take advantage of the common performance enhancements in the new versions. #### Elasticsearch Elasticsearch Version 8 was released on [Feb 10th, 2022](https://www.elastic.co/blog/whats-new-elastic-8-0-0). It contained [144 breaking changes](https://gitlab.com/gitlab-org/gitlab/-/issues/350600). One of these affected GitLab compatibilities. - [WARN: types removal- Specifying types in bulk requests is deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/299769) - Elasticsearch does not have a regular release cadence. It’s not communicated or known when the next version is released until it is posted through Elastic.co Blog. - Whenever a new Elasticsearch version is released, we must check the latest version compatibility and address that issue in the next GitLab release. - Elastic.co does not update the docker image with the new version is not usually immediately available and has taken up to 30days to be made available. - Elastic.co will only release patches for the current version and versions less than 30days old. We should never run a version of Elasticsearch older than the current version minus 2. ### Deprecation To offer compatibility for Elasticsearch across multiple versions of GitLab, we have to continually deprecate older versions of Elasticsearch. Deprecations should happen outside of the Major milestone used for most deprecations as Elsticsearch depreciation maintains its schedule. - [Deprecate Elasticsearch 6.8.x in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/350275)) - Remove Migrations TBD- https://gitlab.com/gitlab-org/gitlab/-/issues/323310 - Rails https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79949 - Indexer https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer/-/merge_requests/147 ### Gitlab.com Elasticsearch Integration for Advanced search is not reported to the [System Status page](https://status.gitlab.com/pages/5b36dc6502d06804c08349f7). ### Testing/QA - [Run Elasticsearch 8.x on GDK](https://gitlab.com/gitlab-org/gitlab/-/issues/356229). ### Reporting TBD - Elasticsearch version for Gitlab.com needs to be transparent to customers. TBD- Self-Managed version reporting is establishing ### Customer Demand https://app.periscopedata.com/app/gitlab/1018858/Version-of-Elasticsearch-Server-Used-by-SM-Instances All Self-Managed customers running Advanced Search are impacted. All GitLab.com paid customers are impacted. ### Risks If a critical patch comes out, GitLab.com will not patch the new version by upgrading. Self-managed customers will be unable to patch the latest versions of Elasticsearch. We may have to disable Advanced Search and recommend that self-managed customers do the same. There is a strong possibility that new critical patches will be needed because of how new ES 8 is and how much a change it is. A critical patch in December would be an example of a critical patch that would cause the shutdown outcome. | **Probability** | **Negligible** | **Marginal** | **Critical** | **Catastrophic** | |----------------- |:--------------: |:------------: |:------------: |:----------------: | | **Certain** | | | | | | **Likely** | | | **High** | | | **Possible** | | | **High** | | | **Unlikely** | | | | | | **Rare** | | | | | ### Release Notes --- Prior to GitLab 15.0, Advanced Search was not compatible with Elasticsearch 8. You had to use older versions of Elasticsearch. Elasticsearch 8 is the current version of Elasticsearch by Elastic. If you are currently using Elasticsearch 7.x and plan to upgrade to Elasticsearch 8, you will need to do that after completing the GitLab 15.0 Upgrade. If you were using Elasticsearch 6.8, you would need to upgrade to any Elasticsearch 7.x version before upgrading to GitLab 15.0. Instructions and a setup guide are available in the [Advanced Search section](https://docs.gitlab.com/ee/user/search/advanced_search.html) of the GitLab documentation."
epic