Description
Transform supports CCS indexes starting with 7.6.
The problem
A transform using remote source requires cluster.remote.connect:true
(default) to execute search queries, if cluster.remote.connect:false
is set on a node the transform will fail.
Transform validation will disallow preview/create if cluster.remote.connect:false
is set to false on the executing node, assuming the situation is the same for all nodes.
However, cluster.remote.connect
is a node setting. Worst-case a user has a mixed environment with some nodes enabled and some not. In this case p-task placement is unable to find out and can not choose a data node that has CCS support and validation might fail or not.
The problem applies not only to transform but also to ML, see #46025.
The workaround: Known Limitation
For #43201 this issue is out of scope, in order to use transform CCS you must have remote-support enabled on all data and the master node.
In case remote is disabled on the executing node transform will fail at start with a descriptive error.
A possible Solution: node attributes
Whether cluster.remote.connect
is true
or false
can not be retrieved from cluster state. A nodeinfo call would be possible, but calls all nodes in the cluster and is therefore not considered as an option.
Similar to the ML plugin, we could use node attributes which are available in cluster state. A special attribute could be set if cluster.remote.connect:false
at the start of the node, e.g. as part of x-pack core (all features that require remote aware placement are part of x-pack, ignoring that CCS is a core feature (OSS)).
Other solutions
@elastic/es-search any ideas? comments?