diff --git a/.changelog/3635.txt b/.changelog/3635.txt new file mode 100644 index 0000000000..c5c505c808 --- /dev/null +++ b/.changelog/3635.txt @@ -0,0 +1,3 @@ +```release-note:bug +helm: (datadog integration) updated `server-statefulset.yaml` templating to handle custom Unix Domain Socket paths. +``` \ No newline at end of file diff --git a/charts/consul/templates/server-statefulset.yaml b/charts/consul/templates/server-statefulset.yaml index 6dcd2e320a..ddb79d0c9b 100644 --- a/charts/consul/templates/server-statefulset.yaml +++ b/charts/consul/templates/server-statefulset.yaml @@ -292,7 +292,7 @@ spec: {{- if and .Values.global.metrics.datadog.enabled .Values.global.metrics.datadog.dogstatsd.enabled (eq .Values.global.metrics.datadog.dogstatsd.socketTransportType "UDS" ) }} - name: dsdsocket hostPath: - path: /var/run/datadog + path: {{ dir .Values.global.metrics.datadog.dogstatsd.dogstatsdAddr | trimAll "\"" }} type: DirectoryOrCreate {{- end }} {{- range .Values.server.extraVolumes }} @@ -542,7 +542,7 @@ spec: {{- end }} {{- if and .Values.global.metrics.datadog.enabled .Values.global.metrics.datadog.dogstatsd.enabled (eq .Values.global.metrics.datadog.dogstatsd.socketTransportType "UDS" ) }} - name: dsdsocket - mountPath: /var/run/datadog + mountPath: {{ dir .Values.global.metrics.datadog.dogstatsd.dogstatsdAddr | trimAll "\"" }} readOnly: true {{- end }} {{- range .Values.server.extraVolumes }} diff --git a/charts/consul/test/unit/server-statefulset.bats b/charts/consul/test/unit/server-statefulset.bats index 8fceb5c474..4c1dbc0378 100755 --- a/charts/consul/test/unit/server-statefulset.bats +++ b/charts/consul/test/unit/server-statefulset.bats @@ -1070,6 +1070,37 @@ load _helpers [ "${actual}" = "consul-server" ] } +@test "server/StatefulSet: datadog unix socket path name rendering for hostPath volume and volumeMount using default" { + cd `chart_dir` + local actual=$(helm template \ + -s templates/server-statefulset.yaml \ + --set 'global.metrics.enabled=true' \ + --set 'telemetryCollector.enabled=true' \ + --set 'global.metrics.enableAgentMetrics=true' \ + --set 'global.metrics.datadog.enabled=true' \ + --set 'global.metrics.datadog.dogstatsd.enabled=true' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.volumes[] | select(.name=="dsdsocket") | .hostPath.path' | tee /dev/stderr) + + [ "${actual}" = "/var/run/datadog" ] +} + +@test "server/StatefulSet: datadog unix socket path name rendering for hostPath volume and volumeMount using non default" { + cd `chart_dir` + local actual=$(helm template \ + -s templates/server-statefulset.yaml \ + --set 'global.metrics.enabled=true' \ + --set 'telemetryCollector.enabled=true' \ + --set 'global.metrics.enableAgentMetrics=true' \ + --set 'global.metrics.datadog.enabled=true' \ + --set 'global.metrics.datadog.dogstatsd.enabled=true' \ + --set 'global.metrics.datadog.dogstatsd.dogstatsdAddr="/this/otherpath/datadog/dsd.socket"' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.volumes[] | select(.name=="dsdsocket") | .hostPath.path' | tee /dev/stderr) + + [ "${actual}" = "/this/otherpath/datadog" ] +} + #-------------------------------------------------------------------- # config-configmap