summaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-02-04 10:19:26 +0100
committerMartin Polden <mpolden@mpolden.no>2021-02-04 10:19:26 +0100
commite1c81579d90ad6da3faeddee261ae4666a96302d (patch)
tree159040ba4272e8ca1f0e5699d7ff2708647330a2 /node-repository/src
parentb434914ac7aafd49adad156dd070af941a813985 (diff)
Remove controller-provision-lb flag
Diffstat (limited to 'node-repository/src')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java15
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java4
3 files changed, 6 insertions, 18 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java
index 2538619367f..a5a586e1bda 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java
@@ -31,8 +31,9 @@ public interface LoadBalancerService {
/** Returns whether load balancers created by this service can forward traffic to given node and cluster type */
default boolean canForwardTo(NodeType nodeType, ClusterSpec.Type clusterType) {
return (nodeType == NodeType.tenant && clusterType.isContainer()) ||
- (nodeType == NodeType.config && clusterType == ClusterSpec.Type.admin) ||
- (nodeType == NodeType.controller && clusterType.isContainer());
+ (nodeType == NodeType.config && clusterType == ClusterSpec.Type.admin);
+ // TODO(mpolden): Allow this when controllers support provisioning their own LBs
+ // (nodeType == NodeType.controller && clusterType.isContainer());
}
/** Load balancer protocols */
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
index b66dab58e55..a048f8bb8d2 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
@@ -11,9 +11,7 @@ import com.yahoo.config.provision.ProvisionLock;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.exception.LoadBalancerServiceException;
import com.yahoo.transaction.NestedTransaction;
-import com.yahoo.vespa.flags.BooleanFlag;
import com.yahoo.vespa.flags.FlagSource;
-import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
@@ -53,13 +51,11 @@ public class LoadBalancerProvisioner {
private final NodeRepository nodeRepository;
private final CuratorDatabaseClient db;
private final LoadBalancerService service;
- private final BooleanFlag provisionControllerLoadBalancer;
public LoadBalancerProvisioner(NodeRepository nodeRepository, LoadBalancerService service, FlagSource flagSource) {
this.nodeRepository = nodeRepository;
this.db = nodeRepository.database();
this.service = service;
- this.provisionControllerLoadBalancer = Flags.CONTROLLER_PROVISION_LB.bindTo(flagSource);
// Read and write all load balancers to make sure they are stored in the latest version of the serialization format
for (var id : db.readLoadBalancerIds()) {
try (var lock = db.lock(id.application())) {
@@ -80,7 +76,7 @@ public class LoadBalancerProvisioner {
* Calling this for irrelevant node or cluster types is a no-op.
*/
public void prepare(ApplicationId application, ClusterSpec cluster, NodeSpec requestedNodes) {
- if (!canForwardTo(requestedNodes.type(), cluster)) return; // Nothing to provision for this node and cluster type
+ if (!service.canForwardTo(requestedNodes.type(), cluster.type())) return; // Nothing to provision for this node and cluster type
if (application.instance().isTester()) return; // Do not provision for tester instances
try (var lock = db.lock(application)) {
ClusterSpec.Id clusterId = effectiveId(cluster);
@@ -146,15 +142,6 @@ public class LoadBalancerProvisioner {
db.writeLoadBalancers(deactivatedLoadBalancers, transaction);
}
- // TODO(mpolden): Inline when feature flag is removed
- private boolean canForwardTo(NodeType type, ClusterSpec cluster) {
- boolean canForwardTo = service.canForwardTo(type, cluster.type());
- if (canForwardTo) {
- if (type == NodeType.controller) return provisionControllerLoadBalancer.value();
- }
- return canForwardTo;
- }
-
/** Find all load balancer IDs owned by given tenant and application */
private List<LoadBalancerId> findLoadBalancers(TenantName tenant, ApplicationName application) {
return db.readLoadBalancerIds().stream()
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
index 7a636a030ec..eef342b527b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
@@ -10,7 +10,6 @@ import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
-import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.lb.LoadBalancer;
@@ -18,6 +17,7 @@ import com.yahoo.vespa.hosted.provision.lb.LoadBalancerInstance;
import com.yahoo.vespa.hosted.provision.lb.Real;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.IP;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.Collection;
@@ -222,9 +222,9 @@ public class LoadBalancerProvisionerTest {
assertEquals(cluster, lbs.get().get(0).id().cluster());
}
+ @Ignore // TODO: Re-enable when controller support is implemented
@Test
public void provision_load_balancer_controller_cluster() {
- flagSource.withBooleanFlag(Flags.CONTROLLER_PROVISION_LB.id(), true);
ApplicationId controllerApp = ApplicationId.from("hosted-vespa", "controller", "default");
Supplier<List<LoadBalancer>> lbs = () -> tester.nodeRepository().loadBalancers(controllerApp).asList();
var cluster = ClusterSpec.Id.from("zone-config-servers");