diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2022-11-16 10:51:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-16 10:51:54 +0100 |
commit | bd281f83956c62cc0e42e328c4bac5b338e1f1cf (patch) | |
tree | ab407e6b8009bc4e8d13cd52622a56689afed772 | |
parent | aca412ef32b88f16d4e4b7bc35aedca831b36f93 (diff) | |
parent | 558b3393d72da3e9f1de2b36ebbb06ca210c2154 (diff) |
Merge pull request #24883 from vespa-engine/mpolden/retire-arm
Always retire arm64 hosts on OS upgrade
3 files changed, 7 insertions, 5 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java index 6b61c864a0c..bb9d28d48f9 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java @@ -68,8 +68,10 @@ public class RebuildingOsUpgrader implements OsUpgrader { private List<Node> rebuildableHosts(OsVersionTarget target, NodeList allNodes, Instant now) { NodeList hostsOfTargetType = allNodes.nodeType(target.nodeType()); if (softRebuild) { - // Soft rebuild is enabled so this should only act on hosts with remote storage - hostsOfTargetType = hostsOfTargetType.storageType(NodeResources.StorageType.remote); + // Soft rebuild is enabled so this should only act on hosts with remote storage and on x86-64 + // TODO(mpolden): Rebuild arm64 hosts as well if image permissions can be fixed + hostsOfTargetType = hostsOfTargetType.matching(node -> node.resources().storageType() == NodeResources.StorageType.remote && + node.resources().architecture() == NodeResources.Architecture.x86_64); } int rebuildLimit = rebuildLimit(target.nodeType(), hostsOfTargetType); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java index 72ab26f71a7..acdb689b809 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java @@ -62,8 +62,9 @@ public class RetiringOsUpgrader implements OsUpgrader { private NodeList candidates(Instant instant, OsVersionTarget target, NodeList allNodes) { NodeList activeNodes = allNodes.state(Node.State.active).nodeType(target.nodeType()); if (softRebuild) { - // Soft rebuild is enabled, so this should only act on hosts with local storage - activeNodes = activeNodes.storageType(NodeResources.StorageType.local); + // Soft rebuild is enabled, so this should only act on hosts with local storage, or non-x86-64 + activeNodes = activeNodes.matching(node -> node.resources().storageType() == NodeResources.StorageType.local || + node.resources().architecture() != NodeResources.Architecture.x86_64); } if (activeNodes.isEmpty()) return NodeList.of(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java index 18a756d4411..bf51d80877c 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java @@ -74,7 +74,6 @@ public class HostResumeProvisionerTest { Supplier<NodeList> provisioning = () -> tester.nodeRepository().nodes().list(Node.State.provisioned).nodeType(NodeType.host); assertEquals(1, provisioning.get().size()); - provisioning.get().forEach(h -> System.out.println(h.hostname() + " " + h.ipConfig())); hostResumeProvisioner.maintain(); assertTrue("No IP addresses written as DNS updates are failing", |