diff options
Diffstat (limited to 'config-model')
16 files changed, 187 insertions, 30 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java index 93ff88f182b..4e9eb3bdb2e 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java +++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java @@ -107,7 +107,6 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter * @param root The Root to set as parent for all plugins * @param servicesRoot XML root node of the services file */ - @SuppressWarnings("deprecation") private void readConfigModels(ApplicationConfigProducerRoot root, Element servicesRoot, DeployState deployState, 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 c33eb9c6704..89433cdf7c0 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 @@ -37,6 +37,8 @@ public class TestProperties implements ModelContext.Properties { private boolean useFdispatchByDefault = true; private boolean useAdaptiveDispatch = false; private boolean useSeparateServiceTypeForLogserverContainer = false; + private boolean enableMetricsProxyContainer = false; + @Override public boolean multitenant() { return multitenant; } @Override public ApplicationId applicationId() { return applicationId; } @@ -53,6 +55,7 @@ public class TestProperties implements ModelContext.Properties { @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } @Override public boolean useFdispatchByDefault() { return useFdispatchByDefault; } @Override public boolean useSeparateServiceTypeForLogserverContainer() { return useSeparateServiceTypeForLogserverContainer; } + @Override public boolean enableMetricsProxyContainer() { return enableMetricsProxyContainer; } public TestProperties setApplicationId(ApplicationId applicationId) { this.applicationId = applicationId; @@ -89,6 +92,11 @@ public class TestProperties implements ModelContext.Properties { return this; } + public TestProperties setEnableMetricsProxyContainer(boolean enableMetricsProxyContainer) { + this.enableMetricsProxyContainer = enableMetricsProxyContainer; + return this; + } + public static class Spec implements ConfigServerSpec { private final String hostName; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java index fe3e5960446..8a98730c9c6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java @@ -10,6 +10,7 @@ import com.yahoo.config.model.api.ConfigServerSpec; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.model.AbstractService; import com.yahoo.vespa.model.ConfigProxy; @@ -17,6 +18,8 @@ import com.yahoo.vespa.model.ConfigSentinel; import com.yahoo.vespa.model.HostResource; import com.yahoo.vespa.model.Logd; import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerContainerCluster; +import com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainer; +import com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster; import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; import com.yahoo.vespa.model.admin.monitoring.Monitoring; import com.yahoo.vespa.model.admin.monitoring.builder.Metrics; @@ -67,11 +70,12 @@ public class Admin extends AbstractConfigProducer implements Serializable { */ private ClusterControllerContainerCluster clusterControllers; - /** - * Cluster for container that might be running on logserver hosts - */ + // Cluster of logserver containers. If enabled, exactly one container is running on each logserver host. private Optional<LogserverContainerCluster> logServerContainerCluster = Optional.empty(); + // Cluster of metricsproxy containers. Exactly one container is set up on all hosts. + private MetricsProxyContainerCluster metricsProxyContainerCluster; + private ZooKeepersConfigProvider zooKeepersConfigProvider; private FileDistributionConfigProducer fileDistribution; private final boolean multitenant; @@ -191,12 +195,27 @@ public class Admin extends AbstractConfigProducer implements Serializable { public void addPerHostServices(List<HostResource> hosts, DeployState deployState) { if (slobroks.isEmpty()) // TODO: Move to caller slobroks.addAll(createDefaultSlobrokSetup(deployState.getDeployLogger())); + + if (deployState.getProperties().enableMetricsProxyContainer()) + addMetricsProxyCluster(hosts, deployState); + for (HostResource host : hosts) { if (!host.getHost().runsConfigServer()) { addCommonServices(host, deployState); } } } + + private void addMetricsProxyCluster(List<HostResource> hosts, DeployState deployState) { + var metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics", deployState); + int index = 0; + for (var host : hosts) { + var container = new MetricsProxyContainer(metricsProxyCluster, index++); + addAndInitializeService(deployState.getDeployLogger(), host, container); + metricsProxyCluster.addContainer(container); + } + } + private void addCommonServices(HostResource host, DeployState deployState) { addConfigSentinel(deployState.getDeployLogger(), host, deployState.getProperties().applicationId(), deployState.zone()); addLogd(deployState.getDeployLogger(), host); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java index 1e0c72c6298..f8f515cb609 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java @@ -11,8 +11,8 @@ import com.yahoo.vespa.model.container.component.Handler; */ public class LogserverContainerCluster extends ContainerCluster<LogserverContainer> { - public LogserverContainerCluster(AbstractConfigProducer<?> parent, String subId, String name, DeployState deployState) { - super(parent, subId, name, deployState); + public LogserverContainerCluster(AbstractConfigProducer<?> parent, String name, DeployState deployState) { + super(parent, name, name, deployState); addDefaultHandlersWithVip(); addLogHandler(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java new file mode 100644 index 00000000000..742196c91d1 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java @@ -0,0 +1,48 @@ +package com.yahoo.vespa.model.admin.metricsproxy; + +import com.yahoo.config.model.api.container.ContainerServiceType; +import com.yahoo.config.model.producer.AbstractConfigProducer; +import com.yahoo.vespa.model.container.Container; + +import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; + +/** + * Container running a metrics proxy. + * + * @author gjoranv + */ +public class MetricsProxyContainer extends Container { + + public MetricsProxyContainer(AbstractConfigProducer parent, int index) { + super(parent, "" + index, index); + setProp("clustertype", "admin"); + setProp("index", String.valueOf(index)); + } + + @Override + protected ContainerServiceType myServiceType() { + return METRICS_PROXY_CONTAINER; + } + + @Override + public int getWantedPort() { + return 19092; // TODO: current metrics-proxy uses 19091 as rpc port, will now get 19093. + } + + @Override + public boolean requiresWantedPort() { + return true; + } + + @Override + public int getPortCount() { + return super.getPortCount() + 1; + } + + @Override + protected void tagServers() { + super.tagServers(); + portsMeta.on(numHttpServerPorts).tag("rpc").tag("metrics"); + } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java new file mode 100644 index 00000000000..437df42d531 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -0,0 +1,23 @@ +package com.yahoo.vespa.model.admin.metricsproxy; + +import com.yahoo.config.model.deploy.DeployState; +import com.yahoo.config.model.producer.AbstractConfigProducer; +import com.yahoo.vespa.model.container.ContainerCluster; + +/** + * Container cluster for metrics proxy containers. + * + * @author gjoranv + */ +public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyContainer> { + + public MetricsProxyContainerCluster(AbstractConfigProducer<?> parent, String name, DeployState deployState) { + super(parent, name, name, deployState); + setRpcServerEnabled(false); + addDefaultHandlersExceptStatus(); + } + + @Override + protected void doPrepare(DeployState deployState) { } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java index 6b697a0f329..7d19c1d77c9 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java @@ -106,7 +106,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { // Creates a container cluster 'logs' with a container on the logserver host // that has a handler for getting logs private void createContainerOnLogserverHost(DeployState deployState, Admin admin, HostResource hostResource) { - LogserverContainerCluster logServerCluster = new LogserverContainerCluster(admin, "logs", "logs", deployState); + LogserverContainerCluster logServerCluster = new LogserverContainerCluster(admin, "logs", deployState); ContainerModel logserverClusterModel = new ContainerModel(context.withParent(admin).withId(logServerCluster.getSubId())); logserverClusterModel.setCluster(logServerCluster); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java index 5df50fa7ac7..f449feb5fc1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java @@ -69,7 +69,7 @@ public abstract class Container extends AbstractService implements private final JettyHttpServer defaultHttpServer = new JettyHttpServer(new ComponentId("DefaultHttpServer")); - private final int numHttpServerPorts; + protected final int numHttpServerPorts; private static final int numRpcServerPorts = 2; protected Container(AbstractConfigProducer parent, String name, int index) { @@ -155,7 +155,7 @@ public abstract class Container extends AbstractService implements tagServers(); } - private void tagServers() { + protected void tagServers() { if (numHttpServerPorts > 0) { portsMeta.on(0).tag("http").tag("query").tag("external").tag("state"); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index e61c1226968..a370e0dc38b 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -323,9 +323,7 @@ public abstract class ContainerCluster<CONTAINER extends Container> } public void addContainers(Collection<CONTAINER> containers) { - for (var container : containers) { - addContainer(container); - } + containers.forEach(this::addContainer); } public void setProcessingChains(ProcessingChains processingChains, String... serverBindings) { @@ -676,7 +674,7 @@ public abstract class ContainerCluster<CONTAINER extends Container> boolean messageBusEnabled() { return messageBusEnabled; } - public void setRpcServerEnabled(boolean rpcServerEnabled) { this.rpcServerEnabled = rpcServerEnabled; } + public final void setRpcServerEnabled(boolean rpcServerEnabled) { this.rpcServerEnabled = rpcServerEnabled; } boolean rpcServerEnabled() { return rpcServerEnabled; } diff --git a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java index 7a2c702a103..dc72fb8a42b 100644 --- a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java @@ -115,7 +115,7 @@ public class SystemModelTestCase { assertEquals(host2, host3); // all three host aliases are for the same host, so the number of services should be 3 + 8 - // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok and log server) + // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok, logserver and metricsproxy) assertEquals(9, host1.getServices().size()); assertNotNull(host1.getService("simpleservice")); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java index 2c8887b0247..749ee2b9acc 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java @@ -28,6 +28,7 @@ import org.junit.Test; import java.util.Set; +import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -37,9 +38,6 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -/** - * @author gjoranv - */ public class AdminTestCase { private static final String TESTDIR = "src/test/cfg/admin/"; @@ -104,6 +102,7 @@ public class AdminTestCase { assertThat(sentinelConfig.service(0).name(), is("logserver")); assertThat(sentinelConfig.service(1).name(), is("slobrok")); assertThat(sentinelConfig.service(2).name(), is("slobrok2")); + //assertThat(sentinelConfig.service(3).name(), is(METRICS_PROXY_CONTAINER.serviceName)); assertThat(sentinelConfig.service(3).name(), is("logd")); } @@ -138,6 +137,7 @@ public class AdminTestCase { assertThat(sentinelConfig.service().size(), is(3)); assertThat(sentinelConfig.service(0).name(), is("logserver")); assertThat(sentinelConfig.service(1).name(), is("slobrok")); + //assertThat(sentinelConfig.service(2).name(), is(METRICS_PROXY_CONTAINER.serviceName)); assertThat(sentinelConfig.service(2).name(), is("logd")); assertThat(sentinelConfig.service(0).affinity().cpuSocket(), is(-1)); assertTrue(sentinelConfig.service(0).preShutdownCommand().isEmpty()); @@ -292,6 +292,7 @@ public class AdminTestCase { assertThat(sentinelConfig.service().size(), is(3)); assertThat(sentinelConfig.service(0).name(), is("logserver")); assertThat(sentinelConfig.service(1).name(), is("slobrok")); + //assertThat(sentinelConfig.service(2).name(), is(METRICS_PROXY_CONTAINER.serviceName)); assertThat(sentinelConfig.service(2).name(), is("logd")); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java index 9f68b8b32bd..f004cc8ff2a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java @@ -5,6 +5,7 @@ import com.yahoo.cloud.config.LogforwarderConfig; import com.yahoo.cloud.config.SentinelConfig; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.NullConfigModelRegistry; +import com.yahoo.config.model.api.container.ContainerServiceType; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.provision.Hosts; @@ -26,7 +27,9 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.IntStream; -import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID; +import static com.yahoo.config.model.api.container.ContainerServiceType.CONTAINER; +import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; +import static com.yahoo.config.model.api.container.ContainerServiceType.QRSERVER; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -74,7 +77,7 @@ public class DedicatedAdminV4Test { assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd"); assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd"); // Note: A container is always added on logserver host - assertHostContainsServices(model, "hosts/myhost2", "logserver", "logd", "container"); + assertHostContainsServices(model, "hosts/myhost2", "logserver", "logd", CONTAINER.serviceName); Monitoring monitoring = model.getAdmin().getMonitoring(); assertEquals("vespa.routing", monitoring.getClustername()); @@ -126,10 +129,14 @@ public class DedicatedAdminV4Test { assertEquals(4, model.getHosts().size()); // 4 slobroks, 2 per cluster where possible - assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", "qrserver"); - assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd", "qrserver"); - assertHostContainsServices(model, "hosts/myhost2", "slobrok", "logd", "qrserver"); - assertHostContainsServices(model, "hosts/myhost3", "slobrok", "logd", "qrserver"); + assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", + QRSERVER.serviceName); + assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd", + QRSERVER.serviceName); + assertHostContainsServices(model, "hosts/myhost2", "slobrok", "logd", + QRSERVER.serviceName); + assertHostContainsServices(model, "hosts/myhost3", "slobrok", "logd", + QRSERVER.serviceName); } @Test @@ -150,7 +157,7 @@ public class DedicatedAdminV4Test { assertHostContainsServices(model, "hosts/myhost0", "logd", "logforwarder", "slobrok"); assertHostContainsServices(model, "hosts/myhost1", "logd", "logforwarder", "slobrok"); // Note: A container is always added on logserver host - assertHostContainsServices(model, "hosts/myhost2", "logd", "logforwarder", "logserver", "container"); + assertHostContainsServices(model, "hosts/myhost2", "logd", "logforwarder", "logserver", CONTAINER.serviceName); Set<String> configIds = model.getConfigIds(); // 1 logforwarder on each host @@ -193,7 +200,7 @@ public class DedicatedAdminV4Test { .properties(new TestProperties().setHostedVespa(true))); assertEquals(1, model.getHosts().size()); // Should create a container on the same node as logserver - assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", "container"); + assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", CONTAINER.serviceName); } private Set<String> serviceNames(VespaModel model, String hostname) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java new file mode 100644 index 00000000000..efd13e82361 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java @@ -0,0 +1,45 @@ +package com.yahoo.vespa.model.admin.metricsproxy; + +import com.yahoo.vespa.model.VespaModel; +import com.yahoo.vespa.model.test.VespaModelTester; +import org.junit.Test; + +import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.junit.Assert.assertThat; + +/** + * @author gjoranv + */ +public class MetricsProxyContainerClusterTest { + + @Test + public void one_metrics_proxy_container_is_added_to_every_node() { + var numberOfHosts = 4; + var tester = new VespaModelTester(); + tester.enableMetricsProxyContainer(true); + tester.addHosts(4); + + VespaModel model = tester.createModel(servicesXml(), true); + assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts)); + + for (var host : model.getHostSystem().getHosts()) { + assertThat(host.getService(METRICS_PROXY_CONTAINER.serviceName), notNullValue()); + } + + } + + private String servicesXml() { + return String.join("\n", "<?xml version='1.0' encoding='utf-8' ?>", + "<services>", + " <container version='1.0' id='foo'>", + " <nodes count='2'/>", + " </container>", + " <content id='my-content' version='1.0'>", + " <documents />", + " <nodes count='2'/>", + " </content>", + "</services>"); + } +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java index f13f53e8648..01f868d2ad7 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java @@ -61,6 +61,7 @@ public class ConfigValueChangeValidatorTest { assertEquals(2, changes.size()); assertComponentsEquals(changes, "default/container.0", 0); assertComponentsEquals(changes, "admin/cluster-controllers/0", 1); + //assertComponentsEquals(changes, "admin/metrics/0", 2); } @Test diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java index 2c3e447533d..6a5e3bcb9d6 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom; import com.yahoo.collections.CollectionUtil; import com.yahoo.config.ConfigInstance; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.model.api.container.ContainerServiceType; import com.yahoo.config.model.builder.xml.test.DomBuilderTest; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.deploy.TestProperties; @@ -34,6 +35,8 @@ import org.junit.rules.ExpectedException; import java.util.Arrays; import java.util.List; +import static com.yahoo.config.model.api.container.ContainerServiceType.CLUSTERCONTROLLER_CONTAINER; +import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertEquals; @@ -236,10 +239,9 @@ public class ContentBuilderTest extends DomBuilderTest { assertEquals(1, cluster.getRoot().getHostSystem().getHosts().size()); HostResource h = cluster.getRoot().getHostSystem().getHost("mockhost"); String [] expectedServices = { - "logd", "configproxy", - "config-sentinel", "configserver", "logserver", - "slobrok", "container-clustercontroller", - "storagenode", "distributor","searchnode","transactionlogserver" + "logd", "configproxy", "config-sentinel", "configserver", "logserver", + "slobrok", "storagenode", "distributor","searchnode","transactionlogserver", + CLUSTERCONTROLLER_CONTAINER.serviceName }; assertServices(h, expectedServices); 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 0922ede86b6..00bc82bbe02 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 @@ -48,6 +48,7 @@ public class VespaModelTester { private ApplicationId applicationId = ApplicationId.defaultId(); private boolean useDedicatedNodeForLogserver = false; private boolean useSeparateServiceTypeForLogserverContainer = false; + private boolean enableMetricsProxyContainer = false; public VespaModelTester() { this(new NullConfigModelRegistry()); @@ -102,6 +103,10 @@ public class VespaModelTester { this.useSeparateServiceTypeForLogserverContainer = useSeparateServiceTypeForLogserverContainer; } + public void enableMetricsProxyContainer(boolean enableMetricsProxyContainer) { + this.enableMetricsProxyContainer = enableMetricsProxyContainer; + } + /** 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); @@ -143,7 +148,8 @@ public class VespaModelTester { .setHostedVespa(hosted) .setApplicationId(applicationId) .setUseDedicatedNodeForLogserver(useDedicatedNodeForLogserver) - .setUseSeparateServiceTypeForLogserverContainer(useSeparateServiceTypeForLogserverContainer); + .setUseSeparateServiceTypeForLogserverContainer(useSeparateServiceTypeForLogserverContainer) + .setEnableMetricsProxyContainer(enableMetricsProxyContainer); DeployState deployState = new DeployState.Builder() .applicationPackage(appPkg) |