Skip to content

Persistent Disk Storage Pool Support for Slurm modules - #6012

Draft
rahimkhan19 wants to merge 3 commits into
GoogleCloudPlatform:developfrom
rahimkhan19:pd-support-slurm
Draft

Persistent Disk Storage Pool Support for Slurm modules#6012
rahimkhan19 wants to merge 3 commits into
GoogleCloudPlatform:developfrom
rahimkhan19:pd-support-slurm

Conversation

@rahimkhan19

Copy link
Copy Markdown
Contributor

Added support for GCP Storage Pools to the Slurm GCP v6 modules (schedmd-slurm-gcp-v6-controller, schedmd-slurm-gcp-v6-login, schedmd-slurm-gcp-v6-nodeset, schedmd-slurm-gcp-v6-nodeset-dynamic, and schedmd-slurm-gcp-v6-partition).

Added:

  • schedmd-slurm-gcp-v6-controller: Add a new disk_storage_pool (string) variable. Pass this into the google_compute_disk resources for the controller's boot disk. Additionally, update the schema for additional_disks to accept a disk_storage_pool property and properly merge it into the internal state disks.
  • schedmd-slurm-gcp-v6-login: Add a new disk_storage_pool (string) variable and update the additional_disks schema. Pass these variables down to the internal instance_template modules so that the login nodes' boot and data disks are provisioned inside the specified storage pool.
  • schedmd-slurm-gcp-v6-nodeset (and dynamic): Add a new disk_storage_pool (string) variable and update the additional_disks schema. Pass these variables through to the internal instance template module so that all static and dynamic compute nodes spawn their disks in the storage pool.
  • schedmd-slurm-gcp-v6-partition: Add disk_storage_pool to the partition variables schema so that partition-level definitions can correctly forward storage pool requirements down to the controller for static nodeset creation.
  • *internal/slurm-gcp/ (instance_template, internal_instance_template, login)**: Add disk_storage_pool to the variables and update all additional_disks object definitions to include the new property. Update the dynamic "disk" block inside the google_compute_instance_template resource to inject storage_pool, allowing the Google Cloud provider to correctly assign the disks to the pool when VMs are deployed.

Submission Checklist

NOTE: Community submissions can take up to 2 weeks to be reviewed.

Please take the following actions before submitting this pull request.

  • Fork your PR branch from the Toolkit "develop" branch (not main)
  • Test all changes with pre-commit in a local branch #
  • Confirm that "make tests" passes all tests
  • Add or modify unit tests to cover code changes
  • Ensure that unit test coverage remains above 80%
  • Update all applicable documentation
  • Follow Cluster Toolkit Contribution guidelines #

@rahimkhan19 rahimkhan19 self-assigned this Jul 27, 2026
@rahimkhan19 rahimkhan19 added the release-key-new-features Added to release notes under the "Key New Features" heading. label Jul 27, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces support for Google Cloud Platform (GCP) Storage Pools within the Slurm GCP v6 modules. By adding the 'disk_storage_pool' configuration option to controller, login, and compute node definitions, users can now provision boot and data disks within specific storage pools, which is a requirement for utilizing Hyperdisk storage types. The changes ensure that these settings are correctly passed through the infrastructure stack to the underlying compute instance templates.

Highlights

  • GCP Storage Pool Support: Added a new 'disk_storage_pool' variable across controller, login, and compute node modules to enable Hyperdisk storage pool support.
  • Schema Updates: Updated 'additional_disks' schemas in all relevant modules to include 'disk_storage_pool' as an optional property.
  • Infrastructure Integration: Updated internal instance template modules to correctly propagate storage pool settings to the Google Cloud provider resources.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@rahimkhan19 rahimkhan19 changed the title feat: add support for Hyperdisk storage pools to Slurm controller, lo… Persistent Disk Storage Pool Support for Slurm modules Jul 27, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for configuring a disk_storage_pool for boot disks and additional disks across various Slurm GCP v6 modules, including nodesets, partitions, controllers, logins, and instance templates. This allows utilizing Google Cloud storage pools with Hyperdisk types. The review feedback recommends replacing lookup() with try() blocks in internal_instance_template/main.tf to safely access nullable or optional variables and prevent potential plan-time crashes.

Comment thread community/modules/internal/slurm-gcp/internal_instance_template/main.tf Outdated
@rahimkhan19

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for specifying a disk storage pool for boot and additional disks across various SchedMD Slurm GCP v6 modules, including nodeset, nodeset-dynamic, partition, controller, login, and instance templates. A new disk_storage_pool variable has been added and propagated to the underlying Google Compute instance templates, enabling the use of storage pools with Hyperdisk types. There are no review comments, and the changes are well-structured and consistent with the repository's Terraform module guidelines, so I have no feedback to provide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-key-new-features Added to release notes under the "Key New Features" heading.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant