Skip to content

Added AWS EC2 GPU Instructions to Improve Multi-Cloud Hami Tutorial Lab 1 Documentation - #737

Open
Creativeklvn wants to merge 5 commits into
Project-HAMi:masterfrom
Creativeklvn:tutorial-lab-1
Open

Added AWS EC2 GPU Instructions to Improve Multi-Cloud Hami Tutorial Lab 1 Documentation#737
Creativeklvn wants to merge 5 commits into
Project-HAMi:masterfrom
Creativeklvn:tutorial-lab-1

Conversation

@Creativeklvn

@Creativeklvn Creativeklvn commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This lab expands the HAMi tutorial documentation to support AWS GPU infrastructure alongside the existing Google Cloud GPU virtual machine.

What Changed:

  • The introductory description has been updated to state that the lab supports either an AWS or a Google Cloud GPU virtual machine.

  • Added instructions for creating an AWS EC2 GPU instance using the AWS CLI.

  • Documented the requirement for AWS GPU/Spot vCPU quota before creating the instance.

  • Added Kubernetes and GPU Operator compatibility guidance that directs users to NVIDIA's platform-support documentation to verify that the selected Ubuntu and Kubernetes versions are supported together, because the NVIDIA driver, Linux kernel, Kubernetes version, and GPU Operator need to work together.

  • The kernel was downgraded to v6.8 because the AWS default kernel is not compatible with the NVIDIA GPU Operator v25.3.0 setup used in this lab.

  • Added tabs for AWS and GCP to separate cloud-provider-specific instructions

  • Updated the HAMi WebUI port-forwarding instructions to use the VM's public IP address instead of localhost.

  • Added my name creativeklvn to the authors list to credit my contribution to the lab documentation updates.

Previously, the lab instructions were primarily focused on the Google Cloud environment. Adding AWS allows users to complete the same HAMi workflow without needing a GCP environment.

The lab should provide the same overall HAMi experience regardless of whether the user chooses:
AWS EC2 GPU or Google Cloud GPU VM

Fixes #736

Summary by CodeRabbit

  • New Features

    • Added support for AWS and GCP lab environments with provider-specific setup tabs.
    • Added instructions for EC2 Spot instances, SSH access, kernel configuration, and Kubernetes installation.
    • Expanded verification steps for kernels, clusters, Prometheus, GPU labels, HAMi registration, and HAMi WebUI Pods.
    • Updated WebUI access to use the VM’s public IP and port forwarding.
  • Documentation

    • Clarified headings and improved command output readability with JSON-formatted registration results.

@hami-robot

hami-robot Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Creativeklvn
Once this PR has been reviewed and has the lgtm label, please assign archlitchi for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@netlify

netlify Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deploy Preview for project-hami ready!

Name Link
🔨 Latest commit d884fb3
🔍 Latest deploy log https://app.netlify.com/projects/project-hami/deploys/6a7dcd6fc32dea000838e0fb
😎 Deploy Preview https://deploy-preview-737--project-hami.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a7cf2cf1-5702-4b52-80f7-50340be12afe

📥 Commits

Reviewing files that changed from the base of the PR and between d1a3275 and d884fb3.

📒 Files selected for processing (1)
  • tutorials/labs/online-install.md

📝 Walkthrough

Walkthrough

The online installation lab now supports AWS EC2 GPU instances and GCP GPU VMs. It adds provider-specific setup, Kubernetes installation, cluster verification, GPU registration checks, and HAMi WebUI access instructions.

Changes

Online installation provider support

Layer / File(s) Summary
Provider VM setup
tutorials/labs/online-install.md
Adds AWS and GCP tabs with provider prerequisites, VM creation, SSH access, and kernel setup instructions.
Cluster installation and verification
tutorials/labs/online-install.md
Adds provider-specific Kubernetes package installation and updates Calico, cluster, and Prometheus verification steps.
GPU and WebUI validation
tutorials/labs/online-install.md
Adds GPU node and label checks, JSON output for HAMi registration, and VM public IP access instructions for the WebUI.

Estimated code review effort: 2 (Simple) | ~10 minutes

Mergeability Score: 🟡 Moderate · up to d884f

The AWS lab path currently has setup blockers and an unsafe WebUI access path: users may be unable to authenticate, launch or reach the instance, boot the intended kernel, complete GPU checks, or access the UI as documented, while the public-facing UI instructions do not define restricted ingress. The PR is not merge-ready until these issues are corrected or explicitly accepted.

Suggested labels: kind/documentation

Suggested reviewers: archlitchi

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: adding AWS EC2 GPU instructions to the multi-cloud HAMi tutorial lab.
Linked Issues check ✅ Passed The documentation adds AWS EC2 GPU support while preserving GCP instructions, which satisfies issue #736.
Out of Scope Changes check ✅ Passed The documented changes support multi-cloud lab completion and remain within the scope of issue #736.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the kind/documentation Improvements or additions to documentation label Aug 7, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🧹 Nitpick comments (1)
tutorials/labs/online-install.md (1)

715-718: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Wait for WebUI Pod readiness before port forwarding.

