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 | 27 |
1 files changed, 17 insertions, 10 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 d88fae0a8ef..b648280020f 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,7 @@ 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.config.provision.zone.ZoneId; import com.yahoo.vespa.flags.BooleanFlag; import com.yahoo.vespa.flags.FetchVector; import com.yahoo.vespa.flags.FlagSource; @@ -36,11 +37,13 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private final Map<TenantName, Set<ApplicationInfo>> models; private final Zone zone; private final BooleanFlag use4443Upstream; + private final BooleanFlag generateConfigForTesterApplications; public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone, FlagSource flagSource) { this.models = models; this.zone = zone; this.use4443Upstream = Flags.USE_4443_UPSTREAM.bindTo(flagSource); + this.generateConfigForTesterApplications = Flags.GENERATE_ROUTING_CONFIG_FOR_TESTER_APPLICATIONS.bindTo(flagSource); } @Override @@ -56,10 +59,18 @@ public class LbServicesProducer implements LbServicesConfig.Producer { LbServicesConfig.Tenants.Builder tb = new LbServicesConfig.Tenants.Builder(); apps.stream() .sorted(Comparator.comparing(ApplicationInfo::getApplicationId)) + .filter(applicationInfo -> generateRoutingConfig(applicationInfo.getApplicationId())) .forEach(applicationInfo -> tb.applications(createLbAppIdKey(applicationInfo.getApplicationId()), getAppConfig(applicationInfo))); return tb; } + private boolean generateRoutingConfig(ApplicationId applicationId) { + if (!applicationId.instance().isTester()) return true; + return generateConfigForTesterApplications.with(FetchVector.Dimension.ZONE_ID, + ZoneId.from(zone.environment().value(), zone.region().value()).value()) + .value(); + } + private String createLbAppIdKey(ApplicationId applicationId) { return applicationId.application().value() + ":" + zone.environment().value() + ":" + zone.region().value() + ":" + applicationId.instance().value(); } @@ -92,10 +103,7 @@ public class LbServicesProducer implements LbServicesConfig.Producer { 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()); - hostInfo.getServices().stream() - .forEach(serviceInfo -> { - hb.services(serviceInfo.getServiceName(), getServiceConfig(serviceInfo)); - }); + hostInfo.getServices().forEach(serviceInfo -> hb.services(serviceInfo.getServiceName(), getServiceConfig(serviceInfo))); return hb; } @@ -114,12 +122,11 @@ public class LbServicesProducer implements LbServicesConfig.Producer { filter(prop -> !"".equals(prop)).sorted((a, b) -> a.compareTo(b)).collect(Collectors.toList())) .endpointaliases(endpointAliases) .index(Integer.parseInt(serviceInfo.getProperty("index").orElse("999999"))); - serviceInfo.getPorts().stream() - .forEach(portInfo -> { - LbServicesConfig.Tenants.Applications.Hosts.Services.Ports.Builder pb = new LbServicesConfig.Tenants.Applications.Hosts.Services.Ports.Builder() - .number(portInfo.getPort()) - .tags(Joiner.on(" ").join(portInfo.getTags())); - sb.ports(pb); + serviceInfo.getPorts().forEach(portInfo -> { + LbServicesConfig.Tenants.Applications.Hosts.Services.Ports.Builder pb = new LbServicesConfig.Tenants.Applications.Hosts.Services.Ports.Builder() + .number(portInfo.getPort()) + .tags(Joiner.on(" ").join(portInfo.getTags())); + sb.ports(pb); }); return sb; } |