summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-01-08 10:40:05 +0100
committerMartin Polden <mpolden@mpolden.no>2019-01-08 10:40:05 +0100
commit5ba8358701cf9e9ab8234d462f4e52da6cc6588e (patch)
treee37528c12f6dd81670e8f231dfa2879f18abfc08
parent505753a6fd032c025197dcedb229721960a89eeb (diff)
Allow preprocessing based on deployment context in config server
-rw-r--r--configserver/src/main/resources/configserver-app/services.xml2
-rw-r--r--standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java22
2 files changed, 19 insertions, 5 deletions
diff --git a/configserver/src/main/resources/configserver-app/services.xml b/configserver/src/main/resources/configserver-app/services.xml
index 8c64bb2cdfb..cacbd45ed8e 100644
--- a/configserver/src/main/resources/configserver-app/services.xml
+++ b/configserver/src/main/resources/configserver-app/services.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
-<services version="1.0" xmlns:preprocess="properties">
+<services version="1.0" xmlns:preprocess="properties" xmlns:deploy="vespa">
<jdisc id="configserver" jetty="true" version="1.0">
<config name="container.handler.threadpool">
<maxthreads>100</maxthreads> <!-- Reduced thread count to minimize memory consumption -->
diff --git a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
index a61e9fc56b8..f9fe4a02aab 100644
--- a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
+++ b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
@@ -9,7 +9,6 @@ import com.google.inject.Key;
import com.google.inject.ProvisionException;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
-import com.yahoo.cloud.config.SlobroksConfig;
import com.yahoo.collections.Pair;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
@@ -21,10 +20,11 @@ import com.yahoo.config.model.application.provider.FilesApplicationPackage;
import com.yahoo.config.model.application.provider.StaticConfigDefinitionRepo;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.builder.xml.XmlHelper;
-import com.yahoo.config.model.deploy.DeployProperties;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.provision.Environment;
+import com.yahoo.config.provision.RegionName;
+import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
-import com.yahoo.container.QrConfig;
import com.yahoo.container.di.config.SubscriberFactory;
import com.yahoo.container.jdisc.ConfiguredApplication;
import com.yahoo.io.IOUtils;
@@ -236,7 +236,7 @@ public class StandaloneContainerApplication implements Application {
DeployLogger logger = new BaseDeployLogger();
FilesApplicationPackage rawApplicationPackage = new FilesApplicationPackage.Builder(applicationPath.toFile())
.includeSourceFiles(true).preprocessedDir(preprocessedApplicationDir).build();
- ApplicationPackage applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone(), logger);
+ ApplicationPackage applicationPackage = rawApplicationPackage.preprocess(getZone(), logger);
validateApplication(applicationPackage);
DeployState deployState = createDeployState(applicationPackage, fileRegistry, logger);
@@ -260,6 +260,20 @@ public class StandaloneContainerApplication implements Application {
return new Pair<>(root, container);
}
+ private static Zone getZone() {
+ if (!isConfigServer()) {
+ return Zone.defaultZone();
+ }
+ CloudConfigInstallVariables cloudConfigVariables = new CloudConfigInstallVariables();
+ if (!cloudConfigVariables.hostedVespa().orElse(false)) {
+ return Zone.defaultZone();
+ }
+ RegionName region = cloudConfigVariables.region().map(RegionName::from).orElseGet(RegionName::defaultName);
+ Environment environment = cloudConfigVariables.environment().map(Environment::from).orElseGet(Environment::defaultEnvironment);
+ SystemName system = cloudConfigVariables.system().map(SystemName::from).orElseGet(SystemName::defaultSystem);
+ return new Zone(system, environment, region);
+ }
+
private static DeployState createDeployState(ApplicationPackage applicationPackage, FileRegistry fileRegistry, DeployLogger logger) {
DeployState.Builder builder = new DeployState.Builder()
.applicationPackage(applicationPackage)