Skip to content

Commit 18a9e07

Browse files
Merge pull request GoogleCloudPlatform#4768 from GoogleCloudPlatform/release-candidate
Release candidate: v1.69.0
2 parents 285bbc5 + 80fe5ae commit 18a9e07

73 files changed

Lines changed: 967 additions & 149 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/multi-approvers.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,6 @@
1515
name: 'multi-approvers'
1616

1717
on:
18-
pull_request:
19-
types:
20-
- 'opened'
21-
- 'edited'
22-
- 'reopened'
23-
- 'synchronize'
24-
- 'ready_for_review'
25-
- 'review_requested'
26-
- 'review_request_removed'
2718
pull_request_review:
2819
types:
2920
- 'submitted'
@@ -40,6 +31,7 @@ concurrency:
4031

4132
jobs:
4233
multi-approvers:
34+
if: github.event_name == 'pull_request_review' && (github.event.review.state == 'approved' || github.event.action == 'dismissed')
4335
uses: 'abcxyz/pkg/.github/workflows/multi-approvers.yml@main'
4436
with:
4537
org-members-path: 'GoogleCloudPlatform/cluster-toolkit/develop/cluster-toolkit-writers.json'

cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ HPC deployments on the Google Cloud Platform.`,
5353
logging.Fatal("cmd.Help function failed: %s", err)
5454
}
5555
},
56-
Version: "v1.68.0",
56+
Version: "v1.69.0",
5757
Annotations: annotation,
5858
}
5959
)

community/gce-cos-nvidia-bug-report/Dockerfile renamed to community/cos-nvidia-bug-report/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ RUN apt-get update && \
3232
libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev \
3333
acpica-tools kmod usbutils procps nano python3-pip python3.11-venv
3434

35+
RUN apt-get install -y mesa-utils dmidecode vulkan-tools ibutils x11-xserver-utils
3536
RUN wget https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tgz
3637

3738
RUN tar -xvf Python-3.13.1.tgz
@@ -51,4 +52,4 @@ RUN . .venv/bin/activate
5152
# Install Python dependencies
5253
RUN .venv/bin/pip install --no-cache-dir -r requirements.txt
5354

54-
ENTRYPOINT [".venv/bin/python", "gce-cos-nvidia-bug-report.py"]
55+
ENTRYPOINT [".venv/bin/python", "cos-nvidia-bug-report.py"]

community/gce-cos-nvidia-bug-report/README.md renamed to community/cos-nvidia-bug-report/README.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# GCE COS NVIDIA Bug Report Collector
1+
# GCP COS NVIDIA Bug Report Collector
22

3-
![Platform: GCE/COS](https://img.shields.io/badge/Platform-GCE%2FCOS-green.svg)
3+
![Platform: GCP/COS](https://img.shields.io/badge/Platform-GCP%2FCOS-green.svg)
44

55
A universal tool to simplify the generation of NVIDIA bug reports on Google
6-
Compute Engine (GCE) VMs that use the Container-Optimized OS (COS) guest
6+
Compute Platform (GCP) VMs that use the Container-Optimized OS (COS) guest
77
operating system.
88

99
This script provides a simple and reliable one-command experience to collect
@@ -14,11 +14,11 @@ to generate a more comprehensive report with deep hardware diagnostics.
1414

1515
--------------------------------------------------------------------------------
1616

17-
## 🤔 The Challenge: Getting GPU Bug Report on GCE with COS
17+
## 🤔 The Challenge: Getting GPU Bug Report on GCP with COS
1818

1919
When troubleshooting GPU issues, the first step is often to generate an
20-
`nvidia-bug-report`. However, doing so on a **Google Compute Engine (GCE)
21-
virtual machine that uses Container-Optimized OS (COS) as its guest operating
20+
`nvidia-bug-report`. However, doing so on a **Google Compute Platform (GCP)
21+
that uses Container-Optimized OS (COS) as its guest operating
2222
system** could be a less trivial.
2323

2424
COS is a minimal, security-hardened operating system from Google, designed
@@ -66,7 +66,7 @@ However, setting up MFT is a cumbersome process on COS:
6666
## 💡 Our Solution: A Smart, All-in-One Collector
6767

6868
This script eliminates all of the aforementioned complexity. It acts as a
69-
universal collector that simplifies bug report generation for all users on GCE
69+
universal collector that simplifies bug report generation for all users on GCP
7070
with COS.
7171

7272
* **For all supported GPUs**, it automates the steps needed to generate a
@@ -80,8 +80,8 @@ docker command.
8080

8181
### ✨ Key Features
8282

83-
* **Universal Collector for GCE COS**: A single, simple command to generate an
84-
`nvidia-bug-report` on any supported GCE VM with the COS guest OS.
83+
* **Universal Collector for GCP COS**: A single, simple command to generate an
84+
`nvidia-bug-report` on any supported GCP machine with the COS guest OS.
8585
* **Automatic MFT Enhancement**: For Blackwell and newer GPUs, the script
8686
automatically installs and configures the NVIDIA MFT suite to unlock deeper,
8787
more comprehensive hardware diagnostics.
@@ -92,14 +92,15 @@ docker command.
9292

9393
Before running the script, ensure you have:
9494

95-
1. A Google Compute Engine (GCE) GPU VM instance with **Container-Optimized OS
95+
1. A Google Compute Engine (GCE) GPU VM instance or a GKE node with **Container-Optimized OS
9696
(COS)** as its guest operating system.
9797

98-
2. The GPU driver is installed on the VM instance.
98+
2. The GPU driver is installed on the GCE VM instance.
9999
* Please refer to
100100
[COS's official documentation page](\(https://cloud.google.com/container-optimized-os/docs/how-to/run-gpus#install\))
101101
for more detail.
102102
* Sample commands to install the GPU driver and verify the installation:
103+
* ***NOTE:*** For GKE the driver is already installed. Unless opted for [manual driver installation](https://cloud.google.com/kubernetes-engine/docs/how-to/gpus#create-gpu-pool-auto-drivers)
103104

104105
```bash
105106
# Install NVIDIA GPU Driver
@@ -151,7 +152,9 @@ Before running the script, ensure you have:
151152
This tool is designed to be run as a Docker container. The primary method of use
152153
is a single docker run command.
153154
154-
Sample command to run on a VM with 8 GPUs:
155+
### To run in a GCE VM instance
156+
157+
Sample command to run on a GCE VM with 8 GPUs:
155158
156159
Note: If you have a different number of GPUs on your system, you may need to
157160
adjust the `--device /dev/nvidia<gpu_num>:/dev/nvidia<gpu_num>` in the docker
@@ -177,6 +180,22 @@ us-central1-docker.pkg.dev/gce-ai-infra/gce-cos-nvidia-bug-report-repo/gce-cos-n
177180
--gcs_bucket=${GCS_BUCKET}
178181
```
179182
183+
### To run in a GKE cluster
184+
Note: Update the below fields in the pod manifest `./bug-report-pod.yaml`
185+
186+
| Fields | Description | Example |
187+
|:--------:|:--------:|:--------:|
188+
| `<gke-node-name>` | GKE node which we want to target | gke-a4-2-a4-highgpu-8g-a4-p-b99cb17a-xrre |
189+
| `<number_of_gpus>` | Total number of GPUs on the targeted GPU node | A4 - 8, A4X - 4 |
190+
191+
Note: Exporting the final bug reports to a GCS bucket is optional. If you do not
192+
intend to export it elsewhere, you may remove the `--gcs_bucket=${GCS_BUCKET}`
193+
at the end.
194+
195+
```bash
196+
kubectl apply -f cluster-toolkit/community/cos-nvidia-bug-report/bug-report-pod.yaml
197+
```
198+
180199
### 📝 Example Output
181200
182201
```bash
@@ -274,7 +293,7 @@ Registry.
274293
We provide a convenient shell script to build and push your customized image to
275294
your own Artifact Registry.
276295

