Skip to content

Commit 7e4c01c

Browse files
Datadog launched in as ECS_SERVICE using daemon scheduler
1 parent c24c648 commit 7e4c01c

File tree

5 files changed

+53
-19
lines changed

5 files changed

+53
-19
lines changed

main.tf

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ module "autoscalinggroup" {
3737
tags = "${var.tags}"
3838
subnet_ids = ["${var.subnet_ids}"]
3939
environment = "${var.environment}"
40-
datadog_enabled = "${var.datadog_enabled}"
41-
datadog_api_key = "${var.datadog_api_key}"
4240
}
4341

4442
#
@@ -52,3 +50,16 @@ module "ecs_instance_scaling" {
5250
ecs_instance_draining_lambda_arn = "${var.ecs_instance_draining_lambda_arn}"
5351
ecs_instance_scaling_properties = ["${var.ecs_instance_scaling_properties}"]
5452
}
53+
54+
#
55+
# Datadog ECS Service
56+
#
57+
module "datadog" {
58+
source = "./modules/datadog/"
59+
create = "${var.datadog_enabled && var.create}"
60+
name = "${var.name}"
61+
cluster_id = "${aws_ecs_cluster.this.id}"
62+
datadog_enabled = "${var.datadog_enabled}"
63+
datadog_api_key = "${var.datadog_api_key}"
64+
environment = "${var.environment}"
65+
}

modules/autoscalinggroup/amazon_ecs_ami.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,10 @@
11
#!/bin/bash
22
set -Eeuxo pipefail
33

4-
cluster="${name}"
5-
task_def="dd-agent-task-${name}"
6-
74
echo ECS_CLUSTER=${name} >> /etc/ecs/ecs.config
85

96
echo iptables --insert FORWARD 1 --in-interface docker+ --destination 169.254.169.254/32 --jump DROP >> /etc/rc.local
107

11-
12-
start ecs
13-
yum install -y aws-cli jq
14-
instance_arn=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F/ '{print $NF}' )
15-
#
16-
# Run Task by Terraform.
17-
#
18-
if [ "${datadog_enabled}" == "1" ]; then
19-
echo aws ecs start-task --cluster ${name} --task-definition $$task_def --container-instances $$instance_arn --region ${region} >> /etc/rc.local
20-
fi
21-
228
# EFS MOUNTING
239
if [ "${efs_enabled}" == "1" ]; then
2410
mkdir /mnt/efs

modules/autoscalinggroup/main.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ data "template_file" "cloud_config_amazon" {
2222
region = "${data.aws_region._.name}"
2323
name = "${local.name}"
2424
efs_enabled = "${lookup(var.cluster_properties, "efs_enabled","0")}"
25-
datadog_enabled = "${var.datadog_enabled ? "1" : "0" }"
2625
efs_id = "${lookup(var.cluster_properties, "efs_id","")}"
2726
custom_userdata = "${lookup(var.cluster_properties, "ec2_custom_userdata","")}"
2827
}

modules/autoscalinggroup/datadog.tf renamed to modules/datadog/main.tf

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
/* "Datadog agent ECS TASK" */
22

3+
data "aws_region" "_" {}
4+
5+
36
resource "aws_ecs_task_definition" "datadog_agent" {
4-
count = "${(var.datadog_enabled && var.create ) ? 1 : 0}"
5-
family = "${local.name}-dd-agent-task"
7+
count = "${var.create ? 1 : 0}"
8+
family = "${var.name}-dd-agent-task"
69
network_mode = "host"
710

811
volume {
@@ -64,3 +67,12 @@ resource "aws_ecs_task_definition" "datadog_agent" {
6467
]
6568
EOF
6669
}
70+
71+
resource "aws_ecs_service" "datadog" {
72+
count = "${var.create ? 1 : 0}"
73+
name = "dd-agent-task"
74+
cluster = "${var.cluster_id}"
75+
task_definition = "${aws_ecs_task_definition.datadog_agent.arn}"
76+
scheduling_strategy = "DAEMON"
77+
78+
}

modules/datadog/variables.tf

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
variable "create" {
2+
default = true
3+
}
4+
5+
variable "name" {
6+
description = "The name of the Cluster"
7+
}
8+
9+
variable "cluster_id" {
10+
description = "The id of the Cluster"
11+
}
12+
13+
variable "datadog_enabled" {
14+
description = "Is datadog enabled ? "
15+
default = false
16+
}
17+
18+
variable "datadog_api_key" {
19+
description = "Datadog API Key"
20+
default = false
21+
}
22+
23+
variable "environment" {
24+
description = "Which environment are we in ? For datadog"
25+
type = "string"
26+
}

0 commit comments

Comments
 (0)