diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-08-24 14:26:47 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-08-24 14:26:47 +0200 |
commit | 1108286e394c3bbc5116ecfd78db713fb29d0ae0 (patch) | |
tree | 2243b43f228a1be8122608d15d185235bce7c551 /node-repository | |
parent | 41a101bd2ccfa74e072a2de51101e7881dbe8b50 (diff) |
Lower OS upgrade grace period in CD
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java | 10 | ||||
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java | 4 |
2 files changed, 8 insertions, 6 deletions
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 79b7441cc34..afee9a55870 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 @@ -26,9 +26,6 @@ public class RetiringOsUpgrader implements OsUpgrader { private static final Logger LOG = Logger.getLogger(RetiringOsUpgrader.class.getName()); - /** The duration this leaves new nodes alone before scheduling any upgrade */ - static final Duration GRACE_PERIOD = Duration.ofDays(30); - protected final NodeRepository nodeRepository; public RetiringOsUpgrader(NodeRepository nodeRepository) { @@ -54,7 +51,7 @@ public class RetiringOsUpgrader implements OsUpgrader { @Override public boolean canUpgradeAt(Instant instant, Node node) { - return node.history().age(instant).compareTo(GRACE_PERIOD) > 0; + return node.history().age(instant).compareTo(gracePeriod()) > 0; } /** Returns nodes that are candidates for upgrade */ @@ -79,4 +76,9 @@ public class RetiringOsUpgrader implements OsUpgrader { nodeRepository.osVersions().writeChange((change) -> change.withRetirementAt(now, host.type())); } + /** The duration this leaves new nodes alone before scheduling any upgrade */ + private Duration gracePeriod() { + return nodeRepository.zone().system().isCd() ? Duration.ofDays(1) : Duration.ofDays(30); + } + } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java index af2a215dae0..3d7db9a1f96 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java @@ -172,7 +172,7 @@ public class OsVersionsTest { Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list() .hosts() .not().state(Node.State.deprovisioned); - tester.clock().advance(RetiringOsUpgrader.GRACE_PERIOD.plusDays(1)); + tester.clock().advance(Duration.ofDays(31)); // Let grace period pass // Target is set and upgrade started var version1 = Version.fromString("7.1"); @@ -234,7 +234,7 @@ public class OsVersionsTest { Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list() .nodeType(NodeType.confighost) .not().state(Node.State.deprovisioned); - tester.clock().advance(RetiringOsUpgrader.GRACE_PERIOD.plusDays(1)); + tester.clock().advance(Duration.ofDays(31)); // Let grace period pass // Target is set with zero budget and upgrade started var version1 = Version.fromString("7.1"); |