Repository navigation
feat(gke): Add G4 Confidential VM support with Blackwell GPUs and CMEK storage in cluster toolkit - #5817
Conversation
Summary of ChangesHello, 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 significantly enhances the Cluster Toolkit by integrating support for GKE G4 Confidential VMs with Blackwell GPUs and Customer-Managed Encryption Keys for storage. These additions provide a highly secure and performant infrastructure for AI/ML workloads, ensuring data privacy and integrity through hardware-level encryption. The changes are implemented as opt-in parameters, maintaining backward compatibility while offering advanced security features. Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new blueprint and example configuration for deploying a GKE G4 Confidential Computing cluster with AMD SEV-SNP memory encryption and NVIDIA Blackwell GPUs, along with supporting updates to GKE node pool, storage, and cluster modules. Feedback on the changes identifies three critical issues: an undefined vars.labels reference in the blueprint that will cause a compilation error, a potential cluster creation failure when confidential nodes are enabled but the system node pool machine type defaults to an incompatible e2-standard-4 shape, and a non-existent CUDA image version (13.0.0) used in the nvidia-smi job template.
e14b824 to
ee236ff
Compare
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a new blueprint to deploy a GKE G4 Confidential Computing cluster optimized for ML workloads using AMD SEV-SNP and NVIDIA Blackwell GPUs. It updates several core modules (gke-node-pool, gke-storage, gke-cluster, and kubectl-apply) to support confidential nodes, confidential instance types, and confidential storage with CMEK. The review feedback suggests two key improvements: adding a fail-fast validation in the storage module to ensure a KMS key is provided when confidential storage is enabled, and refining the cluster module's precondition to only check the system node pool machine type when the system node pool is actually enabled.
SwarnaBharathiMantena
left a comment
There was a problem hiding this comment.
Please check if we need to add enable-confidential-storage variable to gke-cluster and gke-node-pool modules.
kadupoornima
left a comment
There was a problem hiding this comment.
Thanks for this PR. Just a couple of points:
- In the
g4-verification-*.yamlmanifests, you can change the|| echo "..."fallbacks to|| { echo "..."; exit 1; }. Right now, ifnvidia-smi conf-computefails, the Kubernetes Job will still report a Success status, masking the failure. - Regarding Swarna's comment.. while GKE does allow enabling confidential nodes only at the node pool level (without setting it on the cluster), keeping it on both is the right move for a strict Confidential blueprint. Consider exporting the values via
outputs.tfas suggested to reduce boilerplate.
Acknowledged. Thanks for bringing this up. I have exposed |
Thanks for catching it @kadupoornima!. The previous I have updated the shell wrappers in both manifests to exit with 1 on failure, ensuring that Kubernetes Job statuses accurately reflect any validation or hardware errors. Also I have removed the redundant, hardcoded CVM configurations from the node pool settings in the blueprint. The node pool will now dynamically and automatically inherit the cluster's confidentiality state under the hood. |
7fdedf4 to
7119d19
Compare
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a new blueprint, gke-g4-confidential, which provisions a GKE cluster running on Confidential VMs with NVIDIA Blackwell GPUs and optional Confidential Storage. It updates the GKE cluster, node pool, and storage modules to support confidential nodes, confidential storage, and boot disk KMS keys. Review feedback highlights two key issues: the g4-pool node pool in the new blueprint is missing the boot_disk_kms_key setting, which will trigger a deployment precondition failure when confidential storage is enabled, and the system node pool in the GKE cluster module should explicitly configure the confidential_nodes block for consistency and to prevent API validation errors.
|
Failing tests: PR-test-gke-a3-highgpu -> Test triggered by babysit (Reservation not available) |
…K storage Change-Id: I0d12f28ba2eba04d7e9fe4c585ccf9be534069aa
…nd verification jobs Change-Id: I0c21a7148f7385c329c001bd0cb686905e88310d
…l level and updating readme Change-Id: I2d6c853bbfd4aba5b58cd1a535a0b31398cf94dd
…al Storage Change-Id: Ie741ec01d646c8da0450e2d1805f4746de2030fd
…n gke-cluster system node pool Change-Id: I24ab146763276fccaea0b60a8f5e99b2106b893a
e9bfa63
into
GoogleCloudPlatform:develop
…K storage in cluster toolkit (GoogleCloudPlatform#5817)
…K storage in cluster toolkit (GoogleCloudPlatform#5817)
Description
This PR introduces native support for GKE G4 Confidential VMs (CVM) equipped with NVIDIA Blackwell GPUs (RTX 6000 Ada) running in Confidential GPU mode (PCIe Secure Passthrough encryption), along with secure regional Customer-Managed Encryption Keys (CMEK) storage.
These enhancements are implemented as reusable, opt-in parameters inside the core Cluster Toolkit GKE scheduler, compute, and storage modules. This ensures 100% backward compatibility for all existing GKE blueprints while providing highly secure AI/ML infrastructure with minimal configuration.
Key Features & Enhancements
1. Core Module Enhancements (Opt-in & Reusable)
gke-node-pool: Added support for the dynamicconfidential_nodesblock in GKE node pools, enabling guest-level memory encryption (AMD SEV/SEV-SNP).gke-cluster: Enabled cluster-levelconfidential_nodesconfiguration. Added a conditional system node poolmachine_typetoggle (defaulting ton2d-standard-16when CVM is active) to prevent GKE control plane creation errors on CVM-enabled clusters.gke-storage: Added Cloud KMS CMEK key integration and conditional StorageClass parameter rendering. Setwait_for_rollout = falsefor GKE storage manifests to prevent deployment hangs on deferred-binding volumes.2. Core Framework Enhancements
kubectl-apply(Helm Core): Fixed a core framework bug where the Helm provider had a hardcodedatomic = trueproperty. By linkingatomicto the module'swait_for_rolloutvariable, we successfully allow Helm-deployed resources (like deferred-binding StorageClasses and PVCs) to deploy instantly without hanging the provisioning pipeline.3. User-Facing Blueprint & Guides
examples/gke-g4-confidential: Added a production-ready, clean blueprint (gke-g4-confidential.yaml) and a customizable overrides file (gke-g4-confidential-deployment.yaml).README.md: Comprehensive customer deployment guide detailing GCS state setup, regional Cloud KMS commands, a deep-dive on the Kubernetes storage billing lifecycle, and GKE cluster version requirements.Verification & Testing
The blueprint and core module modifications have been subjected to rigorous end-to-end functional verification on Google Cloud:
E2E Validation Workloads (Passed)
Two custom, non-branded verification manifests were deployed and executed on the live confidential G4 cluster:
g4-verification-test.yaml):Memory Encryption Features active: AMD SEV(Passed)CC status: ONandConfidential Compute GPUs Ready state: ready(Passed)g4-verification-storage-test.yaml):enable_confidential_storage: false), proving that the storage manifests are 100% robust and compatible across both standard-encrypted and CMEK-encrypted storage paths.References & Cloud Documentation
Submission Checklist
NOTE: Community submissions can take up to 2 weeks to be reviewed.
Please take the following actions before submitting this pull request.