[arvados] updated: 2.6.0-154-gc311969bd

git repository hosting git at public.arvados.org
Thu May 11 13:03:46 UTC 2023


Summary of changes:
 tools/salt-install/terraform/aws/services/locals.tf        |  6 ++++++
 tools/salt-install/terraform/aws/services/main.tf          |  7 +++----
 tools/salt-install/terraform/aws/services/terraform.tfvars | 11 ++++++++++-
 tools/salt-install/terraform/aws/services/variables.tf     |  9 +++++++++
 4 files changed, 28 insertions(+), 5 deletions(-)

       via  c311969bdd03f411a202983e7a0a11f4d9901243 (commit)
       via  c14cc37e0ced977388baaff750648dbbfd9a36de (commit)
      from  705c7711ba7a741c85a57d260cc63e8183373a86 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit c311969bdd03f411a202983e7a0a11f4d9901243
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Thu May 11 10:03:20 2023 -0300

    20482: Allows the site admin to specify instance volume sizes per node.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/tools/salt-install/terraform/aws/services/main.tf b/tools/salt-install/terraform/aws/services/main.tf
index 06b89dc77..9ca6d0fb1 100644
--- a/tools/salt-install/terraform/aws/services/main.tf
+++ b/tools/salt-install/terraform/aws/services/main.tf
@@ -57,15 +57,13 @@ resource "aws_instance" "arvados_service" {
   private_ip = local.private_ip[each.value]
   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 = try(local.instance_profile[each.value], local.instance_profile.default).name
   tags = {
     Name = "${local.cluster_name}_arvados_service_${each.value}"
   }
   root_block_device {
     volume_type = "gp3"
-    volume_size = (each.value == "controller" && !local.use_external_db) ? 70 : 20
+    volume_size = try(var.instance_volume_size[each.value], var.instance_volume_size.default)
   }
 
   lifecycle {
diff --git a/tools/salt-install/terraform/aws/services/terraform.tfvars b/tools/salt-install/terraform/aws/services/terraform.tfvars
index 856ea2396..3a2bf1d8e 100644
--- a/tools/salt-install/terraform/aws/services/terraform.tfvars
+++ b/tools/salt-install/terraform/aws/services/terraform.tfvars
@@ -11,12 +11,21 @@
 #   controller = "c5a.4xlarge"
 # }
 
+# Set the volume size (in GiB) per service node.
+# Default: 100 for controller, 20 the rest.
+# NOTE: The service node will need to be rebooted after increasing its volume's
+# size.
+# instance_volume_size = {
+#   default = 20
+#   controller = 300
+# }
+
 # AWS secret's name which holds the SSL certificate private key's password.
 # Default: "arvados-ssl-privkey-password"
 # ssl_password_secret_name_suffix = "some-name-suffix"
 
 # User for software deployment. Depends on the AMI's distro.
-# Default: 'admin'
+# Default: "admin"
 # deploy_user = "ubuntu"
 
 # Instance AMI to use for service nodes. Default: latest from Debian 11
diff --git a/tools/salt-install/terraform/aws/services/variables.tf b/tools/salt-install/terraform/aws/services/variables.tf
index 08675a84f..7e5d9056d 100644
--- a/tools/salt-install/terraform/aws/services/variables.tf
+++ b/tools/salt-install/terraform/aws/services/variables.tf
@@ -10,6 +10,15 @@ variable "instance_type" {
   }
 }
 
+variable "instance_volume_size" {
+  description = "EC2 volume size in GiB per service node"
+  type = map(number)
+  default = {
+    default = 20
+    controller = 100
+  }
+}
+
 variable "pubkey_path" {
   description = "Path to the file containing the public SSH key"
   type = string

commit c14cc37e0ced977388baaff750648dbbfd9a36de
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Thu May 11 09:48:07 2023 -0300

    20482: Improves readability of instance profile assignment code.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/tools/salt-install/terraform/aws/services/locals.tf b/tools/salt-install/terraform/aws/services/locals.tf
index 191b7e03e..9b95ebdbc 100644
--- a/tools/salt-install/terraform/aws/services/locals.tf
+++ b/tools/salt-install/terraform/aws/services/locals.tf
@@ -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
+  }
 }
diff --git a/tools/salt-install/terraform/aws/services/main.tf b/tools/salt-install/terraform/aws/services/main.tf
index 48b6ef23c..06b89dc77 100644
--- a/tools/salt-install/terraform/aws/services/main.tf
+++ b/tools/salt-install/terraform/aws/services/main.tf
@@ -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"

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list