Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ No resources.
| Name | Description | Type | Default | Required |
| ---- | ----------- | ---- | ------- | :------: |
| <a name="input_access_config"></a> [access\_config](#input\_access\_config) | Access configurations, i.e. IPs via which the VM instance can be accessed via the Internet. | <pre>list(object({<br/> nat_ip = string<br/> network_tier = string<br/> }))</pre> | `[]` | no |
| <a name="input_additional_disks"></a> [additional\_disks](#input\_additional\_disks) | Configurations of additional disks to be included on the partition nodes. | <pre>list(object({<br/> disk_name = string<br/> device_name = string<br/> disk_size_gb = number<br/> disk_type = string<br/> disk_labels = map(string)<br/> auto_delete = bool<br/> boot = bool<br/> }))</pre> | `[]` | no |
| <a name="input_additional_disks"></a> [additional\_disks](#input\_additional\_disks) | Configurations of additional disks to be included on the partition nodes. | <pre>list(object({<br/> disk_name = string<br/> device_name = string<br/> disk_size_gb = number<br/> disk_type = string<br/> disk_storage_pool = optional(string)<br/> disk_labels = map(string)<br/> auto_delete = bool<br/> boot = bool<br/> }))</pre> | `[]` | no |
| <a name="input_additional_networks"></a> [additional\_networks](#input\_additional\_networks) | Additional network interface details for GCE, if any. | <pre>list(object({<br/> network = string<br/> subnetwork = string<br/> subnetwork_project = string<br/> network_ip = string<br/> nic_type = string<br/> stack_type = string<br/> queue_count = number<br/> access_config = list(object({<br/> nat_ip = string<br/> network_tier = string<br/> }))<br/> ipv6_access_config = list(object({<br/> network_tier = string<br/> }))<br/> alias_ip_range = list(object({<br/> ip_cidr_range = string<br/> subnetwork_range_name = string<br/> }))<br/> }))</pre> | `[]` | no |
| <a name="input_advanced_machine_features"></a> [advanced\_machine\_features](#input\_advanced\_machine\_features) | See https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance_template#nested_advanced_machine_features | <pre>object({<br/> enable_nested_virtualization = optional(bool)<br/> threads_per_core = optional(number)<br/> turbo_mode = optional(string)<br/> visible_core_count = optional(number)<br/> performance_monitoring_unit = optional(string)<br/> enable_uefi_networking = optional(bool)<br/> })</pre> | <pre>{<br/> "threads_per_core": 1<br/>}</pre> | no |
| <a name="input_allow_automatic_updates"></a> [allow\_automatic\_updates](#input\_allow\_automatic\_updates) | If false, disables automatic system package updates on the created instances. This feature is<br/>only available on supported images (or images derived from them). For more details, see<br/>https://cloud.google.com/compute/docs/instances/create-hpc-vm#disable_automatic_updates | `bool` | `true` | no |
Expand All @@ -93,6 +93,7 @@ No resources.
| <a name="input_disk_auto_delete"></a> [disk\_auto\_delete](#input\_disk\_auto\_delete) | Whether or not the boot disk should be auto-deleted. | `bool` | `true` | no |
| <a name="input_disk_labels"></a> [disk\_labels](#input\_disk\_labels) | Labels specific to the boot disk. These will be merged with var.labels. | `map(string)` | `{}` | no |
| <a name="input_disk_size_gb"></a> [disk\_size\_gb](#input\_disk\_size\_gb) | Size of boot disk to create for the partition compute nodes. | `number` | `50` | no |
| <a name="input_disk_storage_pool"></a> [disk\_storage\_pool](#input\_disk\_storage\_pool) | Storage pool to use for the node's boot disk. Note that storage pools are only supported with Hyperdisk types (balanced or throughput). You must provide an existing storage pool, as this module does not create new ones. | `string` | `null` | no |
| <a name="input_disk_type"></a> [disk\_type](#input\_disk\_type) | Boot disk type, can be either hyperdisk-balanced, pd-ssd, pd-standard, pd-balanced, or pd-extreme. | `string` | `"pd-standard"` | no |
| <a name="input_enable_confidential_vm"></a> [enable\_confidential\_vm](#input\_enable\_confidential\_vm) | Enable the Confidential VM configuration. Note: the instance image must support option. | `bool` | `false` | no |
| <a name="input_enable_oslogin"></a> [enable\_oslogin](#input\_enable\_oslogin) | Enables Google Cloud os-login for user login and authentication for VMs.<br/>See https://cloud.google.com/compute/docs/oslogin | `bool` | `true` | no |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,14 @@ locals {

additional_disks = [
for ad in var.additional_disks : {
disk_name = ad.disk_name
device_name = ad.device_name
disk_type = ad.disk_type
disk_size_gb = ad.disk_size_gb
disk_labels = merge(ad.disk_labels, local.labels)
auto_delete = ad.auto_delete
boot = ad.boot
disk_name = ad.disk_name
device_name = ad.device_name
disk_type = ad.disk_type
disk_storage_pool = ad.disk_storage_pool
disk_size_gb = ad.disk_size_gb
disk_labels = merge(ad.disk_labels, local.labels)
auto_delete = ad.auto_delete
boot = ad.boot
}
]

Expand Down Expand Up @@ -93,11 +94,12 @@ module "slurm_nodeset_template" {
slurm_bucket_path = var.slurm_bucket_path
metadata = local.metadata

additional_disks = local.additional_disks
disk_auto_delete = var.disk_auto_delete
disk_labels = merge(local.labels, var.disk_labels)
disk_size_gb = var.disk_size_gb
disk_type = var.disk_type
additional_disks = local.additional_disks
disk_auto_delete = var.disk_auto_delete
disk_labels = merge(local.labels, var.disk_labels)
disk_size_gb = var.disk_size_gb
disk_type = var.disk_type
disk_storage_pool = var.disk_storage_pool

bandwidth_tier = var.bandwidth_tier
can_ip_forward = var.can_ip_forward
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,12 @@ variable "disk_type" {
default = "pd-standard"
}

variable "disk_storage_pool" {
description = "Storage pool to use for the node's boot disk. Note that storage pools are only supported with Hyperdisk types (balanced or throughput). You must provide an existing storage pool, as this module does not create new ones."
type = string
default = null
}

variable "disk_size_gb" {
description = "Size of boot disk to create for the partition compute nodes."
type = number
Expand All @@ -144,13 +150,14 @@ variable "disk_labels" {
variable "additional_disks" {
description = "Configurations of additional disks to be included on the partition nodes."
type = list(object({
disk_name = string
device_name = string
disk_size_gb = number
disk_type = string
disk_labels = map(string)
auto_delete = bool
boot = bool
disk_name = string
device_name = string
disk_size_gb = number
disk_type = string
disk_storage_pool = optional(string)
disk_labels = map(string)
auto_delete = bool
boot = bool
}))
default = []
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ modules. For support with the underlying modules, see the instructions in the
| ---- | ----------- | ---- | ------- | :------: |
| <a name="input_accelerator_topology"></a> [accelerator\_topology](#input\_accelerator\_topology) | Specifies the shape of the Accelerator (GPU/TPU) slice. | `string` | `null` | no |
| <a name="input_access_config"></a> [access\_config](#input\_access\_config) | Access configurations, i.e. IPs via which the VM instance can be accessed via the Internet. | <pre>list(object({<br/> nat_ip = string<br/> network_tier = string<br/> }))</pre> | `[]` | no |
| <a name="input_additional_disks"></a> [additional\_disks](#input\_additional\_disks) | Configurations of additional disks to be included on the partition nodes. | <pre>list(object({<br/> disk_name = optional(string)<br/> device_name = optional(string)<br/> disk_size_gb = optional(number)<br/> disk_type = optional(string)<br/> disk_labels = optional(map(string))<br/> auto_delete = optional(bool)<br/> boot = optional(bool)<br/> disk_resource_manager_tags = optional(map(string))<br/> disk_encryption_key = optional(string)<br/> disk_encryption_key_service_account = optional(string)<br/> }))</pre> | `[]` | no |
| <a name="input_additional_disks"></a> [additional\_disks](#input\_additional\_disks) | Configurations of additional disks to be included on the partition nodes. | <pre>list(object({<br/> disk_name = optional(string)<br/> device_name = optional(string)<br/> disk_size_gb = optional(number)<br/> disk_type = optional(string)<br/> disk_storage_pool = optional(string)<br/> disk_labels = optional(map(string))<br/> auto_delete = optional(bool)<br/> boot = optional(bool)<br/> disk_resource_manager_tags = optional(map(string))<br/> disk_encryption_key = optional(string)<br/> disk_encryption_key_service_account = optional(string)<br/> }))</pre> | `[]` | no |
| <a name="input_additional_networks"></a> [additional\_networks](#input\_additional\_networks) | Additional network interface details for GCE, if any. | <pre>list(object({<br/> network = optional(string)<br/> subnetwork = string<br/> subnetwork_project = optional(string)<br/> network_ip = optional(string, "")<br/> nic_type = optional(string)<br/> stack_type = optional(string)<br/> queue_count = optional(number)<br/> access_config = optional(list(object({<br/> nat_ip = string<br/> network_tier = string<br/> })), [])<br/> ipv6_access_config = optional(list(object({<br/> network_tier = string<br/> })), [])<br/> alias_ip_range = optional(list(object({<br/> ip_cidr_range = string<br/> subnetwork_range_name = string<br/> })), [])<br/> }))</pre> | `[]` | no |
| <a name="input_advanced_machine_features"></a> [advanced\_machine\_features](#input\_advanced\_machine\_features) | See https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance_template#nested_advanced_machine_features | <pre>object({<br/> enable_nested_virtualization = optional(bool)<br/> threads_per_core = optional(number)<br/> turbo_mode = optional(string)<br/> visible_core_count = optional(number)<br/> performance_monitoring_unit = optional(string)<br/> enable_uefi_networking = optional(bool)<br/> })</pre> | <pre>{<br/> "threads_per_core": 1<br/>}</pre> | no |
| <a name="input_allow_automatic_updates"></a> [allow\_automatic\_updates](#input\_allow\_automatic\_updates) | If false, disables automatic system package updates on the created instances. This feature is<br/>only available on supported images (or images derived from them). For more details, see<br/>https://cloud.google.com/compute/docs/instances/create-hpc-vm#disable_automatic_updates | `bool` | `true` | no |
Expand All @@ -209,6 +209,7 @@ modules. For support with the underlying modules, see the instructions in the
| <a name="input_disk_labels"></a> [disk\_labels](#input\_disk\_labels) | Labels specific to the boot disk. These will be merged with var.labels. | `map(string)` | `{}` | no |
| <a name="input_disk_resource_manager_tags"></a> [disk\_resource\_manager\_tags](#input\_disk\_resource\_manager\_tags) | (Optional) A set of key/value resource manager tag pairs to bind to the instance disks. Keys must be in the format tagKeys/{tag\_key\_id}, and values are in the format tagValues/456. | `map(string)` | `{}` | no |
| <a name="input_disk_size_gb"></a> [disk\_size\_gb](#input\_disk\_size\_gb) | Size of boot disk to create for the partition compute nodes. | `number` | `50` | no |
| <a name="input_disk_storage_pool"></a> [disk\_storage\_pool](#input\_disk\_storage\_pool) | Storage pool to use for the node's boot disk. Note that storage pools are only supported with Hyperdisk types (balanced or throughput). You must provide an existing storage pool, as this module does not create new ones. | `string` | `null` | no |
| <a name="input_disk_type"></a> [disk\_type](#input\_disk\_type) | Boot disk type, can be either hyperdisk-balanced, pd-ssd, pd-standard, pd-balanced, or pd-extreme. | `string` | `"pd-standard"` | no |
| <a name="input_dws_flex"></a> [dws\_flex](#input\_dws\_flex) | If set and `enabled = true`, will utilize the DWS Flex Start to provision nodes.<br/> See: https://cloud.google.com/blog/products/compute/introducing-dynamic-workload-scheduler<br/> Options:<br/> - enable: Enable DWS Flex Start<br/> - max\_run\_duration: Maximum duration in seconds for the job to run, should not exceed 604,800 (one week).<br/> - use\_job\_duration: Use the job duration to determine the max\_run\_duration, if job duration is not set, max\_run\_duration will be used.<br/> - use\_bulk\_insert: Uses the legacy implementation of DWS Flex Start with Bulk Insert for non-accelerator instances<br/><br/>Limitations:<br/> - CAN NOT be used with reservations. | <pre>object({<br/> enabled = optional(bool, true)<br/> max_run_duration = optional(number, 604800) # one week<br/> use_job_duration = optional(bool, false)<br/> use_bulk_insert = optional(bool, false)<br/> })</pre> | <pre>{<br/> "enabled": false<br/>}</pre> | no |
| <a name="input_enable_confidential_vm"></a> [enable\_confidential\_vm](#input\_enable\_confidential\_vm) | Enable the Confidential VM configuration. Note: the instance image must support option. | `bool` | `false` | no |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ locals {
disk_name = ad.disk_name
device_name = ad.device_name
disk_type = ad.disk_type
disk_storage_pool = ad.disk_storage_pool
disk_size_gb = ad.disk_size_gb
disk_labels = merge(ad.disk_labels, local.labels)
auto_delete = ad.auto_delete
Expand Down Expand Up @@ -85,6 +86,7 @@ locals {
disk_labels = merge(local.labels, var.disk_labels)
disk_size_gb = var.disk_size_gb
disk_type = var.disk_type
disk_storage_pool = var.disk_storage_pool
disk_resource_manager_tags = var.disk_resource_manager_tags
additional_disks = local.additional_disks

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ variable "disk_type" {
default = "pd-standard"
}

variable "disk_storage_pool" {
description = "Storage pool to use for the node's boot disk. Note that storage pools are only supported with Hyperdisk types (balanced or throughput). You must provide an existing storage pool, as this module does not create new ones."
type = string
default = null
}

variable "disk_size_gb" {
description = "Size of boot disk to create for the partition compute nodes."
type = number
Expand Down Expand Up @@ -192,6 +198,7 @@ variable "additional_disks" {
device_name = optional(string)
disk_size_gb = optional(number)
disk_type = optional(string)
disk_storage_pool = optional(string)
disk_labels = optional(map(string))
auto_delete = optional(bool)
boot = optional(bool)
Expand Down
Loading
Loading