aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2024-05-18 23:38:02 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2024-05-18 23:38:02 +0200
commitdec25d5ab61a9e574a8b41853caa879adfccf894 (patch)
tree2f030b67856c39dff2a1448beaf5f9ef8040d6a5 /config-model
parent922b703f5d73244b5be1b4362c0193b76a501409 (diff)
Remove flags dependency from config-model
Diffstat (limited to 'config-model')
-rw-r--r--config-model/pom.xml6
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java9
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()