diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-11-16 10:35:55 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-11-16 10:39:11 +0100 |
commit | 558b3393d72da3e9f1de2b36ebbb06ca210c2154 (patch) | |
tree | ab407e6b8009bc4e8d13cd52622a56689afed772 | |
parent | be142ce496da00f9e9977d18823ba592a86e5f79 (diff) |
Always retire arm64 hosts on OS upgrade
2 files changed, 7 insertions, 4 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(); |