diff --git a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/DeprecationChecks.java b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/DeprecationChecks.java index 6dbbee49589a4..491880478ad48 100644 --- a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/DeprecationChecks.java +++ b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/DeprecationChecks.java @@ -38,6 +38,7 @@ private DeprecationChecks() { static List, List, DeprecationIssue>> NODE_SETTINGS_CHECKS = Collections.unmodifiableList(Arrays.asList( + NodeDeprecationChecks::tribeNodeCheck, NodeDeprecationChecks::azureRepositoryChanges, NodeDeprecationChecks::gcsRepositoryChanges )); diff --git a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecks.java b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecks.java index d379869f0d472..3ab67656cc19d 100644 --- a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecks.java +++ b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecks.java @@ -18,6 +18,21 @@ */ public class NodeDeprecationChecks { + static DeprecationIssue tribeNodeCheck(List nodeInfos, List nodeStats) { + List nodesFound = nodeInfos.stream() + .filter(nodeInfo -> nodeInfo.getSettings().getByPrefix("tribe.").isEmpty() == false) + .map(nodeInfo -> nodeInfo.getNode().getName()) + .collect(Collectors.toList()); + if (nodesFound.size() > 0) { + return new DeprecationIssue(DeprecationIssue.Level.CRITICAL, + "Tribe Node removed in favor of Cross Cluster Search", + "https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking_70_cluster_changes.html" + + "#_tribe_node_removed", + "nodes with tribe node settings: " + nodesFound); + } + return null; + } + static DeprecationIssue azureRepositoryChanges(List nodeInfos, List nodeStats) { List nodesFound = nodeInfos.stream() .filter(nodeInfo -> diff --git a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecksTests.java b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecksTests.java index 050d4aaf89ddb..64b395425e8e4 100644 --- a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecksTests.java +++ b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/NodeDeprecationChecksTests.java @@ -59,6 +59,16 @@ null, null, null, null, new FsInfo(0L, null, paths), null, null, null, assertEquals(singletonList(expected), issues); } + public void testTribeNodeCheck() { + String tribeSetting = "tribe." + randomAlphaOfLengthBetween(1, 20) + ".cluster.name"; + DeprecationIssue expected = new DeprecationIssue(DeprecationIssue.Level.CRITICAL, + "Tribe Node removed in favor of Cross Cluster Search", + "https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking_70_cluster_changes.html" + + "#_tribe_node_removed", + "nodes with tribe node settings: [node_check]"); + assertSettingsAndIssue(tribeSetting, randomAlphaOfLength(5), expected); + } + public void testAzurePluginCheck() { Version esVersion = VersionUtils.randomVersionBetween(random(), Version.V_6_0_0, Version.CURRENT); PluginInfo deprecatedPlugin = new PluginInfo(