Cirrus should support pausing updates - both updates for an individual index and for all indexes. There are two use cases:
- Create a utility that just pauses all writes so we can integrate that into the rolling restart process. Right now it won't be used but it'll be super useful with https://github.com/elastic/elasticsearch/issues/10032 .
- Pause writes to an index while its being reindexed with --reindexOk during mapping update. This should prevent any data from being lost.
I _think_ the right way to go about this is to use part of the solution I proposed for T86781 - namely wrapping the write operations in jobs. If writes are paused then always queue those jobs. Maybe just requeue them if they are popped. I'm not sure about that.
Stakeholder: Cirrus operators (the Cirrus engineers are the operators for Cirrus but that might be a useful distinction one day)
Benefit: See use cases above
Estimate: 2 weeks