Display indexing progress in ES administration

Summary

This is a follow-up to !17230 (closed) / !18254 (merged) / !20421 (merged).

The ES admin UI doesn't show the indexing progress for each index, this information is currently only exposed through the gitlab:elastic:index_projects_status Rake task.

Note: The indexing status is currently only a rough indicator, since we only track the last indexed commit for each project, don't check for newer commits, and don't track other types of documents. If we're exposing this in the UI we should also improve the reliability of this information in another follow-up issue.

Improvements

In the backend, we need to provide a new API endpoint to get the indexing status for a given index. This can use the same logic as the current Rake tasks ("percentage of projects that have been indexed at some point").

In the frontend, this should be displayed as in the proposed designs:

Status Design
Not indexed yet image
Indexing image
Fully indexed image

Involved components

  • ee/app/assets/javascripts/elasticsearch/components/es_index_actions.vue
  • ee/lib/api/elasticsearch_indices.rb
Assignee Loading
Time tracking Loading