diff options
4 files changed, 15 insertions, 28 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 5893e473965..7087a58da21 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.flags; import com.yahoo.vespa.defaults.Defaults; -import com.yahoo.vespa.flags.custom.NodeResources; import com.yahoo.vespa.flags.custom.PreprovisionCapacity; import java.util.List; @@ -10,7 +9,6 @@ import java.util.Optional; import java.util.TreeMap; import static com.yahoo.vespa.flags.FetchVector.Dimension.APPLICATION_ID; -import static com.yahoo.vespa.flags.FetchVector.Dimension.CLUSTER_TYPE; import static com.yahoo.vespa.flags.FetchVector.Dimension.HOSTNAME; import static com.yahoo.vespa.flags.FetchVector.Dimension.NODE_TYPE; @@ -136,12 +134,6 @@ public class Flags { "Takes effect on next iteration of HostProvisionMaintainer.", APPLICATION_ID); - public static final UnboundJacksonFlag<NodeResources> DEFAULT_RESOURCES = defineJacksonFlag( - "default-resources", null, NodeResources.class, - "Node resources that will be used when not specified in services.xml", - "Takes effect on next deployment", - CLUSTER_TYPE); - public static final UnboundBooleanFlag USE_HTTPS_LOAD_BALANCER_UPSTREAM = defineFeatureFlag( "use-https-load-balancer-upstream", false, "Use https between load balancer and upstream containers", diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java index 5bc3703c11c..98d06f7e01a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java @@ -6,10 +6,6 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.flags.FetchVector; -import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.flags.Flags; -import com.yahoo.vespa.flags.JacksonFlag; import java.util.Arrays; import java.util.Locale; @@ -23,11 +19,12 @@ import java.util.Optional; public class CapacityPolicies { private final Zone zone; - private final JacksonFlag<com.yahoo.vespa.flags.custom.NodeResources> defaultResourcesFlag; + /* Deployments must match 1-to-1 the advertised resources of a physical host */ + private final boolean isUsingAdvertisedResources; - public CapacityPolicies(Zone zone, FlagSource flagSource) { + public CapacityPolicies(Zone zone) { this.zone = zone; - this.defaultResourcesFlag = Flags.DEFAULT_RESOURCES.bindTo(flagSource); + this.isUsingAdvertisedResources = zone.region().value().contains("aws-"); } public int decideSize(Capacity requestedCapacity, ClusterSpec.Type clusterType) { @@ -46,9 +43,7 @@ public class CapacityPolicies { public NodeResources decideNodeResources(Optional<NodeResources> requestedResources, ClusterSpec cluster) { if (requestedResources.isPresent()) assertMinimumResources(requestedResources.get(), cluster); - NodeResources resources = requestedResources - .or(() -> flagNodeResources(cluster.type())) - .orElse(defaultNodeResources(cluster.type())); + NodeResources resources = requestedResources.orElse(defaultNodeResources(cluster.type())); // Allow slow disks in zones which are not performance sensitive if (zone.system().isCd() || zone.environment() == Environment.dev || zone.environment() == Environment.test) @@ -71,16 +66,16 @@ public class CapacityPolicies { minMemoryGb, cluster.type().name(), cluster.id().value(), resources.memoryGb())); } - private Optional<NodeResources> flagNodeResources(ClusterSpec.Type clusterType) { - return Optional.ofNullable(defaultResourcesFlag.with(FetchVector.Dimension.CLUSTER_TYPE, clusterType.name()).value()) - .map(r -> new NodeResources(r.vcpu(), r.memoryGb(), r.diskGb(), r.bandwidthGbps(), NodeResources.DiskSpeed.valueOf(r.diskSpeed()))); - } - private NodeResources defaultNodeResources(ClusterSpec.Type clusterType) { - if (clusterType == ClusterSpec.Type.admin) - return new NodeResources(0.5, 2, 50, 0.3); + if (clusterType == ClusterSpec.Type.admin) { + return isUsingAdvertisedResources ? + new NodeResources(0.5, 4, 50, 0.3) : + new NodeResources(0.5, 2, 50, 0.3); + } - return new NodeResources(1.5, 8, 50, 0.3); + return isUsingAdvertisedResources ? + new NodeResources(2.0, 8, 50, 0.3) : + new NodeResources(1.5, 8, 50, 0.3); } /** diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index 7c6fdbe6fa5..97b615d493f 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -58,7 +58,7 @@ public class NodeRepositoryProvisioner implements Provisioner { public NodeRepositoryProvisioner(NodeRepository nodeRepository, Zone zone, ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource) { this.nodeRepository = nodeRepository; - this.capacityPolicies = new CapacityPolicies(zone, flagSource); + this.capacityPolicies = new CapacityPolicies(zone); this.zone = zone; this.loadBalancerProvisioner = provisionServiceProvider.getLoadBalancerService().map(lbService -> new LoadBalancerProvisioner(nodeRepository, lbService, flagSource)); this.preparer = new Preparer(nodeRepository, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java index dee32513457..844677395f4 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java @@ -91,7 +91,7 @@ public class ProvisioningTester { this.orchestrator = orchestrator; ProvisionServiceProvider provisionServiceProvider = new MockProvisionServiceProvider(loadBalancerService, hostProvisioner); this.provisioner = new NodeRepositoryProvisioner(nodeRepository, zone, provisionServiceProvider, flagSource); - this.capacityPolicies = new CapacityPolicies(zone, flagSource); + this.capacityPolicies = new CapacityPolicies(zone); this.provisionLogger = new NullProvisionLogger(); this.loadBalancerService = loadBalancerService; } |