Skip to content

Commit

Permalink
Round up fractional cpu values for ActiveProcessorsCount
Browse files Browse the repository at this point in the history
  • Loading branch information
Yevhen Ivantsov committed Jan 30, 2025
1 parent 74ee696 commit 2ba429e
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/main/charts/bamboo/templates/config-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ data:
{{- range .Values.bamboo.additionalJvmArgs }}
{{ . }}
{{- end }}
-XX:ActiveProcessorCount={{ include "flooredCPU" .Values.bamboo.resources.container.requests.cpu }}
-XX:ActiveProcessorCount={{ max 1 (include "flooredCPU" .Values.bamboo.resources.container.requests.cpu | float64 | int) }}
{{- if or .Values.bamboo.additionalCertificates.secretName .Values.bamboo.additionalCertificates.secretList }}
-Djavax.net.ssl.trustStore=/var/ssl/cacerts
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion src/main/charts/bitbucket/templates/config-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ data:
{{- range .Values.bitbucket.additionalJvmArgs }}
{{ . }}
{{- end }}
-XX:ActiveProcessorCount={{ include "flooredCPU" .Values.bitbucket.resources.container.requests.cpu }}
-XX:ActiveProcessorCount={{ max 1 (include "flooredCPU" .Values.bitbucket.resources.container.requests.cpu | float64 | int) }}
{{ include "common.jmx.javaagent" . | indent 4 | trim }}
{{- if .Values.monitoring.exposeJmxMetrics }}
-Dplugin.bitbucket-git.mesh.sidecar.jvmArgs=-javaagent:{{ .Values.monitoring.jmxExporterCustomJarLocation | default (printf "%s/jmx_prometheus_javaagent.jar" .Values.volumes.sharedHome.mountPath) }}=9998:/opt/atlassian/jmx/jmx-config.yaml
Expand Down
2 changes: 1 addition & 1 deletion src/main/charts/confluence/templates/config-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ data:
{{- range .Values.confluence.additionalJvmArgs }}
{{ . }}
{{- end }}
-XX:ActiveProcessorCount={{ include "flooredCPU" .Values.confluence.resources.container.requests.cpu }}
-XX:ActiveProcessorCount={{ max 1 (include "flooredCPU" .Values.confluence.resources.container.requests.cpu | float64 | int) }}
{{- if .Values.serviceAccount.eksIrsa.roleArn }}
-Daws.webIdentityTokenFile=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion src/main/charts/crowd/templates/config-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ data:
{{- range .Values.crowd.additionalJvmArgs }}
{{ . }}
{{- end }}
-XX:ActiveProcessorCount={{ include "flooredCPU" .Values.crowd.resources.container.requests.cpu }}
-XX:ActiveProcessorCount={{ max 1 (include "flooredCPU" .Values.crowd.resources.container.requests.cpu | float64 | int) }}
{{- if or .Values.crowd.additionalCertificates.secretName .Values.crowd.additionalCertificates.secretList }}
-Djavax.net.ssl.trustStore=/var/ssl/cacerts
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion src/main/charts/jira/templates/config-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ data:
{{- range .Values.jira.additionalJvmArgs }}
{{ . }}
{{- end }}
-XX:ActiveProcessorCount={{ include "flooredCPU" .Values.jira.resources.container.requests.cpu }}
-XX:ActiveProcessorCount={{ max 1 (include "flooredCPU" .Values.jira.resources.container.requests.cpu | float64 | int) }}
{{- if .Values.serviceAccount.eksIrsa.roleArn }}
-Daws.webIdentityTokenFile=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
{{- end }}
Expand Down
21 changes: 21 additions & 0 deletions src/test/java/test/RequestsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,25 @@ void sts_resource_requests_and_limits(Product product) throws Exception {
.hasSeparatedTextContaining("-XX:ActiveProcessorCount=1");
}

@ParameterizedTest
@EnumSource(value = Product.class, names = {"bamboo_agent"}, mode = EnumSource.Mode.EXCLUDE)
void fractional_cpu_active_processors(Product product) throws Exception {
final var resources = helm.captureKubeResourcesFromHelmChart(product, Map.of(
product + ".resources.container.requests.cpu", "3.2"
));

final var additionalJvmArgs = resources.get(Kind.ConfigMap, product.getHelmReleaseName() + "-jvm-config")
.getNode("data", "additional_jvm_args");
assertThat(additionalJvmArgs)
.hasSeparatedTextContaining("-XX:ActiveProcessorCount=3");

final var resourcesFractionalCPU = helm.captureKubeResourcesFromHelmChart(product, Map.of(
product + ".resources.container.requests.cpu", "0.1"
));
final var additionalJvmArgsMilliCpu = resourcesFractionalCPU
.get(Kind.ConfigMap, product.getHelmReleaseName() + "-jvm-config").getNode("data", "additional_jvm_args");
assertThat(additionalJvmArgsMilliCpu)
.hasSeparatedTextContaining("-XX:ActiveProcessorCount=1");
}

}

0 comments on commit 2ba429e

Please sign in to comment.