Skip to content

feat: Implement and configure GKE Image Streaming (GCFS) at the cluster level.#5387

Merged
SwarnaBharathiMantena merged 3 commits into
GoogleCloudPlatform:developfrom
raushan2016:feat/gke-image-streaming
Mar 24, 2026
Merged

feat: Implement and configure GKE Image Streaming (GCFS) at the cluster level.#5387
SwarnaBharathiMantena merged 3 commits into
GoogleCloudPlatform:developfrom
raushan2016:feat/gke-image-streaming

Conversation

@raushan2016

Copy link
Copy Markdown
Member

Currently toolkit only support it at nodepool, which means for each nodepool it needs to be manually enabled.

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 #

…er level. Currently toolkit only support it at nodepool, which means for each nodepool it needs to be manually enabled.
@raushan2016 raushan2016 requested review from a team and samskillman as code owners March 24, 2026 00:35
@github-actions github-actions Bot added the external PR from external contributor label Mar 24, 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 streamlines the process of enabling Google Container Filesystem (GCFS) for Image Streaming in GKE clusters. Previously requiring manual configuration for each node pool, this change introduces a single cluster-level toggle, simplifying management and ensuring consistent application of GCFS across the entire cluster.

Highlights

  • GCFS Cluster-Level Enablement: Implemented the ability to enable Google Container Filesystem (GCFS) for Image Streaming directly at the GKE cluster level.
  • Simplified Configuration: Moved GCFS enablement from a per-nodepool manual configuration to a centralized cluster-wide setting.
  • New Input Variable: Introduced enable_gcfs as a boolean input variable in the GKE cluster module.
  • Terraform Configuration: Dynamically configured node_pool_defaults in main.tf to activate GCFS when enable_gcfs is true.
  • Documentation Update: Updated the README.md to reflect the new enable_gcfs input variable.
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 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 counter productive. 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.

@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 enabling GKE Image Streaming (GCFS) at the cluster level, which is a useful feature for simplifying configuration. The implementation is straightforward, adding a new enable_gcfs variable to the gke-cluster module and using it to configure node_pool_defaults. I have one minor suggestion regarding variable ordering for consistency. Additionally, this change highlights a limitation in the gke-node-pool module where it's not possible to explicitly disable GCFS for a specific node pool if it's enabled at the cluster level. This could be a consideration for a future enhancement to provide more granular control.

Comment thread modules/scheduler/gke-cluster/variables.tf Outdated
@cboneti cboneti added the release-key-new-features Added to release notes under the "Key New Features" heading. label Mar 24, 2026
@cboneti

cboneti commented Mar 24, 2026

Copy link
Copy Markdown
Member

/gcbrun

@SwarnaBharathiMantena SwarnaBharathiMantena 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.

LGTM

@SwarnaBharathiMantena

Copy link
Copy Markdown
Contributor

Running tests with babysit

@SwarnaBharathiMantena

Copy link
Copy Markdown
Contributor

SUCCESS[2] PR-test-gke go/ghpc-cb/c24e6d6b-92de-4fa0-b2d3-f131ce4ad8d8
SUCCESS[2] PR-test-gke-a2-highgpu-kueue-onspot go/ghpc-cb/c262e1d7-8f94-4cfa-933e-bae5cf2d41cd
SUCCESS[2] PR-test-gke-a3-highgpu-onspot go/ghpc-cb/3cb7a037-9362-48dd-98c4-10b7c49700a4
SUCCESS[2] PR-test-gke-a3-megagpu-onspot go/ghpc-cb/35c0e68a-891b-459a-b1d0-c35bde34c6c1
SUCCESS[2] PR-test-gke-a4-onspot go/ghpc-cb/defa4955-31a8-4737-bfd8-fffeec6c66af
SUCCESS[2] PR-test-gke-g4 go/ghpc-cb/85748516-8a8c-43ed-a879-d0121a3286e9
SUCCESS[2] PR-test-gke-h4d go/ghpc-cb/0462cd38-3069-40e4-857f-6cc24fb09d81
SUCCESS[2] PR-test-gke-inactive-reservation go/ghpc-cb/6dc110a1-669f-4c78-bcba-d59d048023ed
SUCCESS[2] PR-test-gke-managed-hyperdisk go/ghpc-cb/601e1f12-2859-4b99-ad28-6feaf62fcbd8
SUCCESS[2] PR-test-gke-managed-lustre go/ghpc-cb/831b4e5a-cab5-43a8-aaeb-7135a43e9924
SUCCESS[2] PR-test-gke-tpu-7x go/ghpc-cb/d53ed994-e05e-407b-9ab4-e0a548368998
SUCCESS[2] PR-test-gke-tpu-v6e go/ghpc-cb/9ddbf841-fbf8-4751-995e-cda0566189f2
SUCCESS[2] PR-test-ml-gke go/ghpc-cb/0ce344da-4ec8-4991-99c5-ecba0dab2f63
SUCCESS[2] PR-test-ml-gke-e2e go/ghpc-cb/5c8580c9-224c-4369-9dd4-a12f0f22406f
SUCCESS[2] PR-test-slurm-gke go/ghpc-cb/acfa0953-8a3b-4a2b-b44a-d45aa1d40a10
FAILURE[2] PR-test-gke-a3-highgpu go/ghpc-cb/897373e8-dde2-493e-b367-9c09f4c10779
FAILURE[2] PR-test-gke-a3-megagpu go/ghpc-cb/27b0f1c6-adf4-40b1-93bc-615513fbee17
FAILURE[2] PR-test-gke-a3-ultragpu-onspot go/ghpc-cb/af0122be-403f-4a18-b7d1-a2ba39372e1f
FAILURE[2] PR-test-gke-h4d-onspot go/ghpc-cb/08e5c3a2-c98c-42b7-9196-118799e8c677
FAILURE[2] PR-test-gke-storage go/ghpc-cb/14f43aa2-276d-4339-8837-1631af11f179
------- TOTAL:20 | SUCCESS: 15 | FAILURE: 5

@SwarnaBharathiMantena SwarnaBharathiMantena merged commit a190444 into GoogleCloudPlatform:develop Mar 24, 2026
12 of 68 checks passed
FIoannides pushed a commit to FIoannides/cluster-toolkit that referenced this pull request Mar 27, 2026
…er level. (GoogleCloudPlatform#5387)

Co-authored-by: Swarna Bharathi Mantena <swarnabm@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external PR from external contributor 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.

3 participants