277-
You can do so by invoking the `build-and-push-gce-cos-nvidia-bug-report.sh`
296+
You can do so by invoking the `build-and-push-cos-nvidia-bug-report.sh`
278297
script with the following parameters:
279298

280299
| Flag | Description | Required |
@@ -288,7 +307,7 @@ script with the following parameters:
288307
Sample command:
289308

290309
```bash
291-
bash build-and-push-gce-cos-nvidia-bug-report.sh \
310+
bash build-and-push-cos-nvidia-bug-report.sh \
292311
-p ${PROJECT?} \
293312
-r ${ARTIFACT_REPO?} \
294313
-i "custom-bug-report-collector" \
File renamed without changes.

community/gce-cos-nvidia-bug-report/app/gce-cos-nvidia-bug-report.py renamed to community/cos-nvidia-bug-report/app/cos-nvidia-bug-report.py

File renamed without changes.

community/gce-cos-nvidia-bug-report/app/requirements.txt renamed to community/cos-nvidia-bug-report/app/requirements.txt

File renamed without changes.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Copyright 2025 "Google LLC"
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: v1
16+
kind: Pod
17+
metadata:
18+
name: cos-nvidia-bug-report
19+
spec:
20+
restartPolicy: Never
21+
nodeSelector:
22+
kubernetes.io/hostname: <gke-node-name> # TODO: Replace with your GKE node name
23+
tolerations:
24+
- effect: NoSchedule
25+
key: nvidia.com/gpu
26+
operator: Exists
27+
containers:
28+
- name: bug-reporter-container
29+
resources:
30+
limits:
31+
nvidia.com/gpu: "<number_of_gpus>" # TODO: Replace with number of GPUs on this machine type
32+
requests:
33+
nvidia.com/gpu: "<number_of_gpus>" # TODO: Replace with number of GPUs on this machine type
34+
env:
35+
- name: LD_LIBRARY_PATH
36+
value: /usr/local/nvidia/lib64
37+
image: us-central1-docker.pkg.dev/gce-ai-infra/gce-cos-nvidia-bug-report-repo/gce-cos-nvidia-bug-report:latest
38+
imagePullPolicy: Always
39+
args:
40+
- --gcs_bucket=${GCS_BUCKET}
41+
securityContext:
42+
privileged: true
43+
volumeMounts:
44+
- name: host-etc
45+
mountPath: /etc_host
46+
readOnly: true
47+
- name: host-tmp
48+
mountPath: /tmp
49+
readOnly: false
50+
- mountPath: /usr/local/nvidia
51+
name: nvidia
52+
readOnly: true
53+
hostNetwork: true
54+
volumes:
55+
- name: host-etc
56+
hostPath:
57+
path: /etc
58+
type: Directory
59+
- name: host-tmp
60+
hostPath:
61+
path: /tmp
62+
type: Directory
63+
- hostPath:
64+
path: /home/kubernetes/bin/nvidia
65+
type: Directory
66+
name: nvidia

community/gce-cos-nvidia-bug-report/build-and-push-gce-cos-nvidia-bug-report.sh renamed to community/cos-nvidia-bug-report/build-and-push-cos-nvidia-bug-report.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
set -e -u -o pipefail
1717

1818
usage() {
19-
echo >&2 "Usage: bash build-and-push-gce-cos-nvidia-bug-report.sh -p <PROJECT_ID> -r <REPO_NAME> -i <IMAGE_NAME> [-l <REGION>]"
19+
echo >&2 "Usage: bash build-and-push-cos-nvidia-bug-report.sh -p <PROJECT_ID> -r <REPO_NAME> -i <IMAGE_NAME> [-l <REGION>]"
2020
echo >&2 "This script builds a Docker image and pushes it to Google Artifact Registry."
2121
echo >&2 ""
2222
echo >&2 "Options:"
@@ -27,10 +27,10 @@ usage() {
2727
echo >&2 " -h Display this help message."
2828
echo >&2 ""
2929
echo >&2 "Example (default region):"
30-
echo >&2 " bash build-and-push-gce-cos-nvidia-bug-report.sh -p gpu-test-project -r gce-cos-nvidia-bug-report-repo -i gce-cos-nvidia-bug-report"
30+
echo >&2 " bash build-and-push-cos-nvidia-bug-report.sh -p gpu-test-project -r gce-cos-nvidia-bug-report-repo -i gce-cos-nvidia-bug-report"
3131
echo >&2 ""
3232
echo >&2 "Example (specific region):"
33-
echo >&2 " bash build-and-push-gce-cos-nvidia-bug-report.sh -p gpu-test-project -r gce-cos-nvidia-bug-report-repo -i gce-cos-nvidia-bug-report -l us-east4"
33+
echo >&2 " bash build-and-push-cos-nvidia-bug-report.sh -p gpu-test-project -r gce-cos-nvidia-bug-report-repo -i gce-cos-nvidia-bug-report -l us-east4"
3434
exit 1
3535
}
3636

community/modules/compute/htcondor-execute-point/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ terraform {
2929
}
3030

3131
provider_meta "google" {
32-
module_name = "blueprints/terraform/hpc-toolkit:htcondor-execute-point/v1.68.0"
32+
module_name = "blueprints/terraform/hpc-toolkit:htcondor-execute-point/v1.69.0"
3333
}
3434
}

0 commit comments

Comments
 (0)