11locals {
2- base_env = var. dd_environment
2+ # Application container modifications
3+ is_linux = var. runtime_platform == null || var. runtime_platform . operating_system_family == null || var. runtime_platform . operating_system_family == " LINUX"
4+ is_apm_socket_mount = var. dd_apm . enabled && var. dd_apm . socket_enabled && local. is_linux
5+ is_dsd_socket_mount = var. dd_dogstatsd . enabled && var. dd_dogstatsd . socket_enabled && local. is_linux
6+ is_apm_dsd_volume = local. is_apm_socket_mount || local. is_dsd_socket_mount
37
8+ apm_dsd_mount = local. is_apm_dsd_volume ? [
9+ {
10+ containerPath = " /var/run/datadog"
11+ sourceVolume = " dd-sockets"
12+ readOnly = false
13+ }
14+ ] : []
15+
16+ apm_socket_var = local. is_apm_socket_mount ? [
17+ {
18+ name = " DD_TRACE_AGENT_URL"
19+ value = " unix:///var/run/datadog/apm.socket"
20+ }
21+ ] : []
22+
23+ dsd_socket_var = local. is_dsd_socket_mount ? [
24+ {
25+ name = " DD_DOGSTATSD_URL"
26+ value = " unix:///var/run/datadog/dsd.socket"
27+ }
28+ ] : []
29+
30+ dsd_port_var = ! local. is_dsd_socket_mount && var. dd_dogstatsd . enabled ? [
31+ {
32+ name = " DD_AGENT_HOST"
33+ value = " 127.0.0.1"
34+ }
35+ ] : []
36+
37+ modified_container_definitions = [
38+ for container in var . container_definitions : merge (
39+ container ,
40+ {
41+ # Append new environment variables to any existing ones.
42+ environment = concat (
43+ lookup (container, " environment" , []),
44+ local. dsd_socket_var ,
45+ local. apm_socket_var ,
46+ local. dsd_port_var ,
47+ ),
48+ # Append new volume mounts to any existing mountPoints.
49+ mountPoints = concat (
50+ lookup (container, " mountPoints" , []),
51+ local. apm_dsd_mount
52+ )
53+ }
54+ )
55+ ]
56+
57+ # Volume configuration for task
58+ apm_dsd_volume = local. is_apm_dsd_volume ? [
59+ {
60+ name = " dd-sockets"
61+ }
62+ ] : []
63+
64+ modified_volumes = concat (
65+ [for k , v in coalesce (var. volumes , {}) : v ],
66+ local. apm_dsd_volume
67+ )
68+
69+ # Datadog Agent container environment variables
470 dynamic_env = [
571 for pair in [
672 { key = " DD_API_KEY" , value = var.dd_api_key },
773 { key = " DD_SITE" , value = var.dd_site },
874 { key = " DD_SERVICE" , value = var.dd_service },
975 { key = " DD_ENV" , value = var.dd_env },
1076 { key = " DD_VERSION" , value = var.dd_version },
77+ { key = " DD_DOGSTATSD_TAG_CARDINALITY" , value = var.dd_dogstatsd.dogstatsd_cardinality }
1178 # TODO: clusterName, ddTags, etc.
1279 ] : { name = pair.key, value = pair.value } if pair. value != null
1380 ]
1481
15- dd_agent_env = concat (local. base_env , local. dynamic_env )
82+ origin_detection_vars = var. dd_dogstatsd . origin_detection_enabled ? [
83+ {
84+ name = " DD_DOGSTATSD_ORIGIN_DETECTION"
85+ value = " true"
86+ },
87+ {
88+ name = " DD_DOGSTATSD_ORIGIN_DETECTION_CLIENT"
89+ value = " true"
90+ }
91+ ] : []
92+
93+ dd_agent_env = concat (
94+ var. dd_environment ,
95+ local. dynamic_env ,
96+ local. origin_detection_vars ,
97+ )
1698
1799 # Datadog Agent container definition
18100 dd_agent_container = {
@@ -36,6 +118,7 @@ locals {
36118 hostPort = 8126
37119 protocol = " tcp"
38120 }
39- ]
121+ ],
122+ mountPoints = local.apm_dsd_mount
40123 }
41124}
0 commit comments