diff options
author | HÃ¥kon Hallingstad <hakon.hallingstad@gmail.com> | 2022-12-16 14:37:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-16 14:37:47 +0100 |
commit | e4302310d2c61aaff8ed7b29246d232d985e70a2 (patch) | |
tree | 26947e5f49edcf4b553a6ca37a12ca0ff9da0c29 | |
parent | c9bf46e92e07ae4c42bb527855f46759a832800e (diff) | |
parent | 9b1fcd49bb23247eca0dca433065d167c1777b92 (diff) |
Merge pull request #25278 from vespa-engine/mpolden/fix-image-selection
GPU image takes precedence over tenant image
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) { |