diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-11-26 23:59:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-26 23:59:11 +0100 |
commit | 371e9b50738dafc28c7ab2aea6495d26ecd6c0c9 (patch) | |
tree | cab2e619b30910b8d90bf39415fd3541b448a2df /config-model | |
parent | ef4ece0ae64a1f1ec8accb257168b2a08d6971b1 (diff) | |
parent | 4478bf54b2bef0c9dec322339e1c5ef62912b060 (diff) |
Merge pull request #15486 from vespa-engine/hmusum/configure-zookeeper-cluster
Setup components and config for container cluster when zookeeper is c…
Diffstat (limited to 'config-model')
3 files changed, 28 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java index 4e7405a7d99..2b8966ed541 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.model.container; import ai.vespa.metricsproxy.http.application.ApplicationMetricsHandler; +import com.yahoo.cloud.config.ZookeeperServerConfig; import com.yahoo.component.ComponentId; import com.yahoo.component.ComponentSpecification; import com.yahoo.config.FileReference; @@ -27,6 +28,7 @@ import com.yahoo.vespa.model.container.component.ConfigProducerGroup; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.Servlet; import com.yahoo.vespa.model.container.component.SystemBindingPattern; +import com.yahoo.vespa.model.container.configserver.ConfigserverCluster; import com.yahoo.vespa.model.container.jersey.Jersey2Servlet; import com.yahoo.vespa.model.container.jersey.RestApi; import com.yahoo.vespa.model.container.xml.PlatformBundles; @@ -53,7 +55,8 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat RankingConstantsConfig.Producer, ServletPathsConfig.Producer, ContainerMbusConfig.Producer, - MetricsProxyApiConfig.Producer { + MetricsProxyApiConfig.Producer, + ZookeeperServerConfig.Producer { public static final String METRICS_V2_HANDLER_CLASS = MetricsV2Handler.class.getName(); public static final BindingPattern METRICS_V2_HANDLER_BINDING_1 = SystemBindingPattern.fromHttpPath(MetricsV2Handler.V2_PATH); @@ -251,6 +254,20 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat } } + @Override + public void getConfig(ZookeeperServerConfig.Builder builder) { + if (getParent() instanceof ConfigserverCluster) return; // Produces its own config + + // Note: Default client and server ports are used, so not set here + for (Container container : getContainers()) { + ZookeeperServerConfig.Server.Builder serverBuilder = new ZookeeperServerConfig.Server.Builder(); + serverBuilder.hostname(container.getHostName()); + serverBuilder.id(container.index()); + builder.server(serverBuilder); + builder.dynamicReconfiguration(true); + } + } + public Optional<String> getTlsClientAuthority() { return tlsClientAuthority; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index b7d64483e57..9a2814fbf03 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -218,7 +218,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { MIN_ZOOKEEPER_NODE_COUNT + " and " + MAX_ZOOKEEPER_NODE_COUNT); } cluster.addSimpleComponent("com.yahoo.vespa.curator.Curator", null, "zkfacade"); - // TODO: Add server component + cluster.addSimpleComponent("com.yahoo.vespa.zookeeper.ReconfigurableVespaZooKeeperServer", null, "zookeeper-server"); + cluster.addSimpleComponent("com.yahoo.vespa.zookeeper.Reconfigurer", null, "zookeeper-server"); } private void addSecretStore(ApplicationContainerCluster cluster, Element spec) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java index 32dd5cc944c..06378c2ea6e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java @@ -884,11 +884,11 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { tester.addHosts(3); { VespaModel model = tester.createModel(servicesXml.apply(3), true); - String componentId = "com.yahoo.vespa.curator.Curator"; ApplicationContainerCluster cluster = model.getContainerClusters().get("default"); assertNotNull(cluster); - Component<?, ?> curatorComponent = cluster.getComponentsMap().get(ComponentId.fromString(componentId)); - assertNotNull(curatorComponent); + assertComponentConfigured(cluster,"com.yahoo.vespa.curator.Curator"); + assertComponentConfigured(cluster,"com.yahoo.vespa.zookeeper.ReconfigurableVespaZooKeeperServer"); + assertComponentConfigured(cluster,"com.yahoo.vespa.zookeeper.Reconfigurer"); } { try { @@ -915,6 +915,11 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { } } + private void assertComponentConfigured(ApplicationContainerCluster cluster, String componentId) { + Component<?, ?> curatorComponent = cluster.getComponentsMap().get(ComponentId.fromString(componentId)); + assertNotNull(curatorComponent); + } + private Element generateContainerElementWithRenderer(String rendererId) { return DomBuilderTest.parse( "<container id='default' version='1.0'>", |