diff options
3 files changed, 0 insertions, 62 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 0fef25fa619..075166e4759 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -114,13 +114,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag TCP_ABORT_ON_OVERFLOW = defineFeatureFlag( - "tcp-abort-on-overflow", false, - List.of("andreer"), "2020-12-02", "2021-02-01", - "Whether to set /proc/sys/net/ipv4/tcp_abort_on_overflow to 0 (false) or 1 (true)", - "Takes effect on next host-admin tick.", - HOSTNAME); - public static final UnboundStringFlag TLS_FOR_ZOOKEEPER_CLIENT_SERVER_COMMUNICATION = defineStringFlag( "tls-for-zookeeper-client-server-communication", "OFF", List.of("hmusum"), "2020-12-02", "2021-04-01", @@ -176,14 +169,6 @@ public class Flags { ZONE_ID ); - public static final UnboundIntFlag TENANT_NODE_QUOTA = defineIntFlag( - "tenant-node-quota", 5, - List.of("andreer"), "2020-12-02", "2021-02-01", - "The number of nodes a tenant is allowed to request per cluster", - "Only takes effect on next deployment, if set to a value other than the default for flag!", - APPLICATION_ID - ); - public static final UnboundBooleanFlag ONLY_PUBLIC_ACCESS = defineFeatureFlag( "enable-public-only", false, List.of("ogronnesby"), "2020-12-02", "2021-02-01", 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 96bce8b71d4..05c20ee69f1 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 @@ -17,10 +17,7 @@ import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.Zone; import com.yahoo.transaction.Mutex; -import com.yahoo.vespa.flags.FetchVector; import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.flags.Flags; -import com.yahoo.vespa.flags.IntFlag; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; @@ -59,7 +56,6 @@ public class NodeRepositoryProvisioner implements Provisioner { private final Activator activator; private final Optional<LoadBalancerProvisioner> loadBalancerProvisioner; private final NodeResourceLimits nodeResourceLimits; - private final IntFlag tenantNodeQuota; @Inject public NodeRepositoryProvisioner(NodeRepository nodeRepository, Zone zone, @@ -76,7 +72,6 @@ public class NodeRepositoryProvisioner implements Provisioner { provisionServiceProvider.getHostProvisioner(), loadBalancerProvisioner); this.activator = new Activator(nodeRepository, loadBalancerProvisioner); - this.tenantNodeQuota = Flags.TENANT_NODE_QUOTA.bindTo(flagSource); } @@ -92,10 +87,6 @@ public class NodeRepositoryProvisioner implements Provisioner { if (cluster.group().isPresent()) throw new IllegalArgumentException("Node requests cannot specify a group"); - if ( ! hasQuota(application, requested.maxResources().nodes())) - throw new IllegalArgumentException(requested + " requested for " + cluster + - ". Max value exceeds your quota. Resolve this at https://cloud.vespa.ai/pricing"); - nodeResourceLimits.ensureWithinAdvertisedLimits("Min", requested.minResources().nodeResources(), cluster); nodeResourceLimits.ensureWithinAdvertisedLimits("Max", requested.maxResources().nodeResources(), cluster); @@ -194,15 +185,6 @@ public class NodeRepositoryProvisioner implements Provisioner { ", downscaling to " + actualNodes + " nodes in " + zone.environment()); } - private boolean hasQuota(ApplicationId application, int requestedNodes) { - if ( ! this.zone.system().isPublic()) return true; // no quota management - - if (application.tenant().value().hashCode() == 3857) return requestedNodes <= 60; - if (application.tenant().value().hashCode() == -1271827001) return requestedNodes <= 75; - - return requestedNodes <= tenantNodeQuota.with(FetchVector.Dimension.APPLICATION_ID, application.tenant().value()).value(); - } - private List<HostSpec> asSortedHosts(List<Node> nodes, NodeResources requestedResources) { nodes.sort(Comparator.comparingInt(node -> node.allocation().get().membership().index())); List<HostSpec> hosts = new ArrayList<>(nodes.size()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index cbac5a39e09..be7d2656d13 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -633,35 +633,6 @@ public class ProvisioningTest { } @Test - public void out_of_quota() { - ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(SystemName.Public, - Environment.prod, - RegionName.from("us-east"))).build(); - - tester.makeReadyHosts(13, defaultResources).activateTenantHosts(); - ApplicationId application = ProvisioningTester.applicationId(); - try { - prepare(application, 2, 2, 6, 3, defaultResources, tester); - fail("Expected exception"); - } - catch (IllegalArgumentException e) { - assertEquals("6 nodes with [vcpu: 1.0, memory: 4.0 Gb, disk 10.0 Gb, bandwidth: 4.0 Gbps] requested for content cluster 'content0' 6.42. Max value exceeds your quota. Resolve this at https://cloud.vespa.ai/pricing", - e.getMessage()); - } - } - - @Test - public void no_out_of_quota_outside_public() { - ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(SystemName.main, - Environment.prod, - RegionName.from("us-east"))).build(); - - tester.makeReadyHosts(13, defaultResources).activateTenantHosts(); - ApplicationId application = ProvisioningTester.applicationId(); - prepare(application, 2, 2, 6, 3, defaultResources, tester); - } - - @Test public void out_of_capacity_but_cannot_fail() { ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build(); tester.makeReadyHosts(4, defaultResources).activateTenantHosts(); |