@@ -128,10 +128,43 @@ deployment_groups:
128128 machine_type : n2-standard-4
129129 enable_login_public_ips : true
130130
131+ - id : controller_startup
132+ source : modules/scripts/startup-script
133+ settings :
134+ runners :
135+ - type : shell
136+ destination : stage_scripts.sh
137+ content : |
138+ #!/bin/bash
139+ SLURM_ROOT=/opt/apps/adm/slurm
140+ PARTITION_NAME=$(h4d_partition.partitions[0].partition_name)
141+ mkdir -m 0755 -p "${SLURM_ROOT}/scripts"
142+
143+ # enable the use of password-free sudo within Slurm jobs on all compute nodes
144+ # feature is restricted to users with OS Admin Login IAM role
145+ # https://cloud.google.com/iam/docs/understanding-roles#compute.osAdminLogin
146+ mkdir -p "${SLURM_ROOT}/prolog_slurmd.d"
147+ mkdir -p "${SLURM_ROOT}/epilog_slurmd.d"
148+ curl -s -o "${SLURM_ROOT}/scripts/sudo-oslogin" \
149+ https://raw.githubusercontent.com/GoogleCloudPlatform/slurm-gcp/master/tools/prologs-epilogs/sudo-oslogin
150+ chmod 0755 "${SLURM_ROOT}/scripts/sudo-oslogin"
151+
152+ ln -s "${SLURM_ROOT}/scripts/sudo-oslogin" "${SLURM_ROOT}/prolog_slurmd.d/sudo-oslogin.prolog_slurmd"
153+ ln -s "${SLURM_ROOT}/scripts/sudo-oslogin" "${SLURM_ROOT}/epilog_slurmd.d/sudo-oslogin.epilog_slurmd"
154+
155+ # enable an RDMA health check that runs prior to any H4D job
156+ mkdir -p "${SLURM_ROOT}/partition-${PARTITION_NAME}-prolog_slurmd.d"
157+ curl -s -o "${SLURM_ROOT}/partition-${PARTITION_NAME}-prolog_slurmd.d/irdma_health_check.prolog_slurmd" \
158+ https://raw.githubusercontent.com/GoogleCloudPlatform/slurm-gcp/master/tools/prologs-epilogs/irdma_health_check
159+ chmod 0755 "${SLURM_ROOT}/partition-${PARTITION_NAME}-prolog_slurmd.d/irdma_health_check.prolog_slurmd"
160+
161+
131162 - id : slurm_controller
132163 source : community/modules/scheduler/schedmd-slurm-gcp-v6-controller
133164 use : [h4d-slurm-net-0, h4d_partition, slurm_login, homefs]
134165 settings :
135166 enable_controller_public_ips : true
167+ controller_startup_script : $(controller_startup.startup_script)
168+ enable_external_prolog_epilog : true
136169 cloud_parameters :
137170 unkillable_step_timeout : 900
0 commit comments