Skip to content

Commit 28d5d98

Browse files
feat: expose docker label config for datadog agent
1 parent 3e319c3 commit 28d5d98

File tree

5 files changed

+26
-5
lines changed

5 files changed

+26
-5
lines changed

examples/ecs_fargate/main.tf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@ module "datadog_ecs_fargate_task" {
1313
# Configure Datadog
1414
dd_api_key = var.dd_api_key
1515
dd_site = var.dd_site
16-
dd_service = var.dd_service
1716
dd_tags = "team:cont-p, owner:container-monitoring"
1817
dd_essential = true
1918
dd_is_datadog_dependency_enabled = true
2019

20+
dd_service = "test-service"
21+
dd_env = "test"
22+
dd_version = "1.2.3"
23+
2124
dd_environment = [
2225
{
2326
name = "DD_CUSTOM_FEATURE",

modules/ecs_fargate/datadog.tf

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ locals {
310310
local.dd_environment,
311311
)
312312

313+
dd_agent_docker_labels = merge(
314+
local.ust_docker_labels,
315+
var.dd_docker_labels,
316+
)
317+
313318
# Datadog Agent container definition
314319
dd_agent_container = [
315320
merge(
@@ -318,7 +323,7 @@ locals {
318323
image = "${var.dd_registry}:${var.dd_image_version}"
319324
essential = var.dd_essential
320325
environment = local.dd_agent_env
321-
dockerLabels = local.ust_docker_labels
326+
dockerLabels = local.dd_agent_docker_labels
322327
cpu = var.dd_cpu
323328
memory = var.dd_memory_limit_mib
324329
secrets = var.dd_api_key_secret != null ? [
@@ -386,7 +391,7 @@ locals {
386391
user = "0"
387392
mountPoints = var.dd_log_collection.fluentbit_config.mountPoints
388393
environment = local.dd_log_agent_env
389-
dockerLabels = local.ust_docker_labels
394+
dockerLabels = local.dd_agent_docker_labels
390395
portMappings = []
391396
systemControls = []
392397
volumesFrom = []
@@ -417,7 +422,7 @@ locals {
417422
command = ["/cws-instrumentation", "setup", "--cws-volume-mount", "/cws-instrumentation-volume"]
418423
mountPoints = local.cws_mount
419424
environment = local.ust_env_vars
420-
dockerLabels = local.ust_docker_labels
425+
dockerLabels = local.dd_agent_docker_labels
421426
portMappings = []
422427
systemControls = []
423428
volumesFrom = []

modules/ecs_fargate/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ variable "dd_environment" {
9696
nullable = false
9797
}
9898

99+
variable "dd_docker_labels" {
100+
description = "Datadog Agent container docker labels"
101+
type = map(map(string))
102+
default = {}
103+
}
104+
99105
variable "dd_tags" {
100106
description = "Datadog Agent global tags (eg. `key1:value1, key2:value2`)"
101107
type = string

smoke_tests/ecs_fargate/ust-docker-labels.tf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ module "dd_task_ust_docker_labels" {
2929
enabled = true,
3030
}
3131

32+
dd_docker_labels = {
33+
"com.datadoghq.tags.service" : "docker-agent-service",
34+
}
35+
3236
# Configure Task Definition with multiple containers
3337
family = "${var.test_prefix}-ust-docker-labels"
3438
container_definitions = jsonencode([
@@ -42,7 +46,7 @@ module "dd_task_ust_docker_labels" {
4246
image = "nginx:latest",
4347
essential = false,
4448
dockerLabels = {
45-
"com.datadoghq.tags.service" : "different_name",
49+
"com.datadoghq.tags.service" : "overwritten_name",
4650
"custom.label" = "custom-value"
4751
}
4852
}

tests/ust_docker_labels_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ func (s *ECSFargateSuite) TestUSTDockerLabels() {
3838
s.True(found, "Container dummy-app not found in definitions")
3939
AssertDockerLabels(s.T(), dummyApp, expectedUSTLabels)
4040

41+
// Expect UST docker labels to be present on all Datadog containers with
42+
// overwritten labels when UST docker labels are specified.
4143
datadogContainers := []string{"datadog-agent", "datadog-log-router", "cws-instrumentation-init"}
44+
expectedUSTLabels["com.datadoghq.tags.service"] = "docker-agent-service"
4245
for _, containerName := range datadogContainers {
4346
container, found := GetContainer(containers, containerName)
4447
s.True(found, "Container %s not found in definitions", containerName)

0 commit comments

Comments
 (0)