diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-03-04 14:02:07 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-03-16 20:36:56 +0100 |
commit | 47f3f21ab7b36f450e832f60d21e13d5cb37f090 (patch) | |
tree | 5a5239a4b3ea648bb0dffbeb465cb5f471e8966e /controller-server | |
parent | 1a775b4672953ac85bc390749ca827162c1bf993 (diff) |
Trigger OS upgrade for all hosts
Diffstat (limited to 'controller-server')
4 files changed, 10 insertions, 11 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java index 91be3a4df21..c994f0ae4fd 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java @@ -66,10 +66,7 @@ public enum SystemApplication { } /** Returns whether this should receive OS upgrades in given zone */ - public boolean shouldUpgradeOsIn(ZoneId zone, Controller controller) { - if (controller.zoneRegistry().zones().reprovisionToUpgradeOs().ids().contains(zone)) { - return nodeType == NodeType.host; // TODO(mpolden): Remove once all node types are supported - } + public boolean shouldUpgradeOsIn() { return nodeType.isHost(); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java index a583ec811c0..a20043d35c0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java @@ -61,9 +61,9 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> { @Override protected boolean expectUpgradeOf(Node node, SystemApplication application, ZoneApi zone) { - return cloud.equals(zone.getCloudName()) && // Cloud is managed by this upgrader - application.shouldUpgradeOsIn(zone.getId(), controller()) && // Application should upgrade in this cloud - canUpgrade(node); // Node is in an upgradable state + return cloud.equals(zone.getCloudName()) && // Cloud is managed by this upgrader + application.shouldUpgradeOsIn() && // Application should upgrade in this cloud + canUpgrade(node); // Node is in an upgradable state } @Override @@ -76,7 +76,7 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> { @Override protected boolean changeTargetTo(OsVersionTarget target, SystemApplication application, ZoneApi zone) { - if (!application.shouldUpgradeOsIn(zone.getId(), controller())) return false; + if (!application.shouldUpgradeOsIn()) return false; return controller().serviceRegistry().configServer().nodeRepository() .targetVersionsOf(zone.getId()) .osVersion(application.nodeType()) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java index c505dbfe1c6..ac9f32a2ae6 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java @@ -63,7 +63,7 @@ public class OsVersionStatus { for (var application : SystemApplication.all()) { for (var zone : zonesToUpgrade(controller)) { - if (!application.shouldUpgradeOsIn(zone.getId(), controller)) continue; + if (!application.shouldUpgradeOsIn()) continue; var targetOsVersion = controller.serviceRegistry().configServer().nodeRepository() .targetVersionsOf(zone.getId()) .osVersion(application.nodeType()) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java index 5a207f8e212..0e74a6fc201 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java @@ -140,9 +140,9 @@ public class OsUpgraderTest { osUpgrader.maintain(); // First zone upgrades - assertWanted(Version.emptyVersion, SystemApplication.configServerHost, zone1.getId()); assertEquals("Dev zone gets a zero budget", Duration.ZERO, upgradeBudget(zone1.getId(), SystemApplication.tenantHost, version)); completeUpgrade(version, SystemApplication.tenantHost, zone1.getId()); + completeUpgrade(version, SystemApplication.configServerHost, zone1.getId()); // Next set of zones upgrade osUpgrader.maintain(); @@ -150,13 +150,15 @@ public class OsUpgraderTest { assertEquals("Parallel prod zones share the budget of a single zone", Duration.ofHours(6), upgradeBudget(zone, SystemApplication.tenantHost, version)); completeUpgrade(version, SystemApplication.tenantHost, zone); + completeUpgrade(version, SystemApplication.configServerHost, zone); } // Last zone upgrades osUpgrader.maintain(); - assertEquals("Last prod zone gets the budget of a single zone", Duration.ofHours(6), + assertEquals("Tenant hosts in last prod zone gets the budget of a single zone", Duration.ofHours(6), upgradeBudget(zone4.getId(), SystemApplication.tenantHost, version)); completeUpgrade(version, SystemApplication.tenantHost, zone4.getId()); + completeUpgrade(version, SystemApplication.configServerHost, zone4.getId()); // All host applications upgraded statusUpdater.maintain(); |