Zen2: Move all mixed-version REST tests to Zen2 (#36398)
Moves all remaining (rolling-upgrade and mixed-version) REST tests to use Zen2. To avoid adding extra configuration, it relies on Zen2 being set as the default discovery type. This required a few smaller changes in other tests. I've removed AzureMinimumMasterNodesTests which tests Zen1 functionality and dates from a time where host providers were not configurable and each cloud plugin had its own discovery.type, subclassing the ZenDiscovery class. I've also adapted a few tests which were unnecessarily adding addTestZenDiscovery = false for the same legacy reasons. Finally, this also moves the unconfigured-node-name REST test to Zen2, testing the auto-bootstrapping functionality in development mode when no discovery configuration is provided.
This commit is contained in:
parent
0b1e7e96be
commit
6e6e63d01d
|
@ -76,6 +76,22 @@ class ClusterConfiguration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the initial_master_nodes setting should be automatically derived from the nodes
|
||||||
|
* in the cluster. Only takes effect if all nodes in the cluster understand this setting
|
||||||
|
* and the discovery type is not explicitly set.
|
||||||
|
*/
|
||||||
|
@Input
|
||||||
|
boolean autoSetInitialMasterNodes = true
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the file-based discovery provider should be automatically setup based on
|
||||||
|
* the nodes in the cluster. Only takes effect if no other hosts provider is already
|
||||||
|
* configured.
|
||||||
|
*/
|
||||||
|
@Input
|
||||||
|
boolean autoSetHostsProvider = true
|
||||||
|
|
||||||
@Input
|
@Input
|
||||||
String jvmArgs = "-Xms" + System.getProperty('tests.heap.size', '512m') +
|
String jvmArgs = "-Xms" + System.getProperty('tests.heap.size', '512m') +
|
||||||
" " + "-Xmx" + System.getProperty('tests.heap.size', '512m') +
|
" " + "-Xmx" + System.getProperty('tests.heap.size', '512m') +
|
||||||
|
|
|
@ -131,13 +131,15 @@ class ClusterFormationTasks {
|
||||||
Object dependsOn
|
Object dependsOn
|
||||||
if (node.nodeVersion.onOrAfter("6.5.0")) {
|
if (node.nodeVersion.onOrAfter("6.5.0")) {
|
||||||
writeConfigSetup = { Map esConfig ->
|
writeConfigSetup = { Map esConfig ->
|
||||||
// Don't force discovery provider if one is set by the test cluster specs already
|
if (config.getAutoSetHostsProvider()) {
|
||||||
if (esConfig.containsKey('discovery.zen.hosts_provider') == false) {
|
// Don't force discovery provider if one is set by the test cluster specs already
|
||||||
esConfig['discovery.zen.hosts_provider'] = 'file'
|
if (esConfig.containsKey('discovery.zen.hosts_provider') == false) {
|
||||||
|
esConfig['discovery.zen.hosts_provider'] = 'file'
|
||||||
|
}
|
||||||
|
esConfig['discovery.zen.ping.unicast.hosts'] = []
|
||||||
}
|
}
|
||||||
esConfig['discovery.zen.ping.unicast.hosts'] = []
|
boolean supportsInitialMasterNodes = hasBwcNodes == false || config.bwcVersion.onOrAfter("7.0.0")
|
||||||
if (hasBwcNodes == false && esConfig['discovery.type'] == null) {
|
if (esConfig['discovery.type'] == null && config.getAutoSetInitialMasterNodes() && supportsInitialMasterNodes) {
|
||||||
esConfig['discovery.type'] = 'zen2'
|
|
||||||
esConfig['cluster.initial_master_nodes'] = nodes.stream().map({ n ->
|
esConfig['cluster.initial_master_nodes'] = nodes.stream().map({ n ->
|
||||||
if (n.config.settings['node.name'] == null) {
|
if (n.config.settings['node.name'] == null) {
|
||||||
return "node-" + n.nodeNum
|
return "node-" + n.nodeNum
|
||||||
|
|
|
@ -84,11 +84,6 @@ public abstract class AbstractAzureComputeServiceTestCase extends ESIntegTestCas
|
||||||
return Collections.singletonList(TestPlugin.class);
|
return Collections.singletonList(TestPlugin.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean addTestZenDiscovery() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register an existing node as a Azure node, exposing its address and details htrough
|
* Register an existing node as a Azure node, exposing its address and details htrough
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.discovery.azure.classic;
|
|
||||||
|
|
||||||
import org.elasticsearch.cloud.azure.classic.AbstractAzureComputeServiceTestCase;
|
|
||||||
import org.elasticsearch.common.settings.Settings;
|
|
||||||
import org.elasticsearch.discovery.MasterNotDiscoveredException;
|
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reported issue in #15
|
|
||||||
* (https://github.com/elastic/elasticsearch-cloud-azure/issues/15)
|
|
||||||
*/
|
|
||||||
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE,
|
|
||||||
numDataNodes = 0,
|
|
||||||
transportClientRatio = 0.0,
|
|
||||||
numClientNodes = 0,
|
|
||||||
autoMinMasterNodes = false)
|
|
||||||
public class AzureMinimumMasterNodesTests extends AbstractAzureComputeServiceTestCase {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Settings nodeSettings(int nodeOrdinal) {
|
|
||||||
return Settings.builder()
|
|
||||||
.put(super.nodeSettings(nodeOrdinal))
|
|
||||||
.put("discovery.zen.minimum_master_nodes", 2)
|
|
||||||
.put("discovery.initial_state_timeout", "1s")
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testSimpleOnlyMasterNodeElection() throws IOException {
|
|
||||||
final String node1 = internalCluster().startNode();
|
|
||||||
registerAzureNode(node1);
|
|
||||||
expectThrows(MasterNotDiscoveredException.class, () ->
|
|
||||||
// master is not elected yet
|
|
||||||
client().admin().cluster().prepareState().setMasterNodeTimeout("100ms").get().getState().nodes().getMasterNodeId()
|
|
||||||
);
|
|
||||||
|
|
||||||
final String node2 = internalCluster().startNode();
|
|
||||||
registerAzureNode(node2);
|
|
||||||
assertNotNull(client().admin().cluster().prepareState().setMasterNodeTimeout("1s").get().getState().nodes().getMasterNodeId());
|
|
||||||
|
|
||||||
internalCluster().stopCurrentMasterNode();
|
|
||||||
expectThrows(MasterNotDiscoveredException.class, () ->
|
|
||||||
// master has been stopped
|
|
||||||
client().admin().cluster().prepareState().setMasterNodeTimeout("1s").get().getState().nodes().getMasterNodeId()
|
|
||||||
);
|
|
||||||
|
|
||||||
final String node3 = internalCluster().startNode();
|
|
||||||
registerAzureNode(node3);
|
|
||||||
assertNotNull(client().admin().cluster().prepareState().setMasterNodeTimeout("1s").get().getState().nodes().getMasterNodeId());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -69,9 +69,4 @@ public abstract class AbstractAwsTestCase extends ESIntegTestCase {
|
||||||
protected Collection<Class<? extends Plugin>> nodePlugins() {
|
protected Collection<Class<? extends Plugin>> nodePlugins() {
|
||||||
return Arrays.asList(Ec2DiscoveryPlugin.class);
|
return Arrays.asList(Ec2DiscoveryPlugin.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean addTestZenDiscovery() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ import static org.hamcrest.CoreMatchers.is;
|
||||||
* starting.
|
* starting.
|
||||||
* This test requires AWS to run.
|
* This test requires AWS to run.
|
||||||
*/
|
*/
|
||||||
@ClusterScope(scope = Scope.TEST, numDataNodes = 0, numClientNodes = 0, transportClientRatio = 0.0, autoMinMasterNodes = false)
|
@ClusterScope(scope = Scope.TEST, numDataNodes = 0, numClientNodes = 0, transportClientRatio = 0.0)
|
||||||
public class Ec2DiscoveryUpdateSettingsTests extends AbstractAwsTestCase {
|
public class Ec2DiscoveryUpdateSettingsTests extends AbstractAwsTestCase {
|
||||||
public void testMinimumMasterNodesStart() {
|
public void testMinimumMasterNodesStart() {
|
||||||
Settings nodeSettings = Settings.builder()
|
Settings nodeSettings = Settings.builder()
|
||||||
|
|
|
@ -73,11 +73,6 @@ public class GceDiscoverTests extends ESIntegTestCase {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean addTestZenDiscovery() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testJoin() {
|
public void testJoin() {
|
||||||
// start master node
|
// start master node
|
||||||
final String masterNode = internalCluster().startMasterOnlyNode();
|
final String masterNode = internalCluster().startMasterOnlyNode();
|
||||||
|
|
|
@ -78,13 +78,12 @@ for (Version version : bwcVersions.wireCompatible) {
|
||||||
clusterName = 'rolling-upgrade'
|
clusterName = 'rolling-upgrade'
|
||||||
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
||||||
minimumMasterNodes = { 2 }
|
minimumMasterNodes = { 2 }
|
||||||
|
autoSetInitialMasterNodes = false
|
||||||
/* Override the data directory so the new node always gets the node we
|
/* Override the data directory so the new node always gets the node we
|
||||||
* just stopped's data directory. */
|
* just stopped's data directory. */
|
||||||
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
||||||
setting 'repositories.url.allowed_urls', 'http://snapshot.test*'
|
setting 'repositories.url.allowed_urls', 'http://snapshot.test*'
|
||||||
setting 'node.name', "upgraded-node-${stopNode}"
|
setting 'node.name', "upgraded-node-${stopNode}"
|
||||||
// TODO: Move to Zen2 once we support rolling upgrade with Zen2
|
|
||||||
setting 'discovery.type', 'zen'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,10 @@ apply plugin: 'elasticsearch.rest-test'
|
||||||
|
|
||||||
integTestCluster {
|
integTestCluster {
|
||||||
setting 'node.name', null
|
setting 'node.name', null
|
||||||
// TODO: Run this using zen2, with no discovery configuration at all, demonstrating that the node forms a cluster on its own without help
|
// Run with no discovery configuration at all, demonstrating that a node in its
|
||||||
setting 'discovery.type', 'zen'
|
// "out-of-the-box" configuration can automatically bootstrap a cluster
|
||||||
|
autoSetInitialMasterNodes = false
|
||||||
|
autoSetHostsProvider = false
|
||||||
}
|
}
|
||||||
|
|
||||||
integTestRunner {
|
integTestRunner {
|
||||||
|
|
|
@ -103,6 +103,8 @@ public class ClusterBootstrapService {
|
||||||
transportService.getThreadPool().scheduleUnlessShuttingDown(unconfiguredBootstrapTimeout, Names.SAME, new Runnable() {
|
transportService.getThreadPool().scheduleUnlessShuttingDown(unconfiguredBootstrapTimeout, Names.SAME, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
// TODO: remove the following line once schedule method properly preserves thread context
|
||||||
|
threadContext.markAsSystemContext();
|
||||||
final GetDiscoveredNodesRequest request = new GetDiscoveredNodesRequest();
|
final GetDiscoveredNodesRequest request = new GetDiscoveredNodesRequest();
|
||||||
logger.trace("sending {}", request);
|
logger.trace("sending {}", request);
|
||||||
transportService.sendRequest(transportService.getLocalNode(), GetDiscoveredNodesAction.NAME, request,
|
transportService.sendRequest(transportService.getLocalNode(), GetDiscoveredNodesAction.NAME, request,
|
||||||
|
@ -212,6 +214,8 @@ public class ClusterBootstrapService {
|
||||||
transportService.getThreadPool().scheduleUnlessShuttingDown(TimeValue.timeValueSeconds(10), Names.SAME, new Runnable() {
|
transportService.getThreadPool().scheduleUnlessShuttingDown(TimeValue.timeValueSeconds(10), Names.SAME, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
// TODO: remove the following line once schedule method properly preserves thread context
|
||||||
|
transportService.getThreadPool().getThreadContext().markAsSystemContext();
|
||||||
awaitBootstrap(bootstrapConfiguration);
|
awaitBootstrap(bootstrapConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class DiscoveryModule {
|
||||||
public static final String ZEN2_DISCOVERY_TYPE = "zen2";
|
public static final String ZEN2_DISCOVERY_TYPE = "zen2";
|
||||||
|
|
||||||
public static final Setting<String> DISCOVERY_TYPE_SETTING =
|
public static final Setting<String> DISCOVERY_TYPE_SETTING =
|
||||||
new Setting<>("discovery.type", ZEN_DISCOVERY_TYPE, Function.identity(), Property.NodeScope);
|
new Setting<>("discovery.type", ZEN2_DISCOVERY_TYPE, Function.identity(), Property.NodeScope);
|
||||||
public static final Setting<List<String>> DISCOVERY_HOSTS_PROVIDER_SETTING =
|
public static final Setting<List<String>> DISCOVERY_HOSTS_PROVIDER_SETTING =
|
||||||
Setting.listSetting("discovery.zen.hosts_provider", Collections.emptyList(), Function.identity(), Property.NodeScope);
|
Setting.listSetting("discovery.zen.hosts_provider", Collections.emptyList(), Function.identity(), Property.NodeScope);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.settings.ClusterSettings;
|
import org.elasticsearch.common.settings.ClusterSettings;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.discovery.Discovery;
|
import org.elasticsearch.discovery.Discovery;
|
||||||
|
import org.elasticsearch.discovery.DiscoveryModule;
|
||||||
import org.elasticsearch.test.ESTestCase;
|
import org.elasticsearch.test.ESTestCase;
|
||||||
import org.elasticsearch.test.transport.MockTransport;
|
import org.elasticsearch.test.transport.MockTransport;
|
||||||
import org.elasticsearch.threadpool.TestThreadPool;
|
import org.elasticsearch.threadpool.TestThreadPool;
|
||||||
|
@ -102,7 +103,10 @@ public class TransportBootstrapClusterActionTests extends ESTestCase {
|
||||||
final Discovery discovery = mock(Discovery.class);
|
final Discovery discovery = mock(Discovery.class);
|
||||||
verifyZeroInteractions(discovery);
|
verifyZeroInteractions(discovery);
|
||||||
|
|
||||||
new TransportBootstrapClusterAction(Settings.EMPTY, EMPTY_FILTERS, transportService, discovery); // registers action
|
final String nonstandardDiscoveryType = randomFrom(DiscoveryModule.ZEN_DISCOVERY_TYPE, "single-node", "unknown");
|
||||||
|
new TransportBootstrapClusterAction(
|
||||||
|
Settings.builder().put(DiscoveryModule.DISCOVERY_TYPE_SETTING.getKey(), nonstandardDiscoveryType).build(),
|
||||||
|
EMPTY_FILTERS, transportService, discovery); // registers action
|
||||||
transportService.start();
|
transportService.start();
|
||||||
transportService.acceptIncomingRequests();
|
transportService.acceptIncomingRequests();
|
||||||
|
|
||||||
|
@ -117,7 +121,8 @@ public class TransportBootstrapClusterActionTests extends ESTestCase {
|
||||||
public void handleException(TransportException exp) {
|
public void handleException(TransportException exp) {
|
||||||
final Throwable rootCause = exp.getRootCause();
|
final Throwable rootCause = exp.getRootCause();
|
||||||
assertThat(rootCause, instanceOf(IllegalArgumentException.class));
|
assertThat(rootCause, instanceOf(IllegalArgumentException.class));
|
||||||
assertThat(rootCause.getMessage(), equalTo("cluster bootstrapping is not supported by discovery type [zen]"));
|
assertThat(rootCause.getMessage(), equalTo("cluster bootstrapping is not supported by discovery type [" +
|
||||||
|
nonstandardDiscoveryType + "]"));
|
||||||
countDownLatch.countDown();
|
countDownLatch.countDown();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.elasticsearch.common.settings.ClusterSettings;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.discovery.Discovery;
|
import org.elasticsearch.discovery.Discovery;
|
||||||
|
import org.elasticsearch.discovery.DiscoveryModule;
|
||||||
import org.elasticsearch.discovery.PeersRequest;
|
import org.elasticsearch.discovery.PeersRequest;
|
||||||
import org.elasticsearch.test.ESTestCase;
|
import org.elasticsearch.test.ESTestCase;
|
||||||
import org.elasticsearch.test.transport.MockTransport;
|
import org.elasticsearch.test.transport.MockTransport;
|
||||||
|
@ -124,7 +125,10 @@ public class TransportGetDiscoveredNodesActionTests extends ESTestCase {
|
||||||
final Discovery discovery = mock(Discovery.class);
|
final Discovery discovery = mock(Discovery.class);
|
||||||
verifyZeroInteractions(discovery);
|
verifyZeroInteractions(discovery);
|
||||||
|
|
||||||
new TransportGetDiscoveredNodesAction(Settings.EMPTY, EMPTY_FILTERS, transportService, discovery); // registers action
|
final String nonstandardDiscoveryType = randomFrom(DiscoveryModule.ZEN_DISCOVERY_TYPE, "single-node", "unknown");
|
||||||
|
new TransportGetDiscoveredNodesAction(
|
||||||
|
Settings.builder().put(DiscoveryModule.DISCOVERY_TYPE_SETTING.getKey(), nonstandardDiscoveryType).build(),
|
||||||
|
EMPTY_FILTERS, transportService, discovery); // registers action
|
||||||
transportService.start();
|
transportService.start();
|
||||||
transportService.acceptIncomingRequests();
|
transportService.acceptIncomingRequests();
|
||||||
|
|
||||||
|
@ -139,7 +143,8 @@ public class TransportGetDiscoveredNodesActionTests extends ESTestCase {
|
||||||
public void handleException(TransportException exp) {
|
public void handleException(TransportException exp) {
|
||||||
final Throwable rootCause = exp.getRootCause();
|
final Throwable rootCause = exp.getRootCause();
|
||||||
assertThat(rootCause, instanceOf(IllegalArgumentException.class));
|
assertThat(rootCause, instanceOf(IllegalArgumentException.class));
|
||||||
assertThat(rootCause.getMessage(), equalTo("discovered nodes are not exposed by discovery type [zen]"));
|
assertThat(rootCause.getMessage(), equalTo("discovered nodes are not exposed by discovery type [" +
|
||||||
|
nonstandardDiscoveryType + "]"));
|
||||||
countDownLatch.countDown();
|
countDownLatch.countDown();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.elasticsearch.discovery;
|
||||||
|
|
||||||
import org.elasticsearch.Version;
|
import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.cluster.ClusterState;
|
import org.elasticsearch.cluster.ClusterState;
|
||||||
|
import org.elasticsearch.cluster.coordination.Coordinator;
|
||||||
import org.elasticsearch.cluster.node.DiscoveryNode;
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||||
import org.elasticsearch.cluster.routing.allocation.AllocationService;
|
import org.elasticsearch.cluster.routing.allocation.AllocationService;
|
||||||
import org.elasticsearch.cluster.service.ClusterApplier;
|
import org.elasticsearch.cluster.service.ClusterApplier;
|
||||||
|
@ -107,7 +108,7 @@ public class DiscoveryModuleTests extends ESTestCase {
|
||||||
|
|
||||||
public void testDefaults() {
|
public void testDefaults() {
|
||||||
DiscoveryModule module = newModule(Settings.EMPTY, Collections.emptyList());
|
DiscoveryModule module = newModule(Settings.EMPTY, Collections.emptyList());
|
||||||
assertTrue(module.getDiscovery() instanceof ZenDiscovery);
|
assertTrue(module.getDiscovery() instanceof Coordinator);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testLazyConstructionDiscovery() {
|
public void testLazyConstructionDiscovery() {
|
||||||
|
@ -205,7 +206,9 @@ public class DiscoveryModuleTests extends ESTestCase {
|
||||||
|
|
||||||
public void testJoinValidator() {
|
public void testJoinValidator() {
|
||||||
BiConsumer<DiscoveryNode, ClusterState> consumer = (a, b) -> {};
|
BiConsumer<DiscoveryNode, ClusterState> consumer = (a, b) -> {};
|
||||||
DiscoveryModule module = newModule(Settings.EMPTY, Collections.singletonList(new DiscoveryPlugin() {
|
// TODO: move to zen2 once join validators are implemented
|
||||||
|
DiscoveryModule module = newModule(Settings.builder().put(DiscoveryModule.DISCOVERY_TYPE_SETTING.getKey(),
|
||||||
|
DiscoveryModule.ZEN_DISCOVERY_TYPE).build(), Collections.singletonList(new DiscoveryPlugin() {
|
||||||
@Override
|
@Override
|
||||||
public BiConsumer<DiscoveryNode, ClusterState> getJoinValidator() {
|
public BiConsumer<DiscoveryNode, ClusterState> getJoinValidator() {
|
||||||
return consumer;
|
return consumer;
|
||||||
|
|
|
@ -56,6 +56,7 @@ for (Version version : bwcVersions.wireCompatible) {
|
||||||
clusterName = 'rolling-upgrade-basic'
|
clusterName = 'rolling-upgrade-basic'
|
||||||
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
||||||
minimumMasterNodes = { 2 }
|
minimumMasterNodes = { 2 }
|
||||||
|
autoSetInitialMasterNodes = false
|
||||||
/* Override the data directory so the new node always gets the node we
|
/* Override the data directory so the new node always gets the node we
|
||||||
* just stopped's data directory. */
|
* just stopped's data directory. */
|
||||||
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
||||||
|
@ -66,8 +67,6 @@ for (Version version : bwcVersions.wireCompatible) {
|
||||||
setting 'xpack.watcher.enabled', 'false'
|
setting 'xpack.watcher.enabled', 'false'
|
||||||
setting 'xpack.license.self_generated.type', 'basic'
|
setting 'xpack.license.self_generated.type', 'basic'
|
||||||
setting 'node.name', "upgraded-node-${stopNode}"
|
setting 'node.name', "upgraded-node-${stopNode}"
|
||||||
// TODO: Move to Zen2 once we support rolling upgrade with Zen2
|
|
||||||
setting 'discovery.type', 'zen'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -188,6 +188,7 @@ subprojects {
|
||||||
clusterName = 'rolling-upgrade'
|
clusterName = 'rolling-upgrade'
|
||||||
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
otherUnicastHostAddresses = { getOtherUnicastHostAddresses() }
|
||||||
minimumMasterNodes = { 2 }
|
minimumMasterNodes = { 2 }
|
||||||
|
autoSetInitialMasterNodes = false
|
||||||
/* Override the data directory so the new node always gets the node we
|
/* Override the data directory so the new node always gets the node we
|
||||||
* just stopped's data directory. */
|
* just stopped's data directory. */
|
||||||
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir }
|
||||||
|
@ -215,8 +216,6 @@ subprojects {
|
||||||
if (version.before('6.0.0')) {
|
if (version.before('6.0.0')) {
|
||||||
keystoreSetting 'xpack.security.authc.token.passphrase', 'token passphrase'
|
keystoreSetting 'xpack.security.authc.token.passphrase', 'token passphrase'
|
||||||
}
|
}
|
||||||
// TODO: Move to Zen2 once we support rolling upgrade with Zen2
|
|
||||||
setting 'discovery.type', 'zen'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,7 @@ node.name: "node-master"
|
||||||
node.master: true
|
node.master: true
|
||||||
node.data: false
|
node.data: false
|
||||||
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301"]
|
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301"]
|
||||||
|
cluster.initial_master_nodes: ["node-master"]
|
||||||
|
|
||||||
xpack.ssl.key: $ESCONFIG/certs/node-master/node-master.key
|
xpack.ssl.key: $ESCONFIG/certs/node-master/node-master.key
|
||||||
xpack.ssl.certificate: $ESCONFIG/certs/node-master/node-master.crt
|
xpack.ssl.certificate: $ESCONFIG/certs/node-master/node-master.crt
|
||||||
|
|
Loading…
Reference in New Issue