diff options
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java | 13 |
1 files changed, 12 insertions, 1 deletions
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()); |