diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2021-02-18 09:16:01 +0100 |
---|---|---|
committer | Morten Tokle <mortent@verizonmedia.com> | 2021-02-18 09:16:01 +0100 |
commit | 51ce644205624ce2c578b9a71703acb866919201 (patch) | |
tree | e2c05c566ac7fc42e63d2aa69caec12ba3cf5945 /configserver | |
parent | 64b47633d54017c1973d3ea1b05b226cdf8f3133 (diff) |
Flag to enable/disable generation of non-mtls endpoint
Diffstat (limited to 'configserver')
2 files changed, 19 insertions, 0 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 d816c3215a7..c195f1a9f96 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 @@ -36,11 +36,13 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private final Map<TenantName, Set<ApplicationInfo>> models; private final Zone zone; private final BooleanFlag usePowerOfTwoChoicesLb; + private final BooleanFlag generateNonMtlsEndpoint; public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone, FlagSource flagSource) { this.models = models; this.zone = zone; usePowerOfTwoChoicesLb = Flags.USE_POWER_OF_TWO_CHOICES_LOAD_BALANCING.bindTo(flagSource); + generateNonMtlsEndpoint = Flags.GENERATE_NON_MTLS_ENDPOINT.bindTo(flagSource); } @Override @@ -73,6 +75,7 @@ public class LbServicesProducer implements LbServicesConfig.Producer { LbServicesConfig.Tenants.Applications.Builder ab = new LbServicesConfig.Tenants.Applications.Builder(); ab.activeRotation(getActiveRotation(app)); ab.usePowerOfTwoChoicesLb(usePowerOfTwoChoicesLb(app)); + ab.generateNonMtlsEndpoint(generateNonMtlsEndpoint(app)); app.getModel().getHosts().stream() .sorted((a, b) -> a.getHostname().compareTo(b.getHostname())) .forEach(hostInfo -> ab.hosts(hostInfo.getHostname(), getHostsConfig(hostInfo))); @@ -97,6 +100,10 @@ public class LbServicesProducer implements LbServicesConfig.Producer { return usePowerOfTwoChoicesLb.with(FetchVector.Dimension.APPLICATION_ID, app.getApplicationId().serializedForm()).value(); } + private boolean generateNonMtlsEndpoint(ApplicationInfo app) { + return generateNonMtlsEndpoint.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/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java index 42620451728..31746b66806 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java @@ -124,6 +124,18 @@ public class LbServicesProducerTest { assertTrue(conf.tenants("foo").applications("foo:prod:" + regionName.value() + ":default").usePowerOfTwoChoicesLb()); } + @Test + public void generate_non_mtls_endpoints_from_feature_flag() { + RegionName regionName = RegionName.from("us-east-1"); + + LbServicesConfig conf = createModelAndGetLbServicesConfig(regionName); + assertTrue(conf.tenants("foo").applications("foo:prod:" + regionName.value() + ":default").generateNonMtlsEndpoint()); + + flagSource.withBooleanFlag(Flags.GENERATE_NON_MTLS_ENDPOINT.id(), false); + conf = createModelAndGetLbServicesConfig(regionName); + assertFalse(conf.tenants("foo").applications("foo:prod:" + regionName.value() + ":default").generateNonMtlsEndpoint()); + } + private LbServicesConfig createModelAndGetLbServicesConfig(RegionName regionName) { Zone zone = new Zone(Environment.prod, regionName); Map<TenantName, Set<ApplicationInfo>> testModel = createTestModel(new DeployState.Builder().zone(zone)); |