diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/MachineDependentHeap.java b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/MachineDependentHeap.java index ce0febebb780..f0e329be67da 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/MachineDependentHeap.java +++ b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/MachineDependentHeap.java @@ -142,7 +142,7 @@ public final class MachineDependentHeap { return MachineNodeRole.DATA; } else if (containsOnly(roles, "master")) { return MachineNodeRole.MASTER_ONLY; - } else if (containsOnly(roles, "ml")) { + } else if (roles.contains("ml") && containsOnly(roles, "ml", "remote_cluster_client")) { return MachineNodeRole.ML_ONLY; } else { return MachineNodeRole.DATA; diff --git a/distribution/tools/launchers/src/test/java/org/elasticsearch/tools/launchers/NodeRoleParserTests.java b/distribution/tools/launchers/src/test/java/org/elasticsearch/tools/launchers/NodeRoleParserTests.java index 0ae805ef9fe7..e9f9cf83e94c 100644 --- a/distribution/tools/launchers/src/test/java/org/elasticsearch/tools/launchers/NodeRoleParserTests.java +++ b/distribution/tools/launchers/src/test/java/org/elasticsearch/tools/launchers/NodeRoleParserTests.java @@ -47,6 +47,15 @@ public class NodeRoleParserTests extends LaunchersTestCase { MachineDependentHeap.MachineNodeRole nodeRole = parseConfig(sb -> sb.append("node.roles: [ml]")); assertThat(nodeRole, equalTo(ML_ONLY)); + nodeRole = parseConfig(sb -> sb.append("node.roles: [ml, remote_cluster_client]")); + assertThat(nodeRole, equalTo(ML_ONLY)); + + nodeRole = parseConfig(sb -> sb.append("node.roles: [remote_cluster_client, ml]")); + assertThat(nodeRole, equalTo(ML_ONLY)); + + nodeRole = parseConfig(sb -> sb.append("node.roles: [remote_cluster_client]")); + assertThat(nodeRole, not(equalTo(ML_ONLY))); + nodeRole = parseConfig(sb -> sb.append("node.roles: [ml, some_other_role]")); assertThat(nodeRole, not(equalTo(ML_ONLY))); }