aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2022-03-15 12:39:46 +0100
committerGitHub <noreply@github.com>2022-03-15 12:39:46 +0100
commit6d803878dd20afc1500286f0382e7077f834abaf (patch)
tree782de433036edd9cbeff17e7554844e680381662 /config-model/src/main/java/com/yahoo
parentbbd8807e32787cf3ae0430d2e33084b586bf8bc6 (diff)
parent31ce004fc2092e5d3dac251f595a66bba0dd140e (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.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java28
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);