Skip to content

docs(get-started): simplify quick start and online installation guides - #712

Open
singhsrijan46 wants to merge 1 commit into
Project-HAMi:masterfrom
singhsrijan46:feat/quickstart-installation-simplification
Open

docs(get-started): simplify quick start and online installation guides#712
singhsrijan46 wants to merge 1 commit into
Project-HAMi:masterfrom
singhsrijan46:feat/quickstart-installation-simplification

Conversation

@singhsrijan46

@singhsrijan46 singhsrijan46 commented Aug 3, 2026

Copy link
Copy Markdown

What type of PR is this?

/kind documentation

What this PR does / why we need it:

Simplified the quick start guide and cleaned up old installation commands.

Changes made:
Updated deploy-with-helm.md to be a clear, single-page quick start.
Added NVIDIA Container Toolkit to prerequisites and removed extra setup steps from the quick start.
Removed kubectl version step and old --set scheduler.kubeScheduler.image.tag=v1.29.0 command from online-installation.md.
Updated Chinese translation files and synced changes to version-v2.9.0.

Which issue(s) this PR fixes:

Fixes #689

Checklist:

  • npm run lint and npm run format:check pass
  • npm run build succeeds for both en and zh
  • Chinese translation updated if English docs changed (or noted why not)
  • Commits are signed off (git commit -s)

Summary by CodeRabbit

  • Documentation
    • Simplified Helm installation instructions into a clear, numbered workflow.
    • Added prerequisites for Helm, kubectl, CUDA, NVIDIA drivers, and NVIDIA Container Toolkit.
    • Added steps for labeling GPU nodes, deploying workloads, verifying GPU memory limits, and cleaning up.
    • Updated translated and versioned guides to match the streamlined quick-start experience.
    • Added optional custom configuration guidance and clearer installation verification steps.

Signed-off-by: Srijan <singhsrijangkp@gmail.com>
@hami-robot hami-robot Bot added kind/documentation Improvements or additions to documentation dco-signoff: yes labels Aug 3, 2026
@hami-robot
hami-robot Bot requested review from archlitchi and rootsongjc August 3, 2026 16:31
@hami-robot

hami-robot Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: singhsrijan46
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 3, 2026

Copy link
Copy Markdown

Deploy Preview for project-hami ready!

Name Link
🔨 Latest commit 1eedf07
🔍 Latest deploy log https://app.netlify.com/projects/project-hami/deploys/6a70c264f780460008d5ccf5
😎 Deploy Preview https://deploy-preview-712--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.

@hami-robot hami-robot Bot added the size/XL label Aug 3, 2026
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

Helm quick-start documentation

Layer / File(s) Summary
Helm installation workflow
docs/installation/online-installation.md, i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md, i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md, versioned_docs/version-v2.9.0/installation/online-installation.md
The guides now document Helm repository setup, standard installation, optional values configuration, and HAMi Pod verification.
vGPU workload and memory verification
docs/get-started/deploy-with-helm.md, i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md, i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md, versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md
The quick-start guides add prerequisites, GPU-node labeling, vGPU workload submission, readiness checks, GPU memory verification, and cleanup steps.

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

Possibly related PRs

