[BE] Step 2: Support multiple indices to Elasticsearch Admin options

⚠️ This issue is not released yet, all the involved MRs are merged into !17230 (closed) and the remainder of this work is being tracked in &1769.


This is a placeholder for backend related work for #13534 (closed)

The work should continue on from

  1. !15736 (closed)
  2. !15275 (merged)

Needed changes

  • Controller actions for indices
    • index/new/edit
    • remove: if currently active, make other index active
    • activate
    • reindex
    • pause/resume indexing
  • ee/lib/gem_extensions/elasticsearch/model/client.rb
    • This class manage to expire elasticsearch client object, whenever ApplicationSetting changes
    • Now it has to handle Index record changes too.
    • Cache clients per index, check changed settings per index
  • Elastic::MultiVersionClassProxy
    • We need to have it load the indices from database
    • Different for read operations and write operations.
  • Store IndexStatus per index
    • Add elasticsearch_index_id column
    • Figure out how we can track this from the Rails side
  • Update/remove rake tasks
Edited by Markus Koller