diff options
author | Harald Musum <musum@verizonmedia.com> | 2022-03-15 12:39:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-15 12:39:46 +0100 |
commit | 6d803878dd20afc1500286f0382e7077f834abaf (patch) | |
tree | 782de433036edd9cbeff17e7554844e680381662 /config-model/src/main/java/com/yahoo | |
parent | bbd8807e32787cf3ae0430d2e33084b586bf8bc6 (diff) | |
parent | 31ce004fc2092e5d3dac251f595a66bba0dd140e (diff) |
Merge pull request #21688 from vespa-engine/hmusum/add-feature-flag-for-node-architecture-for-admin-clusters
Add feature flag for node architecture for admin clusters [run-systemtest]
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
-rw-r--r-- | config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java | 7 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java | 28 |
2 files changed, 25 insertions, 10 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 2c028c52bf8..575080d3025 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 @@ -81,6 +81,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private List<String> environmentVariables = List.of(); private boolean avoidRenamingSummaryFeatures = false; private boolean experimentalSdParsing = false; + private String adminClusterNodeResourcesArchitecture = "x86_64"; @Override public ModelContext.FeatureFlags featureFlags() { return this; } @Override public boolean multitenant() { return multitenant; } @@ -142,6 +143,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public List<String> environmentVariables() { return environmentVariables; } @Override public boolean avoidRenamingSummaryFeatures() { return this.avoidRenamingSummaryFeatures; } @Override public boolean experimentalSdParsing() { return this.experimentalSdParsing; } + @Override public String adminClusterNodeArchitecture() { return adminClusterNodeResourcesArchitecture; } public TestProperties maxUnCommittedMemory(int maxUnCommittedMemory) { this.maxUnCommittedMemory = maxUnCommittedMemory; @@ -389,6 +391,11 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } + public TestProperties setAdminClusterNodeResourcesArchitecture(String architectureFunction) { + this.adminClusterNodeResourcesArchitecture = architectureFunction; + return this; + } + public static class Spec implements ConfigServerSpec { private final String hostName; 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 0d8f7148758..ce2bc351d2b 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 @@ -62,6 +62,9 @@ import java.util.Set; import java.util.TreeMap; import java.util.logging.Level; +import static com.yahoo.config.provision.NodeResources.Architecture; +import static com.yahoo.config.provision.NodeResources.DiskSpeed; +import static com.yahoo.config.provision.NodeResources.StorageType; import static java.util.stream.Collectors.toList; /** @@ -282,9 +285,11 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce DeployState deployState) { if (admin == null) return; // only in tests if (contentCluster.getPersistence() == null) return; + ClusterControllerContainerCluster clusterControllers; + String clusterName = "cluster-controllers"; if (context.properties().hostedVespa()) { - clusterControllers = getDedicatedSharedControllers(contentElement, admin, context, deployState); + clusterControllers = getDedicatedSharedControllers(contentElement, admin, context, deployState, clusterName); } else if (admin.multitenant()) { // system tests: Put on logserver if (admin.getClusterControllers() == null) { @@ -292,7 +297,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce List<HostResource> host = admin.getLogserver() == null ? List.of() : List.of(admin.getLogserver().getHostResource()); admin.setClusterControllers(createClusterControllers(new ClusterControllerCluster(admin, "standalone", deployState), host, - "cluster-controllers", + clusterName, true, deployState), deployState); @@ -324,26 +329,29 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce } } - public static final NodeResources clusterControllerResources = new NodeResources(0.25, 1, 10, 0.3, NodeResources.DiskSpeed.any, NodeResources.StorageType.any); + public static final NodeResources clusterControllerResources = new NodeResources(0.25, 1, 10, 0.3, DiskSpeed.any, StorageType.any); - private ClusterControllerContainerCluster getDedicatedSharedControllers(ModelElement contentElement, Admin admin, - ConfigModelContext context, DeployState deployState) { + private ClusterControllerContainerCluster getDedicatedSharedControllers(ModelElement contentElement, + Admin admin, + ConfigModelContext context, + DeployState deployState, + String clusterName) { if (admin.getClusterControllers() == null) { + NodeResources nodeResources = clusterControllerResources + .with(Architecture.valueOf(deployState.featureFlags().adminClusterNodeArchitecture())); NodesSpecification spec = NodesSpecification.requiredFromSharedParents(deployState.zone().environment().isProduction() ? 3 : 1, - clusterControllerResources, + nodeResources, contentElement, context); - Collection<HostResource> hosts = spec.provision(admin.hostSystem(), ClusterSpec.Type.admin, - ClusterSpec.Id.from("cluster-controllers"), + ClusterSpec.Id.from(clusterName), context.getDeployLogger(), true) .keySet(); - admin.setClusterControllers(createClusterControllers(new ClusterControllerCluster(admin, "standalone", deployState), hosts, - "cluster-controllers", + clusterName, true, context.getDeployState()), deployState); |