diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2020-03-13 15:24:14 +0100 |
---|---|---|
committer | Morten Tokle <mortent@verizonmedia.com> | 2020-03-17 10:32:05 +0100 |
commit | 4d04f93d09d262040c72cb1e92bf39455654435a (patch) | |
tree | 336342e0723171ad019f08f6b3e74939bd169945 | |
parent | 577b7595b425d24de0e1c9853741c1ca46772f63 (diff) |
Include Athenz domain in deploy
2 files changed, 15 insertions, 2 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java index ee2e292ade9..0afe9347341 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java @@ -4,6 +4,7 @@ import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.zone.ZoneId; +import com.yahoo.vespa.athenz.api.AthenzDomain; import com.yahoo.vespa.hosted.controller.api.integration.certificates.EndpointCertificateMetadata; import com.yahoo.vespa.hosted.controller.api.integration.configserver.ContainerEndpoint; @@ -26,11 +27,13 @@ public class DeploymentData { private final Set<ContainerEndpoint> containerEndpoints; private final Optional<EndpointCertificateMetadata> endpointCertificateMetadata; private final Optional<DockerImage> dockerImageRepo; + private final Optional<AthenzDomain> athenzDomain; public DeploymentData(ApplicationId instance, ZoneId zone, byte[] applicationPackage, Version platform, Set<ContainerEndpoint> containerEndpoints, Optional<EndpointCertificateMetadata> endpointCertificateMetadata, - Optional<DockerImage> dockerImageRepo) { + Optional<DockerImage> dockerImageRepo, + Optional<AthenzDomain> athenzDomain) { this.instance = requireNonNull(instance); this.zone = requireNonNull(zone); this.applicationPackage = requireNonNull(applicationPackage); @@ -38,6 +41,7 @@ public class DeploymentData { this.containerEndpoints = requireNonNull(containerEndpoints); this.endpointCertificateMetadata = requireNonNull(endpointCertificateMetadata); this.dockerImageRepo = requireNonNull(dockerImageRepo); + this.athenzDomain = athenzDomain; } public ApplicationId instance() { @@ -67,4 +71,8 @@ public class DeploymentData { public Optional<DockerImage> dockerImageRepo() { return dockerImageRepo; } + + public Optional<AthenzDomain> athenzDomain() { + return athenzDomain; + } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java index cb6d02b4b77..e5e92117849 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java @@ -498,9 +498,14 @@ public class ApplicationController { .value()) .filter(s -> !s.isBlank()) .map(DockerImage::fromString); + + Optional<AthenzDomain> domain = controller.tenants().get(application.tenant()) + .filter(tenant-> tenant instanceof AthenzTenant) + .map(tenant -> ((AthenzTenant)tenant).domain()); + ConfigServer.PreparedApplication preparedApplication = configServer.deploy(new DeploymentData(application, zone, applicationPackage.zippedContent(), platform, - endpoints, endpointCertificateMetadata, dockerImageRepo)); + endpoints, endpointCertificateMetadata, dockerImageRepo, domain)); return new ActivateResult(new RevisionId(applicationPackage.hash()), preparedApplication.prepareResponse(), applicationPackage.zippedContent().length); } finally { |