Skip to content

Commit 128aa34

Browse files
authored
Fix default memory_limiter configuration for helm version 3.5.x (open-telemetry#39)
Starting from helm 3.5.0, merging rules were changed: now if null value merged into a dict, null value is preserved. In order to make it cleaner and working on all the versions, this commit replaces the merge operation with a conditional set. If user wants to override the default memory_limiter configuration, they should override all the fields. That behavior seems more practical than partial override for the this processor.
1 parent 431e451 commit 128aa34

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

charts/opentelemetry-collector/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: opentelemetry-collector
3-
version: 0.5.0
3+
version: 0.5.1
44
description: OpenTelemetry Collector Helm chart for Kubernetes
55
type: application
66
home: https://opentelemetry.io/

charts/opentelemetry-collector/templates/_config.tpl

+13-12
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,28 @@
22
Default memory limiter configuration for OpenTelemetry Collector based on k8s resource limits.
33
*/}}
44
{{- define "opentelemetry-collector.memoryLimiter" -}}
5-
processors:
6-
memory_limiter:
7-
# check_interval is the time between measurements of memory usage.
8-
check_interval: 5s
5+
# check_interval is the time between measurements of memory usage.
6+
check_interval: 5s
97

10-
# By default limit_mib is set to 80% of ".Values.resources.limits.memory"
11-
limit_mib: {{ include "opentelemetry-collector.getMemLimitMib" .Values.resources.limits.memory }}
8+
# By default limit_mib is set to 80% of ".Values.resources.limits.memory"
9+
limit_mib: {{ include "opentelemetry-collector.getMemLimitMib" .Values.resources.limits.memory }}
1210

13-
# By default spike_limit_mib is set to 25% of ".Values.resources.limits.memory"
14-
spike_limit_mib: {{ include "opentelemetry-collector.getMemSpikeLimitMib" .Values.resources.limits.memory }}
11+
# By default spike_limit_mib is set to 25% of ".Values.resources.limits.memory"
12+
spike_limit_mib: {{ include "opentelemetry-collector.getMemSpikeLimitMib" .Values.resources.limits.memory }}
1513

16-
# By default ballast_size_mib is set to 40% of ".Values.resources.limits.memory"
17-
ballast_size_mib: {{ include "opentelemetry-collector.getMemBallastSizeMib" .Values.resources.limits.memory }}
14+
# By default ballast_size_mib is set to 40% of ".Values.resources.limits.memory"
15+
ballast_size_mib: {{ include "opentelemetry-collector.getMemBallastSizeMib" .Values.resources.limits.memory }}
1816
{{- end }}
1917

2018
{{/*
2119
Merge user supplied top-level (not particular to standalone or agent) config into memory limiter config.
2220
*/}}
2321
{{- define "opentelemetry-collector.baseConfig" -}}
24-
{{- $config := include "opentelemetry-collector.memoryLimiter" . | fromYaml -}}
25-
{{- .Values.config | mustMergeOverwrite $config | toYaml }}
22+
{{- $processorsConfig := get .Values.config "processors" }}
23+
{{- if not $processorsConfig.memory_limiter }}
24+
{{- $_ := set $processorsConfig "memory_limiter" (include "opentelemetry-collector.memoryLimiter" . | fromYaml) }}
25+
{{- end }}
26+
{{- .Values.config | toYaml }}
2627
{{- end }}
2728

2829
{{/*

0 commit comments

Comments
 (0)