14
14
# See the License for the specific language governing permissions and
15
15
# limitations under the License.
16
16
17
- provider "aws" {
18
- region = var. aws_region
17
+ provider "aws" {}
18
+
19
+ data "aws_region" "current" {}
20
+
21
+ resource "random_string" "default_prefix" {
22
+ length = 9
23
+ upper = false
24
+ special = false
25
+ }
26
+
27
+ locals {
28
+ prefix = var. prefix == " " ? random_string. default_prefix . result : var. prefix
29
+ subnet_id = var. subnet_id == " " ? aws_default_subnet. default . id : var. subnet_id
30
+ credentials = var. credentials == " " ? pathexpand (" ~/.aws/credentials" ) : var. credentials
31
+ profile = var. profile == " " ? " default" : var. profile
32
+ region = var. region == " " ? data. aws_region . current . name : var. region
19
33
}
20
34
21
35
resource "aws_s3_bucket" "bucket" {
22
- bucket = " ${ var . prefix } -bucket"
36
+ bucket = " ${ local . prefix } -bucket"
23
37
force_destroy = true
24
38
}
25
39
@@ -38,7 +52,7 @@ resource "aws_s3_bucket_acl" "bucket_acl" {
38
52
}
39
53
40
54
resource "aws_ecr_repository" "ecr_repository" {
41
- name = " ${ var . prefix } -ecr-repo"
55
+ name = " ${ local . prefix } -ecr-repo"
42
56
image_tag_mutability = " IMMUTABLE"
43
57
44
58
force_delete = true
@@ -49,45 +63,45 @@ resource "aws_ecr_repository" "ecr_repository" {
49
63
}
50
64
51
65
resource "aws_cloudwatch_log_group" "log_group" {
52
- name = " ${ var . prefix } -log-group"
66
+ name = " ${ local . prefix } -log-group"
53
67
}
54
68
55
69
resource "aws_ecs_cluster" "ecs_cluster" {
56
- name = " ${ var . prefix } -ecs-cluster"
70
+ name = " ${ local . prefix } -ecs-cluster"
57
71
58
72
configuration {
59
73
execute_command_configuration {
60
- logging = " OVERRIDE"
74
+ logging = " OVERRIDE"
61
75
log_configuration {
62
- cloud_watch_log_group_name = aws_cloudwatch_log_group. log_group . name
76
+ cloud_watch_log_group_name = aws_cloudwatch_log_group. log_group . name
63
77
}
64
78
}
65
79
}
66
80
}
67
81
68
82
# Executor Covalent config section
69
- data template_file executor_config {
70
- template = " ${ file (" ${ path . module } /ecs.conf.tftpl" )} "
83
+ data " template_file" " executor_config" {
84
+ template = file (" ${ path . module } /ecs.conf.tftpl" )
71
85
72
86
vars = {
73
- credentials= var.credentials
74
- profile= var.profile
75
- region= var.aws_region
76
- s3_bucket_name= aws_s3_bucket.bucket.id
77
- ecs_cluster_name= aws_ecs_cluster.ecs_cluster.name
78
- ecs_task_execution_role_name= aws_iam_role.ecs_tasks_execution_role.name
79
- ecs_task_role_name= aws_iam_role.task_role.name
80
- ecs_task_subnet_id= module.vpc.public_subnets[0 ]
81
- ecs_task_security_group_id= aws_security_group.sg.id
82
- ecs_task_log_group_name= aws_cloudwatch_log_group.log_group.name
83
- vcpu= var.vcpus
84
- memory= var.memory
85
- cache_dir= var.cache_dir
86
- poll_freq= var.poll_freq
87
+ credentials = var.credentials
88
+ profile = var.profile
89
+ region = var.region
90
+ s3_bucket_name = aws_s3_bucket.bucket.id
91
+ ecs_cluster_name = aws_ecs_cluster.ecs_cluster.name
92
+ ecs_task_execution_role_name = aws_iam_role.ecs_tasks_execution_role.name
93
+ ecs_task_role_name = aws_iam_role.task_role.name
94
+ ecs_task_subnet_id = module.vpc.public_subnets[0 ]
95
+ ecs_task_security_group_id = aws_security_group.sg.id
96
+ ecs_task_log_group_name = aws_cloudwatch_log_group.log_group.name
97
+ vcpu = var.vcpus
98
+ memory = var.memory
99
+ cache_dir = var.cache_dir
100
+ poll_freq = var.poll_freq
87
101
}
88
102
}
89
103
90
- resource local_file executor_config {
91
- content = data. template_file . executor_config . rendered
104
+ resource " local_file" " executor_config" {
105
+ content = data. template_file . executor_config . rendered
92
106
filename = " ${ path . module } /ecs.conf"
93
107
}
0 commit comments