summaryrefslogtreecommitdiffstats
path: root/configserver/src
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-01-10 21:24:14 +0100
committerjonmv <venstad@gmail.com>2023-01-10 21:24:14 +0100
commitca786efb5558b5ced4c36faf83a746a547ae9fe6 (patch)
tree89e27fdbbd09d12da4a6f54ed28092ddea91d1cb /configserver/src
parent3ac94c7f1970e080955644694fc77dfc79cbef7e (diff)
Read tags from deployment spec in package
Diffstat (limited to 'configserver/src')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java24
1 files changed, 17 insertions, 7 deletions
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 6589d9d721a..7629fdd8bfd 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
@@ -11,7 +11,9 @@ import com.yahoo.config.application.XmlPreProcessor;
import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.config.application.api.DeploymentInstanceSpec;
import com.yahoo.config.application.api.FileRegistry;
+import com.yahoo.config.application.api.xml.DeploymentSpecXmlReader;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.config.model.api.ContainerEndpoint;
import com.yahoo.config.model.api.EndpointCertificateMetadata;
@@ -24,6 +26,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.CloudAccount;
import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.Tags;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.secretstore.SecretStore;
@@ -267,11 +270,17 @@ public class SessionPreparer {
File hostsXml = applicationPackage.getFileReference(Path.fromString("hosts.xml"));
// Validate after doing our own preprocessing on these two files
- if(servicesXml.exists()) {
- vespaPreprocess(applicationPackageDir.getAbsoluteFile(), servicesXml, applicationPackage.getMetaData());
+ ApplicationMetaData meta = applicationPackage.getMetaData();
+ InstanceName instance = meta.getApplicationId().instance();
+ Tags tags = applicationPackage.getDeployment().map(new DeploymentSpecXmlReader(false)::read)
+ .flatMap(spec -> spec.instance(instance))
+ .map(DeploymentInstanceSpec::tags)
+ .orElse(Tags.empty());
+ if (servicesXml.exists()) {
+ vespaPreprocess(applicationPackageDir.getAbsoluteFile(), servicesXml, meta, tags);
}
- if(hostsXml.exists()) {
- vespaPreprocess(applicationPackageDir.getAbsoluteFile(), hostsXml, applicationPackage.getMetaData());
+ if (hostsXml.exists()) {
+ vespaPreprocess(applicationPackageDir.getAbsoluteFile(), hostsXml, meta, tags);
}
if (zone.system().isPublic()) {
@@ -315,14 +324,15 @@ public class SessionPreparer {
}
}
- void vespaPreprocess(File appDir, File inputXml, ApplicationMetaData metaData) {
+ void vespaPreprocess(File appDir, File inputXml, ApplicationMetaData metaData, Tags tags) {
try {
+ InstanceName instance = metaData.getApplicationId().instance();
new XmlPreProcessor(appDir,
inputXml,
- metaData.getApplicationId().instance(),
+ instance,
zone.environment(),
zone.region(),
- metaData.getTags())
+ tags)
.run();
} catch (ParserConfigurationException | IOException | SAXException | TransformerException e) {
throw new RuntimeException(e);