This module creates a login node for a Slurm cluster based on the slurm-gcp slurm_instance_template and slurm_login_instance terraform modules. The login node is used in conjunction with the Slurm controller.
- id: slurm_login
source: community/modules/scheduler/schedmd-slurm-gcp-v6-login
use:
- network
settings:
group_name: login
machine_type: n2-standard-4
- id: slurm_controller
source: community/modules/scheduler/schedmd-slurm-gcp-v6-controller
use:
- network
- slurm_login
This creates a Slurm login node which is:
- connected to the primary subnet of network1 via
use
- associated with the
slurm_controller
module as the slurm controller viause
- of VM machine type
n2-standard-4
For more information on creating valid custom images for the login node VM instances or for custom instance templates, see our vm-images.md documentation page.
More information on GPU support in Slurm on GCP and other Cluster Toolkit modules can be found at docs/gpu-support.md
The Cluster Toolkit team maintains the wrapper around the slurm-on-gcp terraform modules. For support with the underlying modules, see the instructions in the slurm-gcp README.
Name | Version |
---|---|
terraform | >= 1.3 |
>= 3.83 |
Name | Version |
---|---|
>= 3.83 |
No modules.
Name | Type |
---|---|
google_compute_image.slurm | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
additional_disks | List of maps of disks. | list(object({ |
[] |
no |
additional_networks | Additional network interface details for GCE, if any. | list(object({ |
[] |
no |
allow_automatic_updates | If false, disables automatic system package updates on the created instances. This feature is only available on supported images (or images derived from them). For more details, see https://cloud.google.com/compute/docs/instances/create-hpc-vm#disable_automatic_updates |
bool |
true |
no |
bandwidth_tier | Configures the network interface card and the maximum egress bandwidth for VMs. - Setting platform_default respects the Google Cloud Platform API default values for networking.- Setting virtio_enabled explicitly selects the VirtioNet network adapter.- Setting gvnic_enabled selects the gVNIC network adapter (without Tier 1 high bandwidth).- Setting tier_1_enabled selects both the gVNIC adapter and Tier 1 high bandwidth networking.- Note: both gVNIC and Tier 1 networking require a VM image with gVNIC support as well as specific VM families and shapes. - See official docs for more details. |
string |
"platform_default" |
no |
can_ip_forward | Enable IP forwarding, for NAT instances for example. | bool |
false |
no |
disable_login_public_ips | DEPRECATED: Use enable_login_public_ips instead. |
bool |
null |
no |
disable_smt | DEPRECATED: Use enable_smt instead. |
bool |
null |
no |
disk_auto_delete | Whether or not the boot disk should be auto-deleted. | bool |
true |
no |
disk_labels | Labels specific to the boot disk. These will be merged with var.labels. | map(string) |
{} |
no |
disk_size_gb | Boot disk size in GB. | number |
50 |
no |
disk_type | Boot disk type, can be either hyperdisk-balanced, pd-ssd, pd-standard, pd-balanced, or pd-extreme. | string |
"pd-ssd" |
no |
enable_confidential_vm | Enable the Confidential VM configuration. Note: the instance image must support option. | bool |
false |
no |
enable_login_public_ips | If set to true. The login node will have a random public IP assigned to it. | bool |
false |
no |
enable_oslogin | Enables Google Cloud os-login for user login and authentication for VMs. See https://cloud.google.com/compute/docs/oslogin |
bool |
true |
no |
enable_shielded_vm | Enable the Shielded VM configuration. Note: the instance image must support option. | bool |
false |
no |
enable_smt | Enables Simultaneous Multi-Threading (SMT) on instance. | bool |
false |
no |
guest_accelerator | List of the type and count of accelerator cards attached to the instance. | list(object({ |
[] |
no |
instance_image | Defines the image that will be used in the Slurm controller VM instance. Expected Fields: name: The name of the image. Mutually exclusive with family. family: The image family to use. Mutually exclusive with name. project: The project where the image is hosted. For more information on creating custom images that comply with Slurm on GCP see the "Slurm on GCP Custom Images" section in docs/vm-images.md. |
map(string) |
{ |
no |
instance_image_custom | A flag that designates that the user is aware that they are requesting to use a custom and potentially incompatible image for this Slurm on GCP module. If the field is set to false, only the compatible families and project names will be accepted. The deployment will fail with any other image family or name. If set to true, no checks will be done. See: https://goo.gle/hpc-slurm-images |
bool |
false |
no |
instance_template | DEPRECATED: Instance template can not be specified for login nodes. | string |
null |
no |
labels | Labels, provided as a map. | map(string) |
{} |
no |
machine_type | Machine type to create. | string |
"c2-standard-4" |
no |
metadata | Metadata, provided as a map. | map(string) |
{} |
no |
min_cpu_platform | Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list: https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform |
string |
null |
no |
name_prefix | Unique name prefix for login nodes. Automatically populated by the module id if not set. If setting manually, ensure a unique value across all login groups. |
string |
n/a | yes |
num_instances | Number of instances to create. This value is ignored if static_ips is provided. | number |
1 |
no |
on_host_maintenance | Instance availability Policy. | string |
"MIGRATE" |
no |
preemptible | Allow the instance to be preempted. | bool |
false |
no |
project_id | Project ID to create resources in. | string |
n/a | yes |
region | Region where the instances should be created. | string |
null |
no |
service_account | DEPRECATED: Use service_account_email and service_account_scopes instead. |
object({ |
null |
no |
service_account_email | Service account e-mail address to attach to the login instances. | string |
null |
no |
service_account_scopes | Scopes to attach to the login instances. | set(string) |
[ |
no |
shielded_instance_config | Shielded VM configuration for the instance. Note: not used unless enable_shielded_vm is 'true'. enable_integrity_monitoring : Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. enable_secure_boot : Verify the digital signature of all boot components, and halt the boot process if signature verification fails. enable_vtpm : Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. |
object({ |
{ |
no |
static_ips | List of static IPs for VM instances. | list(string) |
[] |
no |
subnetwork_self_link | Subnet to deploy to. | string |
n/a | yes |
tags | Network tag list. | list(string) |
[] |
no |
zone | Zone where the instances should be created. If not specified, instances will be spread across available zones in the region. |
string |
null |
no |
Name | Description |
---|---|
login_nodes | Slurm login instance definition. |