summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2022-12-16 14:37:47 +0100
committerGitHub <noreply@github.com>2022-12-16 14:37:47 +0100
commite4302310d2c61aaff8ed7b29246d232d985e70a2 (patch)
tree26947e5f49edcf4b553a6ca37a12ca0ff9da0c29
parentc9bf46e92e07ae4c42bb527855f46759a832800e (diff)
parent9b1fcd49bb23247eca0dca433065d167c1777b92 (diff)
Merge pull request #25278 from vespa-engine/mpolden/fix-image-selection
GPU image takes precedence over tenant image
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java6
2 files changed, 5 insertions, 7 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 8553172cef3..59dbb0b3241 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
@@ -41,12 +41,10 @@ public class ContainerImages {
if (requestedImage.isPresent()) {
image = requestedImage.get();
} else if (nodeType == NodeType.tenant) {
- if (tenantImage.isPresent()) {
- image = tenantImage.get();
- } else if (!node.resources().gpuResources().isZero()) {
+ if (!node.resources().gpuResources().isZero()) {
image = tenantGpuImage.orElseThrow(() -> new IllegalArgumentException(node + " has GPU resources, but there is no GPU container image available"));
} else {
- image = defaultImage;
+ image = tenantImage.orElse(defaultImage);
}
} else {
image = defaultImage;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
index 20b299c85bc..bb7ea52ca0e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
@@ -38,6 +38,9 @@ public class ContainerImagesTest {
assertEquals(defaultImage, images.get(node(NodeType.proxyhost))); // For preload purposes
assertEquals(defaultImage, images.get(node(NodeType.proxy)));
+ // Choose GPU when node has GPU resources
+ assertEquals(gpuImage, images.get(node(NodeType.tenant, null, true)));
+
// Tenant node requesting a special image
DockerImage requested = DockerImage.fromString("registry.example.com/vespa/special");
assertEquals(requested, images.get(node(NodeType.tenant, requested)));
@@ -46,9 +49,6 @@ public class ContainerImagesTest {
images = new ContainerImages(defaultImage, Optional.empty(), Optional.of(gpuImage));
assertEquals(defaultImage, images.get(node(NodeType.host)));
assertEquals(defaultImage, images.get(node(NodeType.tenant)));
-
- // Choose GPU when node has GPU resources
- assertEquals(gpuImage, images.get(node(NodeType.tenant, null, true)));
}
private static Node node(NodeType type) {