diff options
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java | 16 |
1 files changed, 10 insertions, 6 deletions
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 66fb20e8a71..43e9ce51040 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 @@ -16,7 +16,11 @@ import java.util.Set; import java.util.logging.Logger; /** - * Maintenance job that schedules upgrades of OS / kernel on nodes in the system. + * Trigger OS upgrade of zones in the system, according to the current OS version target. + * + * Target OS version is set per cloud, and an instance of this exists per cloud in the system. + * + * {@link OsUpgradeScheduler} may update the target automatically in supported clouds. * * @author mpolden */ @@ -52,14 +56,14 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> { @Override protected boolean convergedOn(OsVersionTarget target, SystemApplication application, ZoneApi zone) { - return currentVersion(zone, application, target.osVersion().version()).equals(target.osVersion().version()); + return !currentVersion(zone, application, target.osVersion().version()).isBefore(target.osVersion().version()); } @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.shouldUpgradeOs() && // Application should upgrade in this cloud + canUpgrade(node); // Node is in an upgradable state } @Override @@ -72,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.shouldUpgradeOs()) return false; return controller().serviceRegistry().configServer().nodeRepository() .targetVersionsOf(zone.getId()) .osVersion(application.nodeType()) |