diff --git a/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/login.tf b/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/login.tf index 68a3c3cb5f..750d880ee3 100644 --- a/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/login.tf +++ b/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/login.tf @@ -37,7 +37,7 @@ module "login" { login_nodes = each.value - startup_scripts = local.login_startup_scripts + startup_scripts = concat(local.login_startup_scripts, each.value.startup_script) startup_scripts_timeout = var.login_startup_scripts_timeout network_storage = var.login_network_storage diff --git a/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/variables.tf b/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/variables.tf index 5c09fc8289..7eb4c1a114 100644 --- a/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/variables.tf +++ b/community/modules/scheduler/schedmd-slurm-gcp-v6-controller/variables.tf @@ -204,6 +204,10 @@ variable "login_nodes" { termination_action = optional(string) disk_encryption_key = optional(string) disk_encryption_key_service_account = optional(string) + startup_script = optional(list(object({ + filename = string + content = string + })), []) })) default = [] validation { diff --git a/community/modules/scheduler/schedmd-slurm-gcp-v6-login/main.tf b/community/modules/scheduler/schedmd-slurm-gcp-v6-login/main.tf index 153966f7a2..f3565ecb70 100644 --- a/community/modules/scheduler/schedmd-slurm-gcp-v6-login/main.tf +++ b/community/modules/scheduler/schedmd-slurm-gcp-v6-login/main.tf @@ -63,6 +63,11 @@ locals { scopes = var.service_account_scopes } + ghpc_startup_script = [{ + filename = "ghpc_login_startup.sh" + content = var.startup_script + }] + # lower, replace `_` with `-`, and remove any non-alphanumeric characters group_name = replace( replace( @@ -114,6 +119,8 @@ locals { static_ips = var.static_ips bandwidth_tier = var.bandwidth_tier + startup_script = local.ghpc_startup_script + subnetwork = var.subnetwork_self_link tags = var.tags } diff --git a/community/modules/scheduler/schedmd-slurm-gcp-v6-login/variables.tf b/community/modules/scheduler/schedmd-slurm-gcp-v6-login/variables.tf index 98ce05f7dd..ce098fcc59 100644 --- a/community/modules/scheduler/schedmd-slurm-gcp-v6-login/variables.tf +++ b/community/modules/scheduler/schedmd-slurm-gcp-v6-login/variables.tf @@ -430,3 +430,9 @@ variable "subnetwork_self_link" { type = string description = "Subnet to deploy to." } + +variable "startup_script" { + description = "Startup script used by the login VMs." + type = string + default = "# no-op" +}