diff options
author | Harald Musum <musum@verizonmedia.com> | 2019-03-28 15:26:37 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2019-03-28 15:26:37 +0100 |
commit | 3981f83325702f0ae124e8d9cbaa1bf76eda79b1 (patch) | |
tree | 1e5429ac5899e4c0c5258c9d8bf8f7a8e90221bc /configserver/src/main/java/com | |
parent | 1ded1ef53b9b206770a765acbb097fb7c653463c (diff) | |
parent | 20137f39548cd2b2c5c5b826a0d8550e7c807e3e (diff) |
Merge branch 'master' into hmusum/use-separate-service-type-for-logserver-by-default
Diffstat (limited to 'configserver/src/main/java/com')
3 files changed, 21 insertions, 5 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java index 80818aea2e8..eeae770da43 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java @@ -14,6 +14,7 @@ import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.GenerationCounter; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.model.SuperModelConfigProvider; +import com.yahoo.vespa.flags.FlagSource; import java.time.Instant; import java.util.ArrayList; @@ -28,6 +29,7 @@ public class SuperModelManager implements SuperModelProvider { private final Zone zone; private final Object monitor = new Object(); + private final FlagSource flagSource; private SuperModelConfigProvider superModelConfigProvider; // Guarded by 'this' monitor private final List<SuperModelListener> listeners = new ArrayList<>(); // Guarded by 'this' monitor @@ -39,7 +41,9 @@ public class SuperModelManager implements SuperModelProvider { @Inject public SuperModelManager(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors, - GenerationCounter generationCounter) { + GenerationCounter generationCounter, + FlagSource flagSource) { + this.flagSource = flagSource; this.zone = new Zone(configserverConfig, nodeFlavors); this.generationCounter = generationCounter; this.masterGeneration = configserverConfig.masterGeneration(); @@ -107,6 +111,6 @@ public class SuperModelManager implements SuperModelProvider { private void makeNewSuperModelConfigProvider(SuperModel newSuperModel) { generation = masterGeneration + generationCounter.get(); - superModelConfigProvider = new SuperModelConfigProvider(newSuperModel, zone); + superModelConfigProvider = new SuperModelConfigProvider(newSuperModel, zone, flagSource); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java index ceeea197440..1503e4d2397 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java @@ -9,6 +9,10 @@ import com.yahoo.config.model.api.ServiceInfo; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.vespa.flags.BooleanFlag; +import com.yahoo.vespa.flags.FetchVector; +import com.yahoo.vespa.flags.FlagSource; +import com.yahoo.vespa.flags.Flags; import java.util.Collections; import java.util.Comparator; @@ -31,10 +35,12 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private final Map<TenantName, Set<ApplicationInfo>> models; private final Zone zone; + private final BooleanFlag useHttpsLoadBalancerUpstream; - public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone) { + public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone, FlagSource flagSource) { this.models = models; this.zone = zone; + this.useHttpsLoadBalancerUpstream = Flags.USE_HTTPS_LOAD_BALANCER_UPSTREAM.bindTo(flagSource); } @Override @@ -61,6 +67,7 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private LbServicesConfig.Tenants.Applications.Builder getAppConfig(ApplicationInfo app) { LbServicesConfig.Tenants.Applications.Builder ab = new LbServicesConfig.Tenants.Applications.Builder(); ab.activeRotation(getActiveRotation(app)); + ab.upstreamHttps(useHttpsLoadBalancerUpstream(app)); app.getModel().getHosts().stream() .sorted((a, b) -> a.getHostname().compareTo(b.getHostname())) .forEach(hostInfo -> ab.hosts(hostInfo.getHostname(), getHostsConfig(hostInfo))); @@ -81,6 +88,10 @@ public class LbServicesProducer implements LbServicesConfig.Producer { return activeRotation; } + private boolean useHttpsLoadBalancerUpstream(ApplicationInfo app) { + return useHttpsLoadBalancerUpstream.with(FetchVector.Dimension.APPLICATION_ID, app.getApplicationId().serializedForm()).value(); + } + private LbServicesConfig.Tenants.Applications.Hosts.Builder getHostsConfig(HostInfo hostInfo) { LbServicesConfig.Tenants.Applications.Hosts.Builder hb = new LbServicesConfig.Tenants.Applications.Hosts.Builder(); hb.hostname(hostInfo.getHostname()); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java index 4a75414c272..75f53667c4a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; +import com.yahoo.vespa.flags.FlagSource; import java.util.Collections; import java.util.Map; @@ -26,9 +27,9 @@ public class SuperModelConfigProvider implements LbServicesConfig.Producer, Rout private final LbServicesProducer lbProd; private final RoutingProducer zoneProd; - public SuperModelConfigProvider(SuperModel superModel, Zone zone) { + public SuperModelConfigProvider(SuperModel superModel, Zone zone, FlagSource flagSource) { this.superModel = superModel; - this.lbProd = new LbServicesProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant()), zone); + this.lbProd = new LbServicesProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant()), zone, flagSource); this.zoneProd = new RoutingProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant())); } |