kubectl get pods only displays the current status. It does not wait for Ready or fail on Pending, 0/1, or CrashLoopBackOff. Verify the chart label and use kubectl wait --for=condition=Ready before the port-forward.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tutorials/labs/online-install.md` around lines 715 - 718, Replace the passive
kubectl get pods check in the WebUI installation flow with kubectl wait
--for=condition=Ready, using the chart’s app.kubernetes.io/name=hami-webui
selector and kube-system namespace before port-forwarding. Retain the existing
pod verification context while ensuring the command waits for readiness and
fails when the pod cannot become Ready.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tutorials/labs/online-install.md`:
- Around line 158-159: Correct the wording in the instruction accompanying sudo
-i from “switch to root a user” to “switch to the root user.”
- Around line 152-156: Update the reconnect SSH command in “SSH Into the
Instance Again and Confirm Kernel Version” to reuse the configurable SSH key
placeholder established by the initial connection, rather than hardcoding
~/Downloads/hami-eks.pem; alternatively, define and reuse a local KEY_FILE
variable for both commands.
- Line 84: Add the required Markdown boundaries in the tutorial: insert a blank
line before the “## Step 1: Create a Virtual Machine” heading, properly fence
the “kubectl get nodes” command with a bash code block, and add a blank line
before the WebUI code fence and the corresponding locations noted in the
comment. Ensure each heading and fenced block is separated from surrounding
content to satisfy MD022/MD031.
- Around line 424-425: Update the AWS cost note in the installation instructions
so AWS users do not skip control-plane taint removal; require the kubectl taint
removal command for both AWS and GCP before continuing to Step 4, unless an
equivalent AWS scheduling workaround is documented.
- Around line 665-666: Update the GPU registration check near the kubectl
command to ensure jq is available first by running apt-get update and apt-get
install -y jq, then preserve the existing JSON output inspection; alternatively
replace the jq pipeline with an equivalent jq-free command.
- Around line 98-99: Replace the invalid AMI_ID value in the installation
instructions with a valid Ubuntu AMI ID for eu-west-3, or define region-specific
valid AMI IDs for every supported region while keeping the run-instances command
compatible.
- Around line 73-75: Align the GCP installation flow with GPU Operator v25.3.0
by changing the Kubernetes version from 1.34 to v1.33 everywhere in this
tutorial, including the documented prerequisites, kubeadm init configuration,
package repository, and expected node output. Update the related sections around
the GCP setup and verification steps consistently, without changing the operator
version.
- Around line 720-726: Update the WebUI access instructions around the kubectl
port-forward command to use localhost binding by default, or provide SSH port
forwarding as the access method. If documenting a 0.0.0.0 bind alternative,
explicitly require source-restricted security group or firewall ingress for TCP
3000, and update the URL accordingly.
- Around line 140-146: Remove the hard-coded GRUB_DEFAULT edit using the
embedded root UUID. In the documented boot flow, instruct the user to select the
installed 6.8 AWS kernel from the local GRUB menu, then verify the active kernel
with uname -r instead of relying on a saved GRUB entry.

---

Nitpick comments:
In `@tutorials/labs/online-install.md`:
- Around line 715-718: Replace the passive kubectl get pods check in the WebUI
installation flow with kubectl wait --for=condition=Ready, using the chart’s
app.kubernetes.io/name=hami-webui selector and kube-system namespace before
port-forwarding. Retain the existing pod verification context while ensuring the
command waits for readiness and fails when the pod cannot become Ready.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3bfff102-8f07-4990-9959-1bb3a6d3ca64

📥 Commits

Reviewing files that changed from the base of the PR and between eb4f846 and aa38057.

📒 Files selected for processing (1)
  • tutorials/labs/online-install.md

Comment thread tutorials/labs/online-install.md
Comment thread tutorials/labs/online-install.md
Comment thread tutorials/labs/online-install.md Outdated
Comment thread tutorials/labs/online-install.md
Comment thread tutorials/labs/online-install.md Outdated
Comment thread tutorials/labs/online-install.md Outdated
Comment thread tutorials/labs/online-install.md Outdated
Comment thread tutorials/labs/online-install.md
Comment thread tutorials/labs/online-install.md
@Creativeklvn
Creativeklvn force-pushed the tutorial-lab-1 branch 3 times, most recently from c21da76 to ba9ff31 Compare August 8, 2026 11:37

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tutorials/labs/online-install.md`:
- Around line 57-61: Update the AWS prerequisites in the tutorial to state that
aws login requires AWS CLI v2.32.0 or newer, or replace it with an
authentication flow supported by older AWS CLI versions. Ensure the documented
setup steps clearly communicate the required CLI compatibility.
- Around line 101-103: Add a step before 1.2 to create or verify the EC2 key
pair named by KEY_NAME in REGION, ensuring the corresponding private key is
available locally. Define or reuse that private-key path consistently in both
SSH commands instead of referencing an unverified or duplicated path.
- Around line 109-115: The run-instances command must explicitly launch a
publicly reachable SSH-enabled spot instance. Update the command to use a public
subnet, an SSH-permitting security group restricted to the user’s IP, and
--associate-public-ip-address, while preserving the existing instance, storage,
spot, and region options.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 120d0b22-17cf-4c42-b964-c7144fa82d6b

📥 Commits

Reviewing files that changed from the base of the PR and between aa38057 and ba9ff31.

📒 Files selected for processing (1)
  • tutorials/labs/online-install.md

Comment thread tutorials/labs/online-install.md
Comment thread tutorials/labs/online-install.md Outdated
Comment thread tutorials/labs/online-install.md
Signed-off-by: Kelvin Uneze <kelvinuneze@gmail.com>
…tation

Signed-off-by: Kelvin Uneze <kelvinuneze@gmail.com>
…tation

Signed-off-by: Kelvin Uneze <kelvinuneze@gmail.com>
Signed-off-by: Kelvin Uneze <kelvinuneze@gmail.com>
Signed-off-by: Kelvin Uneze <kelvinuneze@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs dco-signoff: yes kind/documentation Improvements or additions to documentation size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add AWS GPU Support to Hami Tutorial Lab 1 Documentation

1 participant