Admin UI change to trigger Elasticsearch in-cluster re-indexing

Problem to solve

As we were tuning the Elasticsearch index options, we had to re-index our Elasticsearch clusters. In the recent attempts, we had been utilizing Elasticsearch alias and Re-Index API to achieve this. However, all the steps were performed manually. It will be much more convenient if we can provide UI support for administrators.

Intended users

Further details

#213629 (closed) has the details of the re-indexing proposal.

Proposal

To quote from #213629 (closed), what we may want here is

we could add a feature to GitLab admin UI which pauses indexing, creates a new index and trigger a re-index and then swap aliases when it's done. This would fully automate the processes in gitlab-com/gl-infra/production#1907 (closed).

This could actually just be a single button called "reindex in cluster" which automates everything. It could show the task ID of the reindexing process and display whatever progress we can get from the task API.

This feature would need to use a lock to avoid it being pressed twice. So once it is pressed and until it is completed the button will be disabled and the progress indicator will be displayed.

The proposal may need review and approval from UX and front expert and probably further breakdown. Also, please note that this is not to be confused with the original Admin UI redesign, which is a more comprehensive solution of managing multiple indices and covers broader causes that require a re-indexing operation. The issue, #213629 (closed), is trying to provide a rather lightweight and faster approach which should also be able to satisfy our short re-indexing needs. For the front-end change, we hope it's also not to be significant.

Permissions and Security

Documentation

Availability & Testing

What does success look like, and how can we measure that?

What is the type of buyer?

Is this a cross-stage feature?

Links / references