diff --git a/chart/templates/statsd/statsd-deployment.yaml b/chart/templates/statsd/statsd-deployment.yaml index 58ac7cc547ac7..b8d0323349eef 100644 --- a/chart/templates/statsd/statsd-deployment.yaml +++ b/chart/templates/statsd/statsd-deployment.yaml @@ -87,8 +87,9 @@ spec: - name: statsd image: {{ template "statsd_image" . }} imagePullPolicy: {{ .Values.images.statsd.pullPolicy }} - args: - - "--statsd.mapping-config=/etc/statsd-exporter/mappings.yml" + {{- if .Values.statsd.args }} + args: {{ tpl (toYaml .Values.statsd.args) . | nindent 12 }} + {{- end }} resources: {{ toYaml .Values.statsd.resources | indent 12 }} ports: diff --git a/chart/values.schema.json b/chart/values.schema.json index 8a3048dc07c84..1144d471ddae3 100644 --- a/chart/values.schema.json +++ b/chart/values.schema.json @@ -4167,6 +4167,19 @@ "additionalProperties": { "type": "string" } + }, + "args": { + "description": "Args to use when running statsd-exporter (templated).", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "default": [ + "--statsd.mapping-config=/etc/statsd-exporter/mappings.yml" + ] } } }, diff --git a/chart/values.yaml b/chart/values.yaml index 4680eee74a677..98c647bd738ef 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1331,6 +1331,9 @@ statsd: # Max number of old replicasets to retain revisionHistoryLimit: ~ + # Arguments for StatsD exporter command. + args: ["--statsd.mapping-config=/etc/statsd-exporter/mappings.yml"] + # Create ServiceAccount serviceAccount: # Specifies whether a ServiceAccount should be created diff --git a/tests/charts/test_statsd.py b/tests/charts/test_statsd.py index 7ab1b1163ef37..7e7dbbab7c90d 100644 --- a/tests/charts/test_statsd.py +++ b/tests/charts/test_statsd.py @@ -41,6 +41,9 @@ def test_should_create_statsd_default(self): "subPath": "mappings.yml", } in jmespath.search("spec.template.spec.containers[0].volumeMounts", docs[0]) + default_args = ["--statsd.mapping-config=/etc/statsd-exporter/mappings.yml"] + assert default_args == jmespath.search("spec.template.spec.containers[0].args", docs[0]) + def test_should_add_volume_and_volume_mount_when_exist_extra_mappings(self): extra_mapping = { "match": "airflow.pool.queued_slots.*", @@ -210,3 +213,12 @@ def test_statsd_configmap_when_exist_override_mappings(self): assert 1 == len(mappings_yml_obj["mappings"]) assert "airflow_pool_queued_slots" == mappings_yml_obj["mappings"][0]["name"] + + def test_statsd_args_can_be_overridden(self): + args = ["--some-arg=foo"] + docs = render_chart( + values={"statsd": {"enabled": True, "args": args}}, + show_only=["templates/statsd/statsd-deployment.yaml"], + ) + + assert jmespath.search("spec.template.spec.containers[0].args", docs[0]) == args