diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-03-05 14:49:10 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-03-05 14:49:10 +0100 |
commit | 9fc9ff3dbf177b13a7c8cd83217e0541471ea513 (patch) | |
tree | 33373fdfd63d0f05dde476a0142dc71993380c20 /config-model | |
parent | cf288e59fddb5a1a8ad2430a10f820068a61d120 (diff) |
Always use dedicated cluster controllers when hosted (except in some tests)
Diffstat (limited to 'config-model')
9 files changed, 153 insertions, 75 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java index c78d54e6eff..b7b6824eb9f 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java @@ -36,7 +36,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private Zone zone; private final Set<ContainerEndpoint> endpoints = Collections.emptySet(); private boolean useDedicatedNodeForLogserver = false; - private boolean dedicatedClusterControllerCluster = false; + private boolean dedicatedClusterControllerCluster = true; private boolean useThreePhaseUpdates = false; private double defaultTermwiseLimit = 1.0; private String jvmGCOptions = null; @@ -74,7 +74,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public boolean isBootstrap() { return false; } @Override public boolean isFirstTimeDeployment() { return false; } @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } - @Override public boolean dedicatedClusterControllerCluster() { return dedicatedClusterControllerCluster; } + @Override public boolean dedicatedClusterControllerCluster() { return hostedVespa && dedicatedClusterControllerCluster; } @Override public Optional<EndpointCertificateSecrets> endpointCertificateSecrets() { return endpointCertificateSecrets; } @Override public double defaultTermwiseLimit() { return defaultTermwiseLimit; } @Override public boolean useThreePhaseUpdates() { return useThreePhaseUpdates; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java index c909aeec022..79ce9343560 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java @@ -413,7 +413,7 @@ public class ContentCluster extends AbstractConfigProducer implements } List<HostResource> sortedHosts = new ArrayList<>(hosts); - sortedHosts.sort((a, b) -> (a.comparePrimarilyByIndexTo(b))); + sortedHosts.sort(HostResource::comparePrimarilyByIndexTo); sortedHosts = sortedHosts.subList(0, Math.min(count, hosts.size())); return sortedHosts; } diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java index f1c81e29923..a76feb77c75 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java @@ -171,7 +171,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); - int numberOfHosts = 2; + int numberOfHosts = 5; tester.addHosts(numberOfHosts); int numberOfContentNodes = 2; VespaModel model = tester.createModel(xmlWithNodes, true); @@ -209,7 +209,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); - tester.addHosts(5); + tester.addHosts(8); VespaModel model = tester.createModel(xmlWithNodes, true); assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size()); @@ -264,6 +264,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(2); VespaModel model = tester.createModel(xmlWithNodes, true); assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size()); @@ -300,7 +301,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); - tester.addHosts(4); + tester.addHosts(7); VespaModel model = tester.createModel(xmlWithNodes, true); assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size()); assertEquals("Nodes in container1", 2, model.getContainerClusters().get("container1").getContainers().size()); @@ -329,6 +330,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(2); VespaModel model = tester.createModel(xmlWithNodes, true); @@ -365,7 +367,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); - tester.addHosts(5); + tester.addHosts(8); VespaModel model = tester.createModel(xmlWithNodes, true); assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size()); @@ -455,7 +457,112 @@ public class ModelProvisioningTest { public void testUsingNodesAndGroupCountAttributes() { String services = "<?xml version='1.0' encoding='utf-8' ?>\n" + - "<services>" + + "<services>" + + " <admin version='4.0'/>" + + " <container version='1.0' id='foo'>" + + " <nodes count='10'/>" + + " </container>" + + " <content version='1.0' id='bar'>" + + " <redundancy>2</redundancy>" + + " <documents>" + + " <document type='type1' mode='index'/>" + + " </documents>" + + " <nodes count='27' groups='9'/>" + + " </content>" + + " <content version='1.0' id='baz'>" + + " <redundancy>1</redundancy>" + + " <documents>" + + " <document type='type1' mode='index'/>" + + " </documents>" + + " <nodes count='27' groups='27'/>" + + " </content>" + + "</services>"; + + int numberOfHosts = 67; + VespaModelTester tester = new VespaModelTester(); + tester.addHosts(numberOfHosts); + VespaModel model = tester.createModel(services, true); + assertEquals(numberOfHosts, model.getRoot().hostSystem().getHosts().size()); + + // Check container cluster + assertEquals(1, model.getContainerClusters().size()); + Set<HostResource> containerHosts = model.getContainerClusters().get("foo").getContainers().stream() + .map(Container::getHost) + .collect(Collectors.toSet()); + assertEquals(10, containerHosts.size()); + + // Check admin clusters + Admin admin = model.getAdmin(); + Set<HostResource> slobrokHosts = admin.getSlobroks().stream().map(Slobrok::getHost).collect(Collectors.toSet()); + assertEquals(3, slobrokHosts.size()); + assertTrue("Slobroks are assigned from container nodes", containerHosts.containsAll(slobrokHosts)); + assertTrue("Logserver is assigned from container nodes", containerHosts.contains(admin.getLogserver().getHost())); + assertEquals("No in-cluster config servers in a hosted environment", 0, admin.getConfigservers().size()); + assertEquals("Dedicated admin cluster controllers when hosted", 3, admin.getClusterControllers().getContainers().size()); + + // Check content clusters + ContentCluster cluster = model.getContentClusters().get("bar"); + assertNull("No own cluster controllers when hosted", cluster.getClusterControllers()); + assertEquals(0, cluster.getRootGroup().getNodes().size()); + assertEquals(9, cluster.getRootGroup().getSubgroups().size()); + assertEquals("0", cluster.getRootGroup().getSubgroups().get(0).getIndex()); + assertEquals(3, cluster.getRootGroup().getSubgroups().get(0).getNodes().size()); + assertEquals(0, cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey()); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("bar/storage/0")); + assertEquals("node-1-3-10-57", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getDistributionKey(), is(1)); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getConfigId(), is("bar/storage/1")); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(2).getDistributionKey(), is(2)); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(2).getConfigId(), is("bar/storage/2")); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getIndex(), is("1")); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(3)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(3)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("bar/storage/3")); + assertEquals("node-1-3-10-54", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(1).getDistributionKey(), is(4)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(1).getConfigId(), is("bar/storage/4")); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(2).getDistributionKey(), is(5)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(2).getConfigId(), is("bar/storage/5")); + // ... + assertEquals("node-1-3-10-51", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); + // ... + assertThat(cluster.getRootGroup().getSubgroups().get(8).getIndex(), is("8")); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().size(), is(3)); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(0).getDistributionKey(), is(24)); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(0).getConfigId(), is("bar/storage/24")); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(1).getDistributionKey(), is(25)); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(1).getConfigId(), is("bar/storage/25")); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(2).getDistributionKey(), is(26)); + assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().get(2).getConfigId(), is("bar/storage/26")); + + cluster = model.getContentClusters().get("baz"); + assertNull("No own cluster controllers when hosted", cluster.getClusterControllers()); + assertEquals(0, cluster.getRootGroup().getNodes().size()); + assertEquals(27, cluster.getRootGroup().getSubgroups().size()); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getIndex(), is("0")); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().size(), is(1)); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey(), is(0)); + assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("baz/storage/0")); + assertEquals("node-1-3-10-27", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getIndex(), is("1")); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(1)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(1)); + assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("baz/storage/1")); + assertEquals("node-1-3-10-26", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + // ... + assertEquals("node-1-3-10-25", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); + // ... + assertThat(cluster.getRootGroup().getSubgroups().get(26).getIndex(), is("26")); + assertThat(cluster.getRootGroup().getSubgroups().get(26).getNodes().size(), is(1)); + assertThat(cluster.getRootGroup().getSubgroups().get(26).getNodes().get(0).getDistributionKey(), is(26)); + assertThat(cluster.getRootGroup().getSubgroups().get(26).getNodes().get(0).getConfigId(), is("baz/storage/26")); + } + + @Test + public void testUsingNodesAndGroupCountAttributesWithoutDedicatedClusterControllers() { + String services = + "<?xml version='1.0' encoding='utf-8' ?>\n" + + "<services>" + " <admin version='4.0'/>" + " <container version='1.0' id='foo'>" + " <nodes count='10'/>" + @@ -478,6 +585,7 @@ public class ModelProvisioningTest { int numberOfHosts = 64; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(numberOfHosts); VespaModel model = tester.createModel(services, true); assertEquals(numberOfHosts, model.getRoot().hostSystem().getHosts().size()); @@ -584,20 +692,22 @@ public class ModelProvisioningTest { " </content>" + "</services>"; - int numberOfHosts = 18; + int numberOfHosts = 21; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); VespaModel model = tester.createModel(services, true); assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); + ClusterControllerContainerCluster clusterControllers = model.getAdmin().getClusterControllers(); + assertEquals(3, clusterControllers.getContainers().size()); + assertEquals("cluster-controllers", clusterControllers.getName()); + assertEquals("node-1-3-10-03", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-10-02", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-10-01", clusterControllers.getContainers().get(2).getHostName()); + // Check content cluster ContentCluster cluster = model.getContentClusters().get("bar"); - ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); - assertEquals(3, clusterControllers.getContainers().size()); - assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("node-1-3-10-08", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("node-1-3-10-07", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("node-1-3-10-06", clusterControllers.getContainers().get(2).getHostName()); + assertNull(cluster.getClusterControllers()); assertEquals(0, cluster.getRootGroup().getNodes().size()); assertEquals(8, cluster.getRootGroup().getSubgroups().size()); assertEquals(8, cluster.distributionBits()); @@ -606,19 +716,19 @@ public class ModelProvisioningTest { assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey(), is(0)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("bar/storage/0")); - assertEquals("node-1-3-10-08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertEquals("node-1-3-10-11", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); // second group assertThat(cluster.getRootGroup().getSubgroups().get(1).getIndex(), is("1")); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("bar/storage/1")); - assertEquals("node-1-3-10-07", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertEquals("node-1-3-10-10", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); // ... last group assertThat(cluster.getRootGroup().getSubgroups().get(7).getIndex(), is("7")); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getDistributionKey(), is(7)); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getConfigId(), is("bar/storage/7")); - assertEquals("node-1-3-10-01", cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getHostName()); + assertEquals("node-1-3-10-04", cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getHostName()); } @Test @@ -641,6 +751,7 @@ public class ModelProvisioningTest { int numberOfHosts = 18; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(numberOfHosts); VespaModel model = tester.createModel(services, true); assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); @@ -656,43 +767,6 @@ public class ModelProvisioningTest { } @Test - public void testClusterControllersIncludeNonRetiredNodes() { - String services = - "<?xml version='1.0' encoding='utf-8' ?>\n" + - "<services>" + - " <admin version='4.0'/>" + - " <container version='1.0' id='foo'>" + - " <nodes count='10'/>" + - " </container>" + - " <content version='1.0' id='bar'>" + - " <redundancy>2</redundancy>" + - " <documents>" + - " <document type='type1' mode='index'/>" + - " </documents>" + - " <nodes count='9' groups='3'/>" + - " </content>" + - "</services>"; - - int numberOfHosts = 19; - VespaModelTester tester = new VespaModelTester(); - tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "node-1-3-10-09", "node-1-3-10-06", "node-1-3-10-03"); - assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); - - // Check content clusters - ContentCluster cluster = model.getContentClusters().get("bar"); - ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); - assertEquals(3 + 3, clusterControllers.getContainers().size()); // 3 new + 3 retired - assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("Non-retired", "node-1-3-10-08", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("Non-retired", "node-1-3-10-05", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("Non-retired", "node-1-3-10-02", clusterControllers.getContainers().get(2).getHostName()); - assertEquals("Retired", "node-1-3-10-09", clusterControllers.getContainers().get(3).getHostName()); - assertEquals("Retired", "node-1-3-10-06", clusterControllers.getContainers().get(4).getHostName()); - assertEquals("Retired", "node-1-3-10-03", clusterControllers.getContainers().get(5).getHostName()); - } - - @Test public void testSlobroksClustersAreExpandedToIncludeRetiredNodes() { String services = "<?xml version='1.0' encoding='utf-8' ?>\n" + @@ -791,6 +865,7 @@ public class ModelProvisioningTest { int numberOfHosts = 2; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(numberOfHosts); VespaModel model = tester.createModel(services, true); assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); @@ -824,7 +899,6 @@ public class ModelProvisioningTest { int numberOfHosts = 7; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - tester.dedicatedClusterControllerCluster(true); VespaModel model = tester.createModel(services); assertEquals(7, model.getRoot().hostSystem().getHosts().size()); @@ -991,6 +1065,7 @@ public class ModelProvisioningTest { int numberOfHosts = 1; // We only have 1 content node -> 1 groups with redundancy 1 VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(numberOfHosts); VespaModel model = tester.createModel(services, false); assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); @@ -1048,7 +1123,6 @@ public class ModelProvisioningTest { int numberOfHosts = 4; // needs 2 for foo and 3 for cluster controllers. VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - tester.dedicatedClusterControllerCluster(true); tester.createModel(services, false); } @@ -1157,6 +1231,7 @@ public class ModelProvisioningTest { int totalHosts = 18; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(new NodeResources(0.1, 0.2, 300, 0.3, NodeResources.DiskSpeed.slow), 1);// Logserver tester.addHosts(new NodeResources(0.1, 0.3, 1, 0.5), 2); // Slobrok tester.addHosts(new NodeResources(12, 10, 30, 0.3), 4); // Container @@ -1188,6 +1263,7 @@ public class ModelProvisioningTest { int totalHosts = 10; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(new NodeResources(11.5, 10, 30, 0.3), 6); tester.addHosts(new NodeResources(85, 200, 1000_000_000, 0.3), 20); VespaModel model = tester.createModel(services, true); @@ -1216,6 +1292,7 @@ public class ModelProvisioningTest { int totalHosts = 26; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(new NodeResources(13.5, 100, 1000, 0.3), 6); tester.addHosts(new NodeResources(85, 200, 1000_000_000, 0.3), 20); VespaModel model = tester.createModel(services, true, true); @@ -1387,10 +1464,11 @@ public class ModelProvisioningTest { tester.setHosted(true); tester.addHosts(4); VespaModel model = tester.createModel(new Zone(Environment.dev, RegionName.from("us-central-1")), services, true); - assertEquals("We get 1 node per cluster and no admin node", 2, model.getHosts().size()); + assertEquals("We get 1 node per cluster and no admin node apart from the dedicated cluster controller", 3, model.getHosts().size()); assertEquals(1, model.getContainerClusters().size()); assertEquals(1, model.getContainerClusters().get("foo").getContainers().size()); assertEquals(1, model.getContentClusters().get("bar").getRootGroup().countNodes()); + assertEquals(1, model.getAdmin().getClusterControllers().getContainers().size()); } /** Deploying an application with "nodes count" standalone should give a single-node deployment */ @@ -1437,6 +1515,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(3); VespaModel model = tester.createModel(services, true); assertEquals(3, model.getRoot().hostSystem().getHosts().size()); @@ -1737,6 +1816,7 @@ public class ModelProvisioningTest { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(); + tester.dedicatedClusterControllerCluster(false); tester.addHosts(6); VespaModel model = tester.createModel(servicesXml, true); @@ -1851,7 +1931,7 @@ public class ModelProvisioningTest { "</services>"); VespaModelTester tester = new VespaModelTester(); - tester.addHosts(new NodeResources(1, 3, 9, 5, NodeResources.DiskSpeed.slow), 2); + tester.addHosts(new NodeResources(1, 3, 10, 5, NodeResources.DiskSpeed.slow), 5); VespaModel model = tester.createModel(services, true, 0); ContentSearchCluster cluster = model.getContentClusters().get("test").getSearch(); assertEquals(2, cluster.getSearchNodes().size()); @@ -1903,7 +1983,7 @@ public class ModelProvisioningTest { "</services>"); VespaModelTester tester = new VespaModelTester(); - tester.addHosts(new NodeResources(1, 3, 9, 1), 1); + tester.addHosts(new NodeResources(1, 3, 10, 1), 4); tester.addHosts(new NodeResources(1, 128, 100, 0.3), 1); VespaModel model = tester.createModel(services, true, 0); ContentSearchCluster cluster = model.getContentClusters().get("test").getSearch(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java index 87db274d4f5..a11d23dbfbb 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java @@ -33,7 +33,7 @@ public class MetricsProxyContainerTest { @Test public void one_metrics_proxy_container_is_added_to_every_node() { - var numberOfHosts = 4; + var numberOfHosts = 7; var tester = new VespaModelTester(); tester.addHosts(numberOfHosts); @@ -55,7 +55,6 @@ public class MetricsProxyContainerTest { var numberOfHosts = 7; var tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - tester.dedicatedClusterControllerCluster(true); VespaModel model = tester.createModel(servicesWithManyNodes(), true); assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts)); @@ -118,7 +117,7 @@ public class MetricsProxyContainerTest { public void hosted_application_propagates_node_dimensions() { String services = servicesWithContent(); VespaModel hostedModel = getModel(services, hosted); - assertEquals(1, hostedModel.getHosts().size()); + assertEquals(4, hostedModel.getHosts().size()); String configId = containerConfigId(hostedModel, hosted); NodeDimensionsConfig config = getNodeDimensionsConfig(hostedModel, configId); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java index 7fcd5c14a0f..7c31802fb4d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java @@ -44,7 +44,7 @@ class MetricsProxyModelTester { } static VespaModel getModel(String servicesXml, TestMode testMode, DeployState.Builder builder) { - var numberOfHosts = testMode == hosted ? 2 : 1; + var numberOfHosts = testMode == hosted ? 4 : 1; var tester = new VespaModelTester(); tester.addHosts(numberOfHosts); tester.setHosted(testMode == hosted); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/ImplicitIndexingClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/ImplicitIndexingClusterTest.java index 2d48f55d3d5..5525f00c381 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/ImplicitIndexingClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/ImplicitIndexingClusterTest.java @@ -50,7 +50,7 @@ public class ImplicitIndexingClusterTest { ModelContext.Properties properties = new TestProperties().setMultitenant(true).setHostedVespa(true); DeployState.Builder deployStateBuilder = new DeployState.Builder() .properties(properties) - .modelHostProvisioner(new InMemoryProvisioner(true, false, "host1.yahoo.com", "host2.yahoo.com", "host3.yahoo.com")); + .modelHostProvisioner(new InMemoryProvisioner(6, false)); return new VespaModelCreatorWithMockPkg(new MockApplicationPackage.Builder() .withServices("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + servicesXml) diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index ea76578ef04..811e789752e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -1059,7 +1059,7 @@ public class ContentClusterTest extends ContentBaseTest { @Test public void testDedicatedClusterControllers() { - VespaModel noContentModel = createEnd2EndOneNode(new TestProperties().setDedicatedClusterControllerCluster(true) + VespaModel noContentModel = createEnd2EndOneNode(new TestProperties().setHostedVespa(true) .setMultitenant(true), "<?xml version='1.0' encoding='UTF-8' ?>" + "<services version='1.0'>" + @@ -1068,7 +1068,7 @@ public class ContentClusterTest extends ContentBaseTest { assertEquals(Map.of(), noContentModel.getContentClusters()); assertNull("No cluster controller without content", noContentModel.getAdmin().getClusterControllers()); - VespaModel oneContentModel = createEnd2EndOneNode(new TestProperties().setDedicatedClusterControllerCluster(true) + VespaModel oneContentModel = createEnd2EndOneNode(new TestProperties().setHostedVespa(true) .setMultitenant(true), "<?xml version='1.0' encoding='UTF-8' ?>" + "<services version='1.0'>" + @@ -1109,7 +1109,7 @@ public class ContentClusterTest extends ContentBaseTest { " </tuning>" + " </content>" + " </services>"; - VespaModel twoContentModel = createEnd2EndOneNode(new TestProperties().setDedicatedClusterControllerCluster(true) + VespaModel twoContentModel = createEnd2EndOneNode(new TestProperties().setHostedVespa(true) .setMultitenant(true), twoContentServices); assertNull("No own cluster controller for content", twoContentModel.getContentClusters().get("storage").getClusterControllers()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/ModelAmendingTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/test/ModelAmendingTestCase.java index 001773abb92..4a388025399 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/ModelAmendingTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/ModelAmendingTestCase.java @@ -74,7 +74,7 @@ public class ModelAmendingTestCase { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(amendingModelRepo); - tester.addHosts(9); + tester.addHosts(12); VespaModel model = tester.createModel(services); // Check that all hosts are amended @@ -121,7 +121,6 @@ public class ModelAmendingTestCase { " </content>" + "</services>"; VespaModelTester tester = new VespaModelTester(amendingModelRepo); - tester.dedicatedClusterControllerCluster(true); tester.addHosts(12); VespaModel model = tester.createModel(services); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index 220f87001aa..eafbca09009 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -52,7 +52,7 @@ public class VespaModelTester { private final Map<NodeResources, Collection<Host>> hostsByResources = new HashMap<>(); private ApplicationId applicationId = ApplicationId.defaultId(); private boolean useDedicatedNodeForLogserver = false; - private boolean dedicatedClusterControllerCluster = false; + private boolean dedicatedClusterControllerCluster = true; public VespaModelTester() { this(new NullConfigModelRegistry()); @@ -98,14 +98,14 @@ public class VespaModelTester { applicationId = ApplicationId.from(tenant, applicationName, instanceName); } - public void dedicatedClusterControllerCluster(boolean dedicatedClusterControllerCluster) { - this.dedicatedClusterControllerCluster = dedicatedClusterControllerCluster; - } - public void useDedicatedNodeForLogserver(boolean useDedicatedNodeForLogserver) { this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver; } + public void dedicatedClusterControllerCluster(boolean dedicatedClusterControllerCluster) { + this.dedicatedClusterControllerCluster = dedicatedClusterControllerCluster; + } + /** Creates a model which uses 0 as start index and fails on out of capacity */ public VespaModel createModel(String services, String ... retiredHostNames) { return createModel(Zone.defaultZone(), services, true, retiredHostNames); |