diff --git a/nebulous-requirements-extractor/src/main/java/eu/nebulouscloud/optimiser/kubevela/KubevelaAnalyzer.java b/nebulous-requirements-extractor/src/main/java/eu/nebulouscloud/optimiser/kubevela/KubevelaAnalyzer.java index 94aa38e..3a6483b 100644 --- a/nebulous-requirements-extractor/src/main/java/eu/nebulouscloud/optimiser/kubevela/KubevelaAnalyzer.java +++ b/nebulous-requirements-extractor/src/main/java/eu/nebulouscloud/optimiser/kubevela/KubevelaAnalyzer.java @@ -88,7 +88,7 @@ public class KubevelaAnalyzer { * @param reqs The list of requirements to add to. * @param cloudIDs the Cloud IDs to filter for. */ - private static void addNebulousRequirements(List reqs, Set cloudIDs) { + public static void addNebulousRequirements(List reqs, Set cloudIDs) { reqs.add(new AttributeRequirement("hardware", "ram", RequirementOperator.GEQ, "2048")); if (cloudIDs != null && !cloudIDs.isEmpty()) { reqs.add(new AttributeRequirement("cloud", "id", diff --git a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/NebulousAppDeployer.java b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/NebulousAppDeployer.java index 4a7abd6..bd76e39 100644 --- a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/NebulousAppDeployer.java +++ b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/NebulousAppDeployer.java @@ -1,6 +1,7 @@ package eu.nebulouscloud.optimiser.controller; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -39,10 +40,13 @@ public class NebulousAppDeployer { * This machine runs the Kubernetes cluster and KubeVela. For * now, we ask for 8GB memory and 4 cores. */ - public static List getControllerRequirements(String jobID) { - return List.of( - new AttributeRequirement("hardware", "ram", RequirementOperator.GEQ, "8192"), - new AttributeRequirement("hardware", "cores", RequirementOperator.GEQ, "4")); + public static List getControllerRequirements(String jobID, Set cloudIDs) { + List reqs = new ArrayList<>( + Arrays.asList( + new AttributeRequirement("hardware", "ram", RequirementOperator.GEQ, "8192"), + new AttributeRequirement("hardware", "cores", RequirementOperator.GEQ, "4"))); + KubevelaAnalyzer.addNebulousRequirements(reqs, cloudIDs); + return reqs; } /** @@ -251,7 +255,7 @@ public class NebulousAppDeployer { // Extract node requirements Map> componentRequirements = KubevelaAnalyzer.getBoundedRequirements(kubevela, app.getCloudIDs()); Map nodeCounts = KubevelaAnalyzer.getNodeCount(kubevela); - List controllerRequirements = getControllerRequirements(appUUID); + List controllerRequirements = getControllerRequirements(appUUID, app.getCloudIDs()); // // HACK: do this only when cloud id = nrec // componentRequirements.forEach( // (k, reqs) -> reqs.add(new AttributeRequirement("location", "name", RequirementOperator.EQ, "bgo")));