diff options
author | Håkon Hallingstad <hakon@yahooinc.com> | 2024-05-18 23:38:02 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahooinc.com> | 2024-05-18 23:38:02 +0200 |
commit | dec25d5ab61a9e574a8b41853caa879adfccf894 (patch) | |
tree | 2f030b67856c39dff2a1448beaf5f9ef8040d6a5 /config-model | |
parent | 922b703f5d73244b5be1b4362c0193b76a501409 (diff) |
Remove flags dependency from config-model
Diffstat (limited to 'config-model')
4 files changed, 6 insertions, 33 deletions
diff --git a/config-model/pom.xml b/config-model/pom.xml index 751d3de63ef..a0bda542d5f 100644 --- a/config-model/pom.xml +++ b/config-model/pom.xml @@ -26,12 +26,6 @@ </dependency> <dependency> <groupId>com.yahoo.vespa</groupId> - <artifactId>flags</artifactId> - <version>${project.version}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.yahoo.vespa</groupId> <artifactId>provided-dependencies</artifactId> <version>${project.version}</version> <scope>provided</scope> diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java index 0e4e296f5a1..57a75bd8a38 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java @@ -39,8 +39,6 @@ import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionBuilder; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.documentmodel.DocumentModel; -import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.container.search.QueryProfiles; import com.yahoo.vespa.model.container.search.QueryProfilesBuilder; import com.yahoo.vespa.model.container.search.SemanticRules; @@ -81,7 +79,6 @@ public class DeployState implements ConfigDefinitionStore { private final Version vespaVersion; private final Set<ContainerEndpoint> endpoints; private final Zone zone; // TODO: Zone is set separately both here and in properties - private final FlagSource flagSource; private final QueryProfiles queryProfiles; private final SemanticRules semanticRules; private final ImportedMlModels importedModels; @@ -121,7 +118,6 @@ public class DeployState implements ConfigDefinitionStore { Set<ContainerEndpoint> endpoints, Collection<MlModelImporter> modelImporters, Zone zone, - FlagSource flagSource, QueryProfiles queryProfiles, SemanticRules semanticRules, Instant now, @@ -147,7 +143,6 @@ public class DeployState implements ConfigDefinitionStore { this.configDefinitionRepo = configDefinitionRepo; this.endpoints = Set.copyOf(endpoints); this.zone = zone; - this.flagSource = flagSource; this.queryProfiles = queryProfiles; // TODO: Remove this by seeing how pagetemplates are propagated this.semanticRules = semanticRules; // TODO: Remove this by seeing how pagetemplates are propagated this.importedModels = importMlModels(applicationPackage, modelImporters, executor); @@ -278,8 +273,6 @@ public class DeployState implements ConfigDefinitionStore { /** Returns the zone in which this is currently running */ public Zone zone() { return zone; } - public FlagSource flagSource() { return flagSource; } - public QueryProfiles getQueryProfiles() { return queryProfiles; } public SemanticRules getSemanticRules() { return semanticRules; } @@ -337,7 +330,6 @@ public class DeployState implements ConfigDefinitionStore { private Set<ContainerEndpoint> endpoints = Set.of(); private Collection<MlModelImporter> modelImporters = List.of(); private Zone zone = Zone.defaultZone(); - private FlagSource flagSource = new InMemoryFlagSource(); private Instant now = Instant.now(); private Version wantedNodeVespaVersion = Vtag.currentVersion; private boolean accessLoggingEnabledByDefault = true; @@ -415,11 +407,6 @@ public class DeployState implements ConfigDefinitionStore { return this; } - public Builder flagSource(FlagSource flagSource) { - this.flagSource = flagSource; - return this; - } - public Builder now(Instant now) { this.now = now; return this; @@ -496,7 +483,6 @@ public class DeployState implements ConfigDefinitionStore { endpoints, modelImporters, zone, - flagSource, queryProfiles, semanticRules, now, diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java index efe83fb4e91..c876976917b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java @@ -28,8 +28,6 @@ import com.yahoo.config.provision.QuotaExceededException; import com.yahoo.config.provision.TransientException; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.VespaVersion; -import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.application.validation.Validation; import com.yahoo.vespa.model.application.validation.Validator; import org.xml.sax.SAXException; @@ -54,7 +52,6 @@ public class VespaModelFactory implements ModelFactory { private final ConfigModelRegistry configModelRegistry; private final Collection<MlModelImporter> modelImporters; private final Zone zone; - private final FlagSource flagSource; private final Clock clock; private final Version version; private final List<Validator> additionalValidators; @@ -63,7 +60,7 @@ public class VespaModelFactory implements ModelFactory { @Inject public VespaModelFactory(ComponentRegistry<ConfigModelPlugin> pluginRegistry, ComponentRegistry<Validator> additionalValidators, - Zone zone, FlagSource flagSource) { + Zone zone) { this.version = new Version(VespaVersion.major, VespaVersion.minor, VespaVersion.micro); List<ConfigModelBuilder<?>> modelBuilders = new ArrayList<>(); for (ConfigModelPlugin plugin : pluginRegistry.allComponents()) { @@ -79,7 +76,6 @@ public class VespaModelFactory implements ModelFactory { new XGBoostImporter(), new LightGBMImporter()); this.zone = zone; - this.flagSource = flagSource; this.additionalValidators = List.copyOf(additionalValidators.allComponents()); this.clock = Clock.systemUTC(); @@ -88,7 +84,7 @@ public class VespaModelFactory implements ModelFactory { // For testing only protected VespaModelFactory(ConfigModelRegistry configModelRegistry) { this(new Version(VespaVersion.major, VespaVersion.minor, VespaVersion.micro), configModelRegistry, - Clock.systemUTC(), Zone.defaultZone()); + Clock.systemUTC(), Zone.defaultZone()); } private VespaModelFactory(Version version, ConfigModelRegistry configModelRegistry, Clock clock, Zone zone) { @@ -102,7 +98,6 @@ public class VespaModelFactory implements ModelFactory { this.modelImporters = List.of(); this.additionalValidators = List.of(); this.zone = zone; - this.flagSource = new InMemoryFlagSource(); this.clock = clock; } @@ -197,7 +192,6 @@ public class VespaModelFactory implements ModelFactory { .endpoints(modelContext.properties().endpoints()) .modelImporters(modelImporters) .zone(zone) - .flagSource(flagSource) .now(clock.instant()) .wantedNodeVespaVersion(modelContext.wantedNodeVespaVersion()) .wantedDockerImageRepo(modelContext.wantedDockerImageRepo()) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java index 0984770ef49..ea579aaf5d1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java @@ -1,7 +1,6 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.application.validation; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.CapacityPolicies; import com.yahoo.config.provision.ClusterResources; @@ -10,7 +9,6 @@ import com.yahoo.config.provision.Exclusivity; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.QuotaExceededException; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.Validation.Context; @@ -35,8 +33,9 @@ public class QuotaValidator implements Validator { @Override public void validate(Context context) { var zone = context.deployState().zone(); - var flagSource = context.deployState().flagSource(); - var capacityPolicies = new CapacityPolicies(zone, new Exclusivity(zone, flagSource), flagSource); + var exclusivity = new Exclusivity(zone, context.deployState().featureFlags().sharedHosts()); + var capacityPolicies = new CapacityPolicies(zone, exclusivity, context.model().applicationPackage().getApplicationId(), + context.deployState().featureFlags().adminClusterArchitecture()); var quota = context.deployState().getProperties().quota(); quota.maxClusterSize().ifPresent(maxClusterSize -> validateMaxClusterSize(maxClusterSize, context.model())); quota.budgetAsDecimal().ifPresent(budget -> validateBudget(budget, context, capacityPolicies)); @@ -52,7 +51,7 @@ public class QuotaValidator implements Validator { if (adminClusterIds(context.model()).contains(id)) continue; var cluster = context.model().provisioned().clusters().get(id); var capacity = context.model().provisioned().capacities().getOrDefault(id, zeroCapacity); - maxSpend += capacityPolicies.applyOn(capacity, application, cluster.isExclusive()).maxResources().cost(); + maxSpend += capacityPolicies.applyOn(capacity, cluster.isExclusive()).maxResources().cost(); } var actualSpend = context.model().allocatedHosts().getHosts().stream() |