summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-01-17 12:43:36 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2019-01-17 12:43:36 +0100
commitb3caf09ca61e347e166bfddb68ec15c0a4d0038d (patch)
treee93d010b73ea0dfc0ae5bf21d807a8318705fc92 /config-model/src
parent0c55782dcd8acd3116b9f1e5673d4ded132416c4 (diff)
Add control of extra environment variables.
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java1
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java4
-rw-r--r--config-model/src/main/resources/schema/containercluster.rnc1
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java16
5 files changed, 29 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
index 7e98804370f..e03cf4317d4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
@@ -56,6 +56,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
private static final String CPU_SOCKET_ATTRIB_NAME = "cpu-socket";
public static final String CPU_SOCKET_AFFINITY_ATTRIB_NAME = "cpu-socket-affinity";
public static final String Allocated_MEMORY_ATTRIB_NAME = "allocated-memory";
+ public static final String ENVIRONMENT_VARS_ATTRIB_NAME = "environment-vars";
public static final Logger log = Logger.getLogger(VespaDomBuilder.class.getPackage().toString());
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index 8d46eb3718f..2a13822e459 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -185,6 +185,7 @@ public final class ContainerCluster
private String hostClusterId = null;
private String jvmGCOptions = null;
+ private String environmentVars = null;
private Integer memoryPercentage = null;
private static class AcceptAllVerifier implements ContainerClusterVerifier {
@@ -639,6 +640,11 @@ public final class ContainerCluster
} else {
jvmBuilder.gcopts(G1GC);
}
+ if (environmentVars != null) {
+ QrStartConfig.Qrs.Builder qrsBuilder = new QrStartConfig.Qrs.Builder();
+ qrsBuilder.env(environmentVars);
+ builder.qrs(qrsBuilder);
+ }
builder.jvm(jvmBuilder);
}
@@ -797,6 +803,7 @@ public final class ContainerCluster
public void setMemoryPercentage(Integer memoryPercentage) { this.memoryPercentage = memoryPercentage; }
public void setJvmGCOptions(String opts) { this.jvmGCOptions = opts; }
+ public void setEnvironmentVars(String environmentVars) { this.environmentVars = environmentVars; }
public Optional<String> getJvmGCOptions() { return Optional.ofNullable(jvmGCOptions); }
/**
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index b5c1b1e1496..74a878e3102 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -506,6 +506,10 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
applyRoutingAliasProperties(nodes, cluster);
applyDefaultPreload(nodes, nodesElement);
+ String environmentVars = nodesElement.getAttribute(VespaDomBuilder.ENVIRONMENT_VARS_ATTRIB_NAME);
+ if (environmentVars != null) {
+ cluster.setEnvironmentVars(environmentVars);
+ }
applyMemoryPercentage(cluster, nodesElement.getAttribute(VespaDomBuilder.Allocated_MEMORY_ATTRIB_NAME));
if (useCpuSocketAffinity(nodesElement))
AbstractService.distributeCpuSocketAffinity(nodes);
diff --git a/config-model/src/main/resources/schema/containercluster.rnc b/config-model/src/main/resources/schema/containercluster.rnc
index 5dbcffce736..34bfba6faaf 100644
--- a/config-model/src/main/resources/schema/containercluster.rnc
+++ b/config-model/src/main/resources/schema/containercluster.rnc
@@ -214,6 +214,7 @@ NodesOfContainerCluster = element nodes {
attribute jvm-options { text }? &
attribute jvm-gc-options { text }? &
attribute preload { text }? &
+ attribute environment-vars { text }? &
attribute allocated-memory { text }? &
attribute cpu-socket-affinity { xsd:boolean }? &
(
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
index 0030392f318..1598342e67b 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
@@ -717,6 +717,22 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertEquals("env1", secretStore.getGroups().get(0).environment);
}
+ @Test
+ public void honours_environment_vars() {
+ Element clusterElem = DomBuilderTest.parse(
+ "<jdisc version='1.0'>",
+ " <search/>",
+ " <nodes environment-vars=\"KMP_SETTING=1 KMP_AFFINITY=granularity=fine,verbose,compact,1,0\">",
+ " <node hostalias='mockhost'/>",
+ " </nodes>",
+ "</jdisc>" );
+ createModel(root, clusterElem);
+ QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
+ root.getConfig(qrStartBuilder, "jdisc/container.0");
+ QrStartConfig qrStartConfig = new QrStartConfig(qrStartBuilder);
+ assertEquals("KMP_SETTING=1 KMP_AFFINITY=granularity=fine,verbose,compact,1,0", qrStartConfig.qrs().env());
+ }
+
private Element generateContainerElementWithRenderer(String rendererId) {
return DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",