-
Notifications
You must be signed in to change notification settings - Fork 25.6k
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?