static ResourceRequirements buildResourceRequirements(String serviceName, DeploymentEnvironment deploymentEnvironment) { Map<String, Map> customSizing = deploymentEnvironment.getCustomSizing().get(serviceName); if (customSizing == null) { return null; } ResourceRequirementsBuilder resourceRequirementsBuilder = new ResourceRequirementsBuilder(); if (customSizing.get("requests") != null) { resourceRequirementsBuilder.addToRequests("memory", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("requests").get("memory"))).build()); resourceRequirementsBuilder.addToRequests("cpu", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("requests").get("cpu"))).build()); } if (customSizing.get("limits") != null) { resourceRequirementsBuilder.addToLimits("memory", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("limits").get("memory"))).build()); resourceRequirementsBuilder.addToLimits("cpu", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("limits").get("cpu"))).build()); } return resourceRequirementsBuilder.build(); } }
static ResourceRequirements buildResourceRequirements(String serviceName, DeploymentEnvironment deploymentEnvironment) { Map<String, Map> customSizing = deploymentEnvironment.getCustomSizing().get(serviceName); if (customSizing == null) { return null; } ResourceRequirementsBuilder resourceRequirementsBuilder = new ResourceRequirementsBuilder(); if (customSizing.get("requests") != null) { resourceRequirementsBuilder.addToRequests("memory", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("requests").get("memory"))).build()); resourceRequirementsBuilder.addToRequests("cpu", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("requests").get("cpu"))).build()); } if (customSizing.get("limits") != null) { resourceRequirementsBuilder.addToLimits("memory", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("limits").get("memory"))).build()); resourceRequirementsBuilder.addToLimits("cpu", new QuantityBuilder().withAmount(CustomSizing.stringOrNull(customSizing.get("limits").get("cpu"))).build()); } return resourceRequirementsBuilder.build(); } }
@Override protected List<Container> getInitContainers() { List<Container> initContainers = new ArrayList<>(); if (rack != null || isExposedWithNodePort()) { ResourceRequirements resources = new ResourceRequirementsBuilder() .addToRequests("cpu", new Quantity("100m")) .addToRequests("memory", new Quantity("128Mi")) .addToLimits("cpu", new Quantity("1")) .addToLimits("memory", new Quantity("256Mi")) .build(); List<EnvVar> varList = new ArrayList<>(); varList.add(buildEnvVarFromFieldRef(ENV_VAR_KAFKA_INIT_NODE_NAME, "spec.nodeName")); if (rack != null) { varList.add(buildEnvVar(ENV_VAR_KAFKA_INIT_RACK_TOPOLOGY_KEY, rack.getTopologyKey())); } if (isExposedWithNodePort()) { varList.add(buildEnvVar(ENV_VAR_KAFKA_INIT_EXTERNAL_ADDRESS, "TRUE")); } Container initContainer = new ContainerBuilder() .withName(INIT_NAME) .withImage(initImage) .withResources(resources) .withEnv(varList) .withVolumeMounts(createVolumeMount(INIT_VOLUME_NAME, INIT_VOLUME_MOUNT)) .build(); initContainers.add(initContainer); } return initContainers; }
static ResourceRequirements resources(Resources resources) { if (resources != null) { ResourceRequirementsBuilder builder = new ResourceRequirementsBuilder(); CpuMemory limits = resources.getLimits(); if (limits != null && limits.milliCpuAsInt() > 0) { builder.addToLimits("cpu", new Quantity(normalizeCpu(limits.getMilliCpu()))); } if (limits != null && limits.memoryAsLong() > 0) { builder.addToLimits("memory", new Quantity(normalizeMemory(limits.getMemory()))); } CpuMemory requests = resources.getRequests(); if (requests != null && requests.milliCpuAsInt() > 0) { builder.addToRequests("cpu", new Quantity(normalizeCpu(requests.getMilliCpu()))); } if (requests != null && requests.memoryAsLong() > 0) { builder.addToRequests("memory", new Quantity(normalizeMemory(requests.getMemory()))); } return builder.build(); } return null; }
runSpec.memRequest().ifPresent(s -> resourceRequirements.addToRequests("memory", new Quantity(s))); runSpec.memLimit().ifPresent(s -> resourceRequirements.addToLimits("memory", new Quantity(s)));