summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-05-22 15:42:56 +0200
committerMartin Polden <mpolden@mpolden.no>2019-05-23 09:03:28 +0200
commit6a1028b321791e48060a5305d855475caa2b0b58 (patch)
tree837286f8f962c0764de0ed13f196118744c89d95 /controller-api
parenteae2b9349be3721f21dfb5e593f9f2a5fe93e948 (diff)
Refresh routing policies on deploy (de)activation
Refreshing routing policies and performing the necessary DNS updates are somewhat time sensitive, especially in manually deployed environments, hence it makes sense that this should be done as early as possible. After introducing queuing of name service requests in #9224 it became obvious that the asynchronous behaviour of `RoutingPolicyMaintainer` is no longer needed. Because name service requests are now executed asynchronously by default, we can refresh policies during deployment (de)activation without worrying about DNS service failures or rate limits. Benefits of this change: - Reduces worst-case DNS propagation time by 5 minutes. - We no longer need to update *all* routing policies in the system when refreshing policies. This both reduces number of queued name service requests and distributes them over a longer duration. - Implementation is simplified since the system-wide dimension disappears. - Fetching of load balancers from config servers conincides with deployment and are thus spread over a longer duration.
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
index bcad82a23c1..43ae29ee922 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
@@ -1,11 +1,12 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.configserver;
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.EndpointStatus;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.identifiers.Hostname;
-import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.serviceview.bindings.ApplicationView;
import java.io.IOException;
@@ -76,4 +77,7 @@ public interface ConfigServer {
/** Get all load balancers in given zone */
List<LoadBalancer> getLoadBalancers(ZoneId zone);
+ /** Get all load balancers for application in given zone */
+ List<LoadBalancer> getLoadBalancers(ApplicationId application, ZoneId zone);
+
}