20482: Improves readability of instance profile assignment code.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 11 May 2023 12:48:07 +0000 (09:48 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 11 May 2023 12:48:07 +0000 (09:48 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

tools/salt-install/terraform/aws/services/locals.tf
tools/salt-install/terraform/aws/services/main.tf

index 191b7e03e0c60df38a467b7a62c7553e83299cb5..9b95ebdbc748b003ca082d19b67de6fbeea3c795 100644 (file)
@@ -18,4 +18,10 @@ locals {
   instance_ami_id = var.instance_ami != "" ? var.instance_ami : data.aws_ami.debian-11.image_id
   custom_tags = data.terraform_remote_state.vpc.outputs.custom_tags
   compute_node_iam_role_name = data.terraform_remote_state.data-storage.outputs.compute_node_iam_role_name
+  instance_profile = {
+    default = aws_iam_instance_profile.default_instance_profile
+    controller = aws_iam_instance_profile.dispatcher_instance_profile
+    keep0 = aws_iam_instance_profile.keepstore_instance_profile
+    keep1 = aws_iam_instance_profile.keepstore_instance_profile
+  }
 }
index 48b6ef23cb6b5160831baafb5b20ce15b5b3c244..06b89dc779cecf34d683b3c217aa353ecd999f93 100644 (file)
@@ -58,9 +58,10 @@ resource "aws_instance" "arvados_service" {
   subnet_id = contains(local.user_facing_hosts, each.value) ? data.terraform_remote_state.vpc.outputs.public_subnet_id : data.terraform_remote_state.vpc.outputs.private_subnet_id
   vpc_security_group_ids = [ data.terraform_remote_state.vpc.outputs.arvados_sg_id ]
   # This should be done in a more readable way
-  iam_instance_profile = each.value == "controller" ? aws_iam_instance_profile.dispatcher_instance_profile.name : length(regexall("^keep[0-9]+", each.value)) > 0 ? aws_iam_instance_profile.keepstore_instance_profile.name : aws_iam_instance_profile.default_instance_profile.name
+  # iam_instance_profile = each.value == "controller" ? aws_iam_instance_profile.dispatcher_instance_profile.name : length(regexall("^keep[0-9]+", each.value)) > 0 ? aws_iam_instance_profile.keepstore_instance_profile.name : aws_iam_instance_profile.default_instance_profile.name
+  iam_instance_profile = try(local.instance_profile[each.value], local.instance_profile.default).name
   tags = {
-    Name = "arvados_service_${each.value}"
+    Name = "${local.cluster_name}_arvados_service_${each.value}"
   }
   root_block_device {
     volume_type = "gp3"