summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2023-08-23 11:39:58 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2023-08-23 11:39:58 +0200
commitd3f8889068addfbafac8b81826d9987aefb6b335 (patch)
tree776c36f5c143511bc2461d35f6f39e791f31b57e /node-repository/src/main/java
parentaa8ef9f8c2cefad16726a55384ee095ef3b46c2d (diff)
Only rewrite container image registry for requested images
Diffstat (limited to 'node-repository/src/main/java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java29
1 files changed, 11 insertions, 18 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java
index 59dbb0b3241..583045083a9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java
@@ -37,24 +37,17 @@ public class ContainerImages {
Optional<DockerImage> requestedImage = node.allocation()
.flatMap(allocation -> allocation.membership().cluster().dockerImageRepo());
NodeType nodeType = node.type().isHost() ? node.type().childNodeType() : node.type();
- final DockerImage image;
- if (requestedImage.isPresent()) {
- image = requestedImage.get();
- } else if (nodeType == NodeType.tenant) {
- if (!node.resources().gpuResources().isZero()) {
- image = tenantGpuImage.orElseThrow(() -> new IllegalArgumentException(node + " has GPU resources, but there is no GPU container image available"));
- } else {
- image = tenantImage.orElse(defaultImage);
- }
- } else {
- image = defaultImage;
- }
- return rewriteRegistry(image);
- }
-
- /** Rewrite the registry part of given image, using this zone's default image */
- private DockerImage rewriteRegistry(DockerImage image) {
- return image.withRegistry(defaultImage.registry());
+ DockerImage wantedImage =
+ nodeType != NodeType.tenant ?
+ defaultImage :
+ node.resources().gpuResources().isZero() ?
+ tenantImage.orElse(defaultImage) :
+ tenantGpuImage.orElseThrow(() -> new IllegalArgumentException(node + " has GPU resources, but there is no GPU container image available"));
+
+ return requestedImage
+ // Rewrite requested images to make sure they come from a trusted registry
+ .map(image -> image.withRegistry(wantedImage.registry()))
+ .orElse(wantedImage);
}
}