Suggested reviewers: rootsongjc

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR improves guide organization but does not address the required HAMi-DRA selection guidance or capability comparisons in [#689]. Add solution-selection and capability comparison content, or link this PR to a narrower issue for guide simplification.
✅ Passed checks (4 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed All changes update related English, Chinese, and versioned documentation guides; no unrelated code or product changes appear.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main documentation changes to the quick start and online installation guides.
✨ 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 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 `@docs/get-started/deploy-with-helm.md`:
- Around line 51-53: Update the manifest introduction in
docs/get-started/deploy-with-helm.md:51-53 and
versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md:51-53 to tell
users to save it as “gpu-pod.yaml”; add the equivalent Chinese instruction in
i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md:51-53
and
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md:51-53.

In `@docs/installation/online-installation.md`:
- Around line 35-43: Add the GPU-node labeling prerequisite before the helm
install hami step, instructing users to label applicable nodes with gpu=on or
clearly link to the existing prerequisite. Apply the same update to
docs/installation/online-installation.md lines 35-43,
i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md
lines 36-44,
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
lines 36-44, and
versioned_docs/version-v2.9.0/installation/online-installation.md lines 35-43.

In `@versioned_docs/version-v2.9.0/installation/online-installation.md`:
- Around line 21-23: Pin every Helm install command in the v2.9.0 archived
documentation to chart version 2.9.0 by adding the --version 2.9.0 option:
update versioned_docs/version-v2.9.0/installation/online-installation.md
(21-23),
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
(22-24), versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md (35-39),
and
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
(35-39).
🪄 Autofix (Beta)

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: 39546764-7bdb-4316-9973-a258774857ec

📥 Commits

Reviewing files that changed from the base of the PR and between 3ec2dc3 and 1eedf07.

📒 Files selected for processing (8)
  • docs/get-started/deploy-with-helm.md
  • docs/installation/online-installation.md
  • i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md
  • i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
  • versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md
  • versioned_docs/version-v2.9.0/installation/online-installation.md

Comment on lines +51 to 53
Create a Pod requesting 1 vGPU with 10240 MiB of GPU memory limit:

```yaml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Tell users to save the manifest as gpu-pod.yaml.

The page shows an inline manifest, but the next command applies gpu-pod.yaml. A user who follows the steps literally does not create that file.

  • docs/get-started/deploy-with-helm.md#L51-L53: add “Save the following manifest as gpu-pod.yaml:”.
  • i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md#L51-L53: add “将以下清单保存为 gpu-pod.yaml:”.
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md#L51-L53: add the same Chinese instruction.
  • versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md#L51-L53: add the same English instruction.
📍 Affects 4 files
  • docs/get-started/deploy-with-helm.md#L51-L53 (this comment)
  • i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md#L51-L53
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md#L51-L53
  • versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md#L51-L53
🤖 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 `@docs/get-started/deploy-with-helm.md` around lines 51 - 53, Update the
manifest introduction in docs/get-started/deploy-with-helm.md:51-53 and
versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md:51-53 to tell
users to save it as “gpu-pod.yaml”; add the equivalent Chinese instruction in
i18n/zh/docusaurus-plugin-content-docs/current/get-started/deploy-with-helm.md:51-53
and
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md:51-53.

Comment on lines +35 to +43
## 3. Verify Installation {#verify-installation}

You can verify your installation using the following command:
Verify that the HAMi components (`hami-device-plugin` and `hami-scheduler`) are running correctly:

```bash
kubectl get pods -n kube-system
kubectl get pods -n kube-system | grep hami
```

If both hami-device-plugin and hami-scheduler pods are in the Running state, your installation is successful.
If both `hami-device-plugin` and `hami-scheduler` pods are in the `Running` state, your installation is successful.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

files=(
  "docs/installation/online-installation.md"
  "i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md"
  "i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md"
  "versioned_docs/version-v2.9.0/installation/online-installation.md"
)

for file in "${files[@]}"; do
  rg -n 'gpu=on|label nodes|标记节点' "$file" || {
    echo "Missing GPU-node labeling instructions: $file"
    exit 1
  }
done

Repository: Project-HAMi/website

Length of output: 239


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target files =="
for f in \
  docs/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md \
  versioned_docs/version-v2.9.0/installation/online-installation.md
do
  echo "--- $f"
  wc -l "$f"
  sed -n '1,120p' "$f"
done

echo "== search for selector/label references in docs =="
rg -n "gpu=on|matchLabels|nodeSelector|label nodes|节点标签|GPU 节点|device-plugin|hami-device-plugin" docs i18n versioned_docs -S || true

Repository: Project-HAMi/website

Length of output: 50377


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target lines =="
for f in \
  docs/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md \
  versioned_docs/version-v2.9.0/installation/online-installation.md
do
  echo "--- $f"
  wc -l "$f"
  sed -n '1,90p' "$f"
done

echo "== prerequisites labeling sections =="
for f in \
  docs/installation/prerequisites.md \
  docs/installation/offline-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/current/installation/prerequisites.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/prerequisites.md \
  versioned_docs/version-v2.9.0/installation/prerequisites.md
do
  echo "--- $f"
  if [ -f "$f" ]; then
    rg -n "gpu=on|label nodes|标记节点|Prepare|准备" "$f" -C 3 || true
  fi
done

echo "== hami-device-plugin manifest snippets in docs = "
rg -n "app\.kubernetes\.io/component: hami-device-plugin|nodeSelector:|gpu: on|gpu=\"on\"|gpu:=on" docs/versioned_docs i18n/zh/docusaurus-plugin-content-docs -S --glob '*.md' --max-count 50 || true

Repository: Project-HAMi/website

Length of output: 9119


Add the GPU-node labeling prerequisite to the online installation pages.

hami-device-plugin depends on GPU nodes having the gpu=on label for HAMi scheduling. Add this step before helm install hami, or link clearly to the existing prerequisite, on all four pages:

  • docs/installation/online-installation.md
  • i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
  • versioned_docs/version-v2.9.0/installation/online-installation.md
📍 Affects 4 files
  • docs/installation/online-installation.md#L35-L43 (this comment)
  • i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md#L36-L44
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md#L36-L44
  • versioned_docs/version-v2.9.0/installation/online-installation.md#L35-L43
🤖 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 `@docs/installation/online-installation.md` around lines 35 - 43, Add the
GPU-node labeling prerequisite before the helm install hami step, instructing
users to label applicable nodes with gpu=on or clearly link to the existing
prerequisite. Apply the same update to docs/installation/online-installation.md
lines 35-43,
i18n/zh/docusaurus-plugin-content-docs/current/installation/online-installation.md
lines 36-44,
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
lines 36-44, and
versioned_docs/version-v2.9.0/installation/online-installation.md lines 35-43.

Source: MCP tools

Comment on lines 21 to 23
```bash
kubectl version
helm install hami hami-charts/hami -n kube-system
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== repo files =="
git ls-files | rg 'versioned_docs/version-v2\.9\.0|docusaurus-plugin-content-docs/version-v2\.9\.0' | sed -n '1,120p'

echo "== relevant files context =="
for f in \
  versioned_docs/version-v2.9.0/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md \
  versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
do
  if [ -f "$f" ]; then
    echo "--- $f"
    wc -l "$f"
    sed -n '1,80p' "$f" | nl -ba
  else
    echo "MISSING $f"
  fi
done

echo "== search for pinned helm install commands in v2.9 docs =="
rg -n "helm (repo add|update|install)|PROJECT_HAMI_CHART|chart|version 2\.9|v2\.9" versioned_docs/version-v2.9.0 i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0 -g '*.md'

Repository: Project-HAMi/website

Length of output: 11989


🌐 Web query:

project-hami tutorials labs online-install helm install hami-charts/hami --version 2.9.0

💡 Result:

HAMi (Heterogeneous AI Computing Virtualization Middleware) is a CNCF-incubating open-source project designed to provide GPU virtualization and heterogeneous accelerator scheduling for Kubernetes [1][2][3]. It enables device sharing, resource isolation, and device-aware scheduling across various hardware, including NVIDIA GPUs, NPUs, and other AI accelerators [4][5]. To perform an online installation of HAMi using Helm, follow these steps [6][7]: 1. Add the HAMi repository to your Helm configuration: helm repo add hami-charts https://project-hami.github.io/HAMi/ helm repo update 2. Install the desired version using Helm [8]: helm install hami hami-charts/hami --version 2.9.0 -n hami-system --create-namespace Note: While the general command uses the hami-system namespace [8], earlier documentation or tutorials may suggest the kube-system namespace [6][7]. Verify your specific cluster requirements. You can also customize the deployment by setting parameters like the Kubernetes scheduler image tag to match your cluster version [6]. For hands-on learning, the project provides official tutorials and labs available at the official project website. These include: - Lab 1: Online Installation of HAMi, which covers building a GPU-enabled Kubernetes cluster and installing HAMi [9][10]. - Lab 2: Local Fake GPU Setup, which allows you to learn the HAMi control plane without needing physical GPU hardware [11]. For more information, visit the official documentation at project-hami.io [1][2].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== relevant file contents =="
for f in \
  versioned_docs/version-v2.9.0/installation/online-installation.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md \
  versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md \
  i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
do
  if [ -f "$f" ]; then
    echo "--- $f"
    head -n 80 "$f"
  else
    echo "MISSING $f"
  fi
done

echo "== broader v2.9 docs pin usage =="
rg -n "helm .*hami-charts/hami" versioned_docs/version-v2.9.0 i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0 -g '*.md' || true
rg -n "2\.9\.0|--version" versioned_docs/version-v2.9.0 i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0 -g '*.md' | rg "helm|2\.9\.0" || true

Repository: Project-HAMi/website

Length of output: 15414


🌐 Web query:

HAMi v2.9.0 release tutorial online install helm command hami-charts/hami helm install

💡 Result:

To install HAMi v2.9.0, follow the standard online installation procedure via Helm [1]. Ensure your environment meets the prerequisites, which include Kubernetes v1.23+, Helm v3+, NVIDIA drivers (v440+), and proper configuration of the NVIDIA container toolkit [2][3]. Installation Steps: 1. Label your GPU nodes so they can be managed by the HAMi scheduler [4][3]: kubectl label nodes gpu=on 2. Add and update the HAMi Helm repository [1][3]: helm repo add hami-charts https://project-hami.github.io/HAMi/ helm repo update 3. Install HAMi [1][3]: It is recommended to specify the Kubernetes scheduler image tag to match your cluster's Kubernetes server version [1]. Replace vX.Y.Z with your actual version: helm install hami hami-charts/hami --set scheduler.kubeScheduler.imageTag=vX.Y.Z -n kube-system 4. Verify the installation [1][3]: Check that the hami-device-plugin and hami-scheduler pods are in the Running state: kubectl get pods -n kube-system For upgrading an existing installation to v2.9.0, use the following command [5]: helm upgrade hami hami-charts/hami -n kube-system For comprehensive documentation and configuration options (such as Volcano or Ascend device support), refer to the official HAMi documentation at https://project-hami.io/docs/ [5][1].

Citations:


🌐 Web query:

"website/blob/master/blog/hami-v2-9-0-release/index.md" "helm install" "2.9.0"

💡 Result:

To install HAMi version 2.9.0 using Helm, follow these steps to add the official repository and deploy the chart [1][2]. 1. Add the HAMi Helm repository to your local environment: helm repo add hami-charts https://project-hami.github.io/HAMi/ helm repo update 2. Install the HAMi 2.9.0 chart. You can deploy it into a specific namespace, such as hami-system or kube-system [1][2][3][4]: helm install hami hami-charts/hami -n hami-system --create-namespace If you are upgrading an existing deployment to version 2.9.0, use the upgrade command [1][2]: helm upgrade hami hami-charts/hami -n hami-system Ensure that your environment meets the necessary prerequisites, such as having Kubernetes v1.16+, Helm v3+, and the required NVIDIA drivers or other device runtimes if applicable [3]. Detailed installation and configuration documentation can be found on the official HAMi website [1][3].

Citations:


Pin the Helm chart in the pinned v2.9.0 install commands.

Use helm install hami hami-charts/hami --version 2.9.0 -n kube-system in the versioned v2.9.0 install steps so later chart releases cannot change these archived instructions.

  • versioned_docs/version-v2.9.0/installation/online-installation.md
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
  • versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
📍 Affects 4 files
  • versioned_docs/version-v2.9.0/installation/online-installation.md#L21-L23 (this comment)
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md#L22-L24
  • versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md#L35-L39
  • i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md#L35-L39
🤖 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 `@versioned_docs/version-v2.9.0/installation/online-installation.md` around
lines 21 - 23, Pin every Helm install command in the v2.9.0 archived
documentation to chart version 2.9.0 by adding the --version 2.9.0 option:
update versioned_docs/version-v2.9.0/installation/online-installation.md
(21-23),
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/installation/online-installation.md
(22-24), versioned_docs/version-v2.9.0/get-started/deploy-with-helm.md (35-39),
and
i18n/zh/docusaurus-plugin-content-docs/version-v2.9.0/get-started/deploy-with-helm.md
(35-39).

Source: MCP tools

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Re-arrange website contents

1 participant