An overview before discussing the problem, I have 2 clusters running, Cluster A and Cluster B.
Cluster A is primarily for testing. It has 2 nodes, Indexer Node, and Search Node. The Indexer node is responsible for generating indices, creating snapshots. Search node is solely responsible for handling search queries.
Cluster B is for production use and for now has just 1 node which is responsible for handling search queries.
For a generated index to reach production node (Cluster B), it has to first generate on Indexer node based, go through some validation checks, and then be pushed to production node.
I am able to automate the initial process i.e. generate index on Indexer node, do the validations, and create snapshot (at /usr/local/elasticsearch/snapshots/
) (using official ES client). However I am stuck at figuring out a way to transfer the snapshot to Cluster B wherein the index can be restored.
Is there a way ElasticSearch can restore the snapshot remotely and/or if the official ES client can transfer the snapshots across clusters (at /usr/local/elasticsearch/snapshots/
on Cluster B)?
I understand Re-index api can do something similar remotely but snapshot/restore fits my use case better.
Any help will be appreciated