-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprovisioning.tf
105 lines (92 loc) · 2.76 KB
/
provisioning.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
data "template_cloudinit_config" "config" {
gzip = false
base64_encode = false
part {
content_type = "text/x-shellscript"
content = data.template_file.cloudinit.rendered
}
}
// generate dockercfg Authentication Format based Docker registry configuration
// see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html
data "template_file" "dockercfg_registry_config" {
count = length(keys(var.docker_registry_config))
template = file("${path.module}/docker-registry/dockercfg.tpl")
vars = {
repo = element(keys(var.docker_registry_config), count.index)
auth = element(
split(
",",
var.docker_registry_config[element(keys(var.docker_registry_config), count.index)],
),
0,
)
email = element(
split(
",",
var.docker_registry_config[element(keys(var.docker_registry_config), count.index)],
),
1,
)
}
}
// generate docker Authentication Format based Docker registry configuration
// see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html
data "template_file" "docker_registry_config" {
count = length(keys(var.docker_registry_config))
template = file("${path.module}/docker-registry/docker.tpl")
vars = {
repo = element(keys(var.docker_registry_config), count.index)
username = element(
split(
",",
var.docker_registry_config[element(keys(var.docker_registry_config), count.index)],
),
0,
)
password = element(
split(
",",
var.docker_registry_config[element(keys(var.docker_registry_config), count.index)],
),
1,
)
email = element(
split(
",",
var.docker_registry_config[element(keys(var.docker_registry_config), count.index)],
),
2,
)
}
}
data "template_file" "cloudinit" {
template = file("${path.module}/userdata/cloudinit.sh")
vars = {
cluster_name = local.name
ecs_engine_auth_type = local.ecs_engine_auth_type
list_of_registries = var.ecs_engine_auth_type == "dockercfg" ? local.ecs_engine_auth_data_dockercfg : local.ecs_engine_auth_data_docker
datadog_enable = local.datadog_enable
datadog_log_pointer_dir = local.datadog_log_pointer_dir
}
}
data "template_file" "setup" {
template = file("${path.module}/userdata/setup.sh")
vars = {
cluster_name = local.name
aws_region = data.aws_region.current.id
}
}
resource "aws_ssm_association" "setup" {
lifecycle {
ignore_changes = [association_name]
}
association_name = "${local.name}-setup"
name = "AWS-RunShellScript"
parameters = {
commands = data.template_file.setup.rendered
}
targets {
key = "tag:Name"
values = [local.name]
}
}