diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-05-27 14:21:54 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-05-27 14:21:54 +0200 |
commit | 4b8f28b9978df1393c5b7b4ffc0912dcd7fabf7c (patch) | |
tree | f181694b335d3d95e7d62a5491cfd689a57f7ef9 /node-repository | |
parent | 33d8403731945563c1d011f88475579a9bb9d3a2 (diff) |
Use fixed limit for infrastructure hosts
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java index 9174222b89b..50f77a7df7b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java @@ -57,7 +57,7 @@ public class HostEncrypter extends NodeRepositoryMaintainer { private List<Node> unencryptedHosts(NodeList allNodes, NodeType hostType) { if (!hostType.isHost()) throw new IllegalArgumentException("Expected host type, got " + hostType); NodeList hostsOfTargetType = allNodes.nodeType(hostType); - int hostLimit = hostLimit(hostsOfTargetType); + int hostLimit = hostLimit(hostsOfTargetType, hostType); // Find stateful clusters with retiring nodes NodeList activeNodes = allNodes.state(Node.State.active); @@ -88,8 +88,11 @@ public class HostEncrypter extends NodeRepositoryMaintainer { } /** Returns the number of hosts that can encrypt concurrently */ - private int hostLimit(NodeList hosts) { - return Math.max(0, maxEncryptingHosts.value() - hosts.encrypting().size()); + private int hostLimit(NodeList hosts, NodeType hostType) { + if (hosts.stream().anyMatch(host -> host.type() != hostType)) throw new IllegalArgumentException("All hosts must be a " + hostType); + if (maxEncryptingHosts.value() < 1) return 0; // 0 or negative value effectively stops encryption of all hosts + int limit = hostType == NodeType.host ? maxEncryptingHosts.value() : 1; + return Math.max(0, limit - hosts.encrypting().size()); } private void encrypt(Node host, Instant now) { |