diff options
author | Morten Tokle <mortent@yahooinc.com> | 2022-09-09 16:04:40 +0200 |
---|---|---|
committer | Morten Tokle <mortent@yahooinc.com> | 2022-09-09 16:04:40 +0200 |
commit | aa436622a3e954d9da14847339a8ca1055f1a5d1 (patch) | |
tree | 63b9ec39d538a24cbdc0e0806e4f0ff7b53c77f1 | |
parent | cbba6fbd513bdbc9d1696f3b3c17f28abd2b4367 (diff) |
Add feature flag to restrict data plane bindings
4 files changed, 18 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 268ca07cdb5..3c4eb1046bc 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -132,6 +132,7 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"arnej"}) default String logFileCompressionAlgorithm(String defVal) { return defVal; } @ModelFeatureFlag(owners = {"vekterli"}) default boolean useTwoPhaseDocumentGc() { return false; } @ModelFeatureFlag(owners = {"hmusum"}) default int clusterControllerStateGatherCount() { return 2; } + @ModelFeatureFlag(owners = {"tokle"}) default boolean useRestrictedDataPlaneBindings() { return false; } } /** Warning: As elsewhere in this package, do not make backwards incompatible changes that will break old config models! */ diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java index ad816b4b109..033fc4cd8de 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java @@ -89,6 +89,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private int rpc_events_before_wakeup = 1; private int mbus_network_threads = 1; private Architecture adminClusterNodeResourcesArchitecture = Architecture.getDefault(); + private boolean useRestrictedDataPlaneBindings = false; @Override public ModelContext.FeatureFlags featureFlags() { return this; } @Override public boolean multitenant() { return multitenant; } @@ -153,6 +154,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public String queryDispatchPolicy() { return queryDispatchPolicy; } @Override public boolean useTwoPhaseDocumentGc() { return useTwoPhaseDocumentGc; } @Override public String phraseOptimization() { return phraseOptimization; } + @Override public boolean useRestrictedDataPlaneBindings() { return useRestrictedDataPlaneBindings; } public TestProperties sharedStringRepoNoReclaim(boolean sharedStringRepoNoReclaim) { this.sharedStringRepoNoReclaim = sharedStringRepoNoReclaim; @@ -425,6 +427,11 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } + public TestProperties setUseRestrictedDataPlaneBindings(boolean useRestrictedDataPlaneBindings) { + this.useRestrictedDataPlaneBindings = useRestrictedDataPlaneBindings; + return this; + } + public static class Spec implements ConfigServerSpec { private final String hostName; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index 683244e5e2f..cdbf66f1734 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -224,6 +224,7 @@ public class ModelContextImpl implements ModelContext { private final int rpc_num_targets; private final int rpc_events_before_wakeup; private final int clusterControllerStateGatherCount; + private final boolean useRestrictedDataPlaneBindings; public FeatureFlags(FlagSource source, ApplicationId appId, Version version) { this.defaultTermwiseLimit = flagValue(source, appId, version, Flags.DEFAULT_TERM_WISE_LIMIT); @@ -284,6 +285,7 @@ public class ModelContextImpl implements ModelContext { this.queryDispatchPolicy = flagValue(source, appId, version, Flags.QUERY_DISPATCH_POLICY); this.phraseOptimization = flagValue(source, appId, version, Flags.PHRASE_OPTIMIZATION); this.clusterControllerStateGatherCount = flagValue(source, appId, version, Flags.CLUSTER_CONTROLLER_STATE_GATHER_COUNT); + this.useRestrictedDataPlaneBindings = flagValue(source, appId, version, Flags.RESTRICT_DATA_PLANE_BINDINGS); } @Override public String queryDispatchPolicy() { return queryDispatchPolicy; } @@ -352,6 +354,7 @@ public class ModelContextImpl implements ModelContext { } @Override public boolean useTwoPhaseDocumentGc() { return useTwoPhaseDocumentGc; } @Override public int clusterControllerStateGatherCount() { return clusterControllerStateGatherCount; } + @Override public boolean useRestrictedDataPlaneBindings() { return useRestrictedDataPlaneBindings; } private static <V> V flagValue(FlagSource source, ApplicationId appId, Version vespaVersion, UnboundFlag<? extends V, ?, ?> flag) { return flag.bindTo(source) diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index eef051c64b8..afaeae08f16 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -502,6 +502,13 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); + public static final UnboundBooleanFlag RESTRICT_DATA_PLANE_BINDINGS = defineFeatureFlag( + "restrict-data-plane-bindings", false, + List.of("mortent"), "2022-09-08", "2022-11-01", + "Use restricted data plane bindings", + "Takes effect at redeployment", + APPLICATION_ID); + /** WARNING: public for testing: All flags should be defined in {@link Flags}. */ public static UnboundBooleanFlag defineFeatureFlag(String flagId, boolean defaultValue, List<String> owners, String createdAt, String expiresAt, String description, |