diff options
author | jonmv <venstad@gmail.com> | 2023-01-10 21:24:14 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-01-10 21:24:14 +0100 |
commit | ca786efb5558b5ced4c36faf83a746a547ae9fe6 (patch) | |
tree | 89e27fdbbd09d12da4a6f54ed28092ddea91d1cb /configserver | |
parent | 3ac94c7f1970e080955644694fc77dfc79cbef7e (diff) |
Read tags from deployment spec in package
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java | 24 |
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); |