Skip to content

Commit 5ff3194

Browse files
authored
feat: added mountPoints & dependsOn for fluentbit (#44)
* feat: added mountPoints & dependsOn for fluentbit * chore: update terraform docs
1 parent d829c5b commit 5ff3194

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

modules/ecs_fargate/README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,23 @@ module "ecs_fargate_task" {
3636
3737
dd_log_collection = {
3838
enabled = true
39+
fluentbit_config = {
40+
# Optional: Mount additional volumes to the log router
41+
mountPoints = [
42+
{
43+
sourceVolume = "config-volume"
44+
containerPath = "/fluent-bit/config"
45+
readOnly = true
46+
}
47+
]
48+
# Optional: Add dependencies for the log router
49+
dependsOn = [
50+
{
51+
containerName = "config-init"
52+
condition = "SUCCESS"
53+
}
54+
]
55+
}
3956
}
4057
4158
# Task Configuration
@@ -231,7 +248,7 @@ No modules.
231248
| <a name="input_dd_health_check"></a> [dd\_health\_check](#input\_dd\_health\_check) | Datadog Agent health check configuration | <pre>object({<br/> command = optional(list(string))<br/> interval = optional(number)<br/> retries = optional(number)<br/> start_period = optional(number)<br/> timeout = optional(number)<br/> })</pre> | <pre>{<br/> "command": [<br/> "CMD-SHELL",<br/> "/probe.sh"<br/> ],<br/> "interval": 15,<br/> "retries": 3,<br/> "start_period": 60,<br/> "timeout": 5<br/>}</pre> | no |
232249
| <a name="input_dd_image_version"></a> [dd\_image\_version](#input\_dd\_image\_version) | Datadog Agent image version | `string` | `"latest"` | no |
233250
| <a name="input_dd_is_datadog_dependency_enabled"></a> [dd\_is\_datadog\_dependency\_enabled](#input\_dd\_is\_datadog\_dependency\_enabled) | Whether the Datadog Agent container is a dependency for other containers | `bool` | `false` | no |
234-
| <a name="input_dd_log_collection"></a> [dd\_log\_collection](#input\_dd\_log\_collection) | Configuration for Datadog Log Collection | <pre>object({<br/> enabled = optional(bool, false)<br/> fluentbit_config = optional(object({<br/> registry = optional(string, "public.ecr.aws/aws-observability/aws-for-fluent-bit")<br/> image_version = optional(string, "stable")<br/> cpu = optional(number)<br/> memory_limit_mib = optional(number)<br/> is_log_router_essential = optional(bool, false)<br/> is_log_router_dependency_enabled = optional(bool, false)<br/> environment = optional(list(map(string)), [{}])<br/> log_router_health_check = optional(object({<br/> command = optional(list(string))<br/> interval = optional(number)<br/> retries = optional(number)<br/> start_period = optional(number)<br/> timeout = optional(number)<br/> }),<br/> {<br/> command = ["CMD-SHELL", "exit 0"]<br/> interval = 5<br/> retries = 3<br/> start_period = 15<br/> timeout = 5<br/> }<br/> )<br/> firelens_options = optional(object({<br/> config_file_type = optional(string)<br/> config_file_value = optional(string)<br/> }))<br/> log_driver_configuration = optional(object({<br/> host_endpoint = optional(string, "http-intake.logs.datadoghq.com")<br/> tls = optional(bool)<br/> compress = optional(string)<br/> service_name = optional(string)<br/> source_name = optional(string)<br/> message_key = optional(string)<br/> }),<br/> {<br/> host_endpoint = "http-intake.logs.datadoghq.com"<br/> }<br/> )<br/> }),<br/> {<br/> fluentbit_config = {<br/> registry = "public.ecr.aws/aws-observability/aws-for-fluent-bit"<br/> image_version = "stable"<br/> log_driver_configuration = {<br/> host_endpoint = "http-intake.logs.datadoghq.com"<br/> }<br/> }<br/> }<br/> )<br/> })</pre> | <pre>{<br/> "enabled": false,<br/> "fluentbit_config": {<br/> "is_log_router_essential": false,<br/> "log_driver_configuration": {<br/> "host_endpoint": "http-intake.logs.datadoghq.com"<br/> }<br/> }<br/>}</pre> | no |
251+
| <a name="input_dd_log_collection"></a> [dd\_log\_collection](#input\_dd\_log\_collection) | Configuration for Datadog Log Collection | <pre>object({<br/> enabled = optional(bool, false)<br/> fluentbit_config = optional(object({<br/> registry = optional(string, "public.ecr.aws/aws-observability/aws-for-fluent-bit")<br/> image_version = optional(string, "stable")<br/> cpu = optional(number)<br/> memory_limit_mib = optional(number)<br/> is_log_router_essential = optional(bool, false)<br/> is_log_router_dependency_enabled = optional(bool, false)<br/> environment = optional(list(object({<br/> name = string<br/> value = string<br/> })), [])<br/> log_router_health_check = optional(object({<br/> command = optional(list(string))<br/> interval = optional(number)<br/> retries = optional(number)<br/> start_period = optional(number)<br/> timeout = optional(number)<br/> }),<br/> {<br/> command = ["CMD-SHELL", "exit 0"]<br/> interval = 5<br/> retries = 3<br/> start_period = 15<br/> timeout = 5<br/> }<br/> )<br/> firelens_options = optional(object({<br/> config_file_type = optional(string)<br/> config_file_value = optional(string)<br/> }))<br/> log_driver_configuration = optional(object({<br/> host_endpoint = optional(string, "http-intake.logs.datadoghq.com")<br/> tls = optional(bool)<br/> compress = optional(string)<br/> service_name = optional(string)<br/> source_name = optional(string)<br/> message_key = optional(string)<br/> }),<br/> {<br/> host_endpoint = "http-intake.logs.datadoghq.com"<br/> }<br/> )<br/> mountPoints = optional(list(object({<br/> sourceVolume : string,<br/> containerPath : string,<br/> readOnly : bool<br/> })), [])<br/> dependsOn = optional(list(object({<br/> containerName : string,<br/> condition : string<br/> })), [])<br/> }),<br/> {<br/> fluentbit_config = {<br/> registry = "public.ecr.aws/aws-observability/aws-for-fluent-bit"<br/> image_version = "stable"<br/> log_driver_configuration = {<br/> host_endpoint = "http-intake.logs.datadoghq.com"<br/> }<br/> }<br/> }<br/> )<br/> })</pre> | <pre>{<br/> "enabled": false,<br/> "fluentbit_config": {<br/> "is_log_router_essential": false,<br/> "log_driver_configuration": {<br/> "host_endpoint": "http-intake.logs.datadoghq.com"<br/> }<br/> }<br/>}</pre> | no |
235252
| <a name="input_dd_memory_limit_mib"></a> [dd\_memory\_limit\_mib](#input\_dd\_memory\_limit\_mib) | Datadog Agent container memory limit in MiB | `number` | `null` | no |
236253
| <a name="input_dd_registry"></a> [dd\_registry](#input\_dd\_registry) | Datadog Agent image registry | `string` | `"public.ecr.aws/datadog/agent"` | no |
237254
| <a name="input_dd_service"></a> [dd\_service](#input\_dd\_service) | The task service name. Used for tagging (UST) | `string` | `null` | no |

modules/ecs_fargate/datadog.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,11 +365,12 @@ locals {
365365
cpu = var.dd_log_collection.fluentbit_config.cpu
366366
memory_limit_mib = var.dd_log_collection.fluentbit_config.memory_limit_mib
367367
user = "0"
368-
mountPoints = []
368+
mountPoints = var.dd_log_collection.fluentbit_config.mountPoints
369369
environment = local.dd_log_agent_env
370370
portMappings = []
371371
systemControls = []
372372
volumesFrom = []
373+
dependsOn = var.dd_log_collection.fluentbit_config.dependsOn
373374
},
374375
var.dd_log_collection.fluentbit_config.log_router_health_check.command == null ? {} : {
375376
healthCheck = {

modules/ecs_fargate/variables.tf

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ variable "dd_log_collection" {
191191
memory_limit_mib = optional(number)
192192
is_log_router_essential = optional(bool, false)
193193
is_log_router_dependency_enabled = optional(bool, false)
194-
environment = optional(list(map(string)), [{}])
194+
environment = optional(list(object({
195+
name = string
196+
value = string
197+
})), [])
195198
log_router_health_check = optional(object({
196199
command = optional(list(string))
197200
interval = optional(number)
@@ -223,6 +226,15 @@ variable "dd_log_collection" {
223226
host_endpoint = "http-intake.logs.datadoghq.com"
224227
}
225228
)
229+
mountPoints = optional(list(object({
230+
sourceVolume : string,
231+
containerPath : string,
232+
readOnly : bool
233+
})), [])
234+
dependsOn = optional(list(object({
235+
containerName : string,
236+
condition : string
237+
})), [])
226238
}),
227239
{
228240
fluentbit_config = {

0 commit comments

Comments
 (0)