diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-10-29 09:59:05 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-10-29 09:59:05 +0100 |
commit | 650b5b5dc8ee137b451583a2e774f6c30f9898e7 (patch) | |
tree | dc3c9a8c10620eea9a32dbb02837dd3a3a9d912a | |
parent | 26071f79b70e6ecc2ab00952caa55ca20156d6e7 (diff) |
Do not throttle upgrade of canaries
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java index c89d74864cb..c20904710ea 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java @@ -102,7 +102,9 @@ public class Upgrader extends Maintainer { applications = applications.notFailingOn(version); // try to upgrade only if it hasn't failed on this version applications = applications.canUpgradeAt(controller().clock().instant()); // wait with applications that are currently blocking upgrades applications = applications.byIncreasingDeployedVersion(); // start with lowest versions - applications = applications.first(numberOfApplicationsToUpgrade()); // throttle upgrades + if (!containsOnlyCanaries(applications)) { // throttle upgrades of non-canaries + applications = applications.first(numberOfApplicationsToUpgrade()); + } for (Application application : applications.asList()) controller().applications().deploymentTrigger().triggerChange(application.id(), Change.of(version)); } @@ -171,4 +173,9 @@ public class Upgrader extends Maintainer { controller().removeConfidenceOverride(version::equals); } + /** Returns whether all given applications are canaries */ + private static boolean containsOnlyCanaries(ApplicationList applications) { + return applications.asList().stream().allMatch(application -> application.deploymentSpec().upgradePolicy() == UpgradePolicy.canary); + } + } |