summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configdefinitions/src/vespa/configserver.def1
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java3
5 files changed, 19 insertions, 11 deletions
diff --git a/configdefinitions/src/vespa/configserver.def b/configdefinitions/src/vespa/configserver.def
index 6833c00da8e..daaf8906d24 100644
--- a/configdefinitions/src/vespa/configserver.def
+++ b/configdefinitions/src/vespa/configserver.def
@@ -67,3 +67,4 @@ sleepTimeWhenRedeployingFails long default=30
# Feature Flags (poor man's feature flags, to be overridden in configserver-config.xml if needed)
deleteApplicationLegacy bool default=false
+buildMinimalSetOfConfigModels bool default=true
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
index 2955d948d69..c18d3c7fe48 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
@@ -46,21 +46,19 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> {
private final long appGeneration;
private final SessionZooKeeperClient zkClient;
private final PermanentApplicationPackage permanentApplicationPackage;
- private final ConfigserverConfig configserverConfig;
private final ConfigDefinitionRepo configDefinitionRepo;
private final Metrics metrics;
private final Curator curator;
private final DeployLogger logger;
public ActivatedModelsBuilder(TenantName tenant, long appGeneration, SessionZooKeeperClient zkClient, GlobalComponentRegistry globalComponentRegistry) {
- super(globalComponentRegistry.getModelFactoryRegistry(),
- globalComponentRegistry.getHostProvisioner().isPresent(),
+ super(globalComponentRegistry.getModelFactoryRegistry(),
+ globalComponentRegistry.getConfigserverConfig(),
globalComponentRegistry.getZone());
this.tenant = tenant;
this.appGeneration = appGeneration;
this.zkClient = zkClient;
this.permanentApplicationPackage = globalComponentRegistry.getPermanentApplicationPackage();
- this.configserverConfig = globalComponentRegistry.getConfigserverConfig();
this.configDefinitionRepo = globalComponentRegistry.getConfigDefinitionRepo();
this.metrics = globalComponentRegistry.getMetrics();
this.curator = globalComponentRegistry.getCurator();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
index 1b77d5321e7..7bb77fdcbff 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.config.server.modelfactory;
import com.google.common.util.concurrent.UncheckedTimeoutException;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.api.HostProvisioner;
import com.yahoo.config.model.api.ModelFactory;
@@ -10,6 +11,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationLockException;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.OutOfCapacityException;
+import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Version;
import com.yahoo.config.provision.Zone;
import com.yahoo.lang.SettableOptional;
@@ -42,15 +44,17 @@ public abstract class ModelsBuilder<MODELRESULT extends ModelResult> {
private static final Logger log = Logger.getLogger(ModelsBuilder.class.getName());
private final ModelFactoryRegistry modelFactoryRegistry;
+ protected final ConfigserverConfig configserverConfig;
/** True if we are running in hosted mode */
private final boolean hosted;
private final Zone zone;
- protected ModelsBuilder(ModelFactoryRegistry modelFactoryRegistry, boolean hosted, Zone zone) {
+ protected ModelsBuilder(ModelFactoryRegistry modelFactoryRegistry, ConfigserverConfig configserverConfig, Zone zone) {
this.modelFactoryRegistry = modelFactoryRegistry;
- this.hosted = hosted;
+ this.configserverConfig = configserverConfig;
+ this.hosted = configserverConfig.hostedVespa();
this.zone = zone;
}
@@ -143,8 +147,10 @@ public abstract class ModelsBuilder<MODELRESULT extends ModelResult> {
allApplicationVersions.add(latestModelVersion);
// TODO: Enable for all zones
- // Note: Cannot be enabled for prod zones yet, due to an issue with how AccessControlValidator works
- if (Arrays.asList(Environment.dev, Environment.test, Environment.staging).contains(zone().environment()))
+ if (configserverConfig.buildMinimalSetOfConfigModels() &&
+ (SystemName.from(configserverConfig.system()) == SystemName.cd ||
+ Arrays.asList(Environment.dev, Environment.test, Environment.staging).contains(zone().environment()) ||
+ Arrays.asList("corp-us-east-1", "ap-southeast-1").contains(zone().region().value())))
versions = keepThoseUsedOn(allocatedHosts.get(), versions);
// Make sure we build wanted version if we are building models for this major version and we are on hosted vespa
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
index ba093ca9db1..56bdd432d90 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.modelfactory;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.api.ConfigChangeAction;
@@ -64,8 +65,9 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P
DeployLogger logger,
PrepareParams params,
Optional<ApplicationSet> currentActiveApplicationSet,
- ModelContext.Properties properties) {
- super(modelFactoryRegistry, properties.hostedVespa(), properties.zone());
+ ModelContext.Properties properties,
+ ConfigserverConfig configserverConfig) {
+ super(modelFactoryRegistry, configserverConfig, properties.zone());
this.permanentApplicationPackage = permanentApplicationPackage;
this.configDefinitionRepo = configDefinitionRepo;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index 6a240806004..49287669a06 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -169,7 +169,8 @@ public class SessionPreparer {
logger,
params,
currentActiveApplicationSet,
- properties);
+ properties,
+ configserverConfig);
}
void checkTimeout(String step) {