From 6b758c16509fc5cbfce17461094aff9c4b79e15a Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 26 Nov 2020 15:10:03 +0100 Subject: Setup components and config for container cluster when zookeeper is configured --- .../container/ApplicationContainerCluster.java | 22 +++++++++++++++++++++- .../model/container/xml/ContainerModelBuilder.java | 3 ++- .../container/xml/ContainerModelBuilderTest.java | 11 ++++++++--- 3 files changed, 31 insertions(+), 5 deletions(-) (limited to 'config-model') 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..89c32c0d702 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 servletGroup; private final ConfigProducerGroup restApiGroup; + private final boolean dynamicReconfigurationOfZookeeperCluster; + private ContainerModelEvaluation modelEvaluation; private Optional tlsClientAuthority; @@ -84,6 +89,7 @@ public final class ApplicationContainerCluster extends ContainerCluster parent, String configSubId, String clusterId, DeployState deployState) { super(parent, configSubId, clusterId, deployState, true); this.tlsClientAuthority = deployState.tlsClientAuthority(); + this.dynamicReconfigurationOfZookeeperCluster = deployState.getProperties().featureFlags().dynamicReconfigurationOfZookeeperCluster(); restApiGroup = new ConfigProducerGroup<>(this, "rest-api"); servletGroup = new ConfigProducerGroup<>(this, "servlet"); @@ -251,6 +257,20 @@ public final class ApplicationContainerCluster extends ContainerCluster 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..42e93586d79 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 { 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.curator.ReconfigurableVespaZooKeeperServer", null, "zkfacade"); + cluster.addSimpleComponent("com.yahoo.vespa.curator.Reconfigurer", null, "zkfacade"); } 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..10960826694 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.curator.ReconfigurableVespaZooKeeperServer"); + assertComponentConfigured(cluster,"com.yahoo.vespa.curator.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( "", -- cgit v1.2.3