summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-11-16 10:35:55 +0100
committerMartin Polden <mpolden@mpolden.no>2022-11-16 10:39:11 +0100
commit558b3393d72da3e9f1de2b36ebbb06ca210c2154 (patch)
treeab407e6b8009bc4e8d13cd52622a56689afed772
parentbe142ce496da00f9e9977d18823ba592a86e5f79 (diff)
Always retire arm64 hosts on OS upgrade
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java5
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();