diff options
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java index d70ee825860..2a0b4f02b20 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java @@ -199,17 +199,22 @@ public class HostCapacityMaintainer extends NodeRepositoryMaintainer { throw new IllegalStateException("Have provisioned " + numProvisions + " times but there's still deficit: aborting"); } - nodesPlusProvisioned.addAll(provisionHosts(deficit.get().count(), toNodeResources(deficit.get()))); + ClusterCapacity clusterCapacityDeficit = deficit.get(); + var clusterType = Optional.ofNullable(clusterCapacityDeficit.clusterType()); + nodesPlusProvisioned.addAll(provisionHosts(clusterCapacityDeficit.count(), + toNodeResources(clusterCapacityDeficit), + clusterType.map(ClusterSpec.Type::from))); } } - private List<Node> provisionHosts(int count, NodeResources nodeResources) { + private List<Node> provisionHosts(int count, NodeResources nodeResources, Optional<ClusterSpec.Type> clusterType) { try { Version osVersion = nodeRepository().osVersions().targetFor(NodeType.host).orElse(Version.emptyVersion); List<Integer> provisionIndices = nodeRepository().database().readProvisionIndices(count); List<Node> hosts = new ArrayList<>(); - HostProvisionRequest request = new HostProvisionRequest(provisionIndices, NodeType.host, nodeResources, ApplicationId.defaultId(), osVersion, - HostSharing.shared, Optional.empty(), Optional.empty(), + HostProvisionRequest request = new HostProvisionRequest(provisionIndices, NodeType.host, nodeResources, + ApplicationId.defaultId(), osVersion, + HostSharing.shared, clusterType, Optional.empty(), nodeRepository().zone().cloud().account(), false); hostProvisioner.provisionHosts(request, provisionedHosts -> { @@ -256,7 +261,10 @@ public class HostCapacityMaintainer extends NodeRepositoryMaintainer { // We'll allocate each ClusterCapacity as a unique cluster in a dummy application ApplicationId applicationId = ApplicationId.defaultId(); ClusterSpec.Id clusterId = ClusterSpec.Id.from(String.valueOf(clusterIndex)); - ClusterSpec clusterSpec = ClusterSpec.request(ClusterSpec.Type.content, clusterId) + ClusterSpec.Type type = clusterCapacity.clusterType() != null + ? ClusterSpec.Type.from(clusterCapacity.clusterType()) + : ClusterSpec.Type.content; + ClusterSpec clusterSpec = ClusterSpec.request(type, clusterId) // build() requires a version, even though it is not (should not be) used .vespaVersion(Vtag.currentVersion) .build(); |