Skip to content

docs: improve setup prerequisites and onboarding guidance#1688

Closed
gouravi19 wants to merge 4 commits into
kmesh-net:mainfrom
gouravi19:docs/improve-setup-guide
Closed

docs: improve setup prerequisites and onboarding guidance#1688
gouravi19 wants to merge 4 commits into
kmesh-net:mainfrom
gouravi19:docs/improve-setup-guide

Conversation

@gouravi19
Copy link
Copy Markdown

Summary

This PR improves contributor onboarding and setup guidance, especially for macOS users and new contributors working with local Kubernetes environments.

Improvements

  • Added clearer setup prerequisites
  • Improved onboarding documentation
  • Added troubleshooting guidance for Docker, kind, and disk-space-related setup issues
  • Improved local development setup clarity
  • Enhanced macOS contributor onboarding experience

Motivation

While setting up the project locally, I encountered several onboarding issues related to Docker readiness, Node.js compatibility, storage requirements, and local Kubernetes setup. These improvements aim to make the setup experience smoother for future contributors.

Closes #1642

Copilot AI review requested due to automatic review settings May 10, 2026 06:48
@kmesh-bot
Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign hzxuzhonghu 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

@gemini-code-assist
Copy link
Copy Markdown

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 significantly improves the contributor onboarding experience by centralizing setup requirements and providing clear guidance for macOS users. By documenting common pitfalls and resource requirements for local Kubernetes environments, it reduces friction for new contributors and ensures a more reliable development setup.

Highlights

  • Enhanced Onboarding Documentation: Added a comprehensive Prerequisites section to CONTRIBUTING.md, detailing necessary tools like Docker Desktop, kind, kubectl, and Node.js.
  • macOS Support Clarity: Explicitly documented that local development is fully supported on macOS via Docker Desktop and kind, providing specific installation commands for macOS users.
  • Troubleshooting Guide: Introduced a new Troubleshooting section in the local development guide to address common issues like resource constraints, OOM errors, and disk space limitations.
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 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 .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 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.


Docs were sparse and hard to read, / Now the path is clear indeed. / With macOS and Docker set, / The best setup you'll ever get.

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.

@kmesh-bot
Copy link
Copy Markdown
Collaborator

Welcome @gouravi19! It looks like this is your first PR to kmesh-net/kmesh 🎉

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

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 enhances the documentation to support local development on macOS using Docker Desktop and kind. It adds detailed prerequisites, installation instructions for macOS, and a troubleshooting guide for common resource and connectivity issues. Feedback was provided to replace a destructive Docker cleanup command with a safer alternative to prevent accidental data loss.

Comment thread docs/en/kmesh_deploy_and_develop_in_kind.md Outdated
@gouravi19 gouravi19 force-pushed the docs/improve-setup-guide branch from 52dfbf5 to 48d37f7 Compare May 10, 2026 06:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@yashisrani
Copy link
Copy Markdown
Contributor

Screenshot 2026-05-17 at 11 06 01 AM

@gouravi19 please fix this markdown linting issues

Signed-off-by: Gouravi Singh <gouravisingh120@gmail.com>
@gouravi19 gouravi19 force-pushed the docs/improve-setup-guide branch from 48d37f7 to c059ce7 Compare May 18, 2026 07:55
Copilot AI review requested due to automatic review settings May 18, 2026 08:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (2)

docs/en/kmesh_deploy_and_develop_in_kind.md:169

  • There's a stray backtick in this heading. The text reads `make build` container gets OOMKilled` — there are three backticks total, so the final backtick has no matching opener and breaks the inline code formatting. The closing should likely be after OOMKilled only if a matching opening backtick is added (e.g., around OOMKilled), or the trailing backtick should be removed.
### 2. `make build` container gets OOMKilled`

CONTRIBUTING.md:59

  • This section references a "Kmesh UI", "Headlamp plugins", and "the UI repository" as if these are established parts of the Kmesh project, but a search of the repository finds no such frontend, Headlamp integration, Node.js code, or linked UI repository. Documenting setup steps (e.g., requiring Node.js v18+, nvm use 18) for a non-existent component is misleading to contributors and likely incorrect. Either the referenced UI/Headlamp integration needs a concrete link to a real repo or component, or these sections (and the related Node.js prerequisite on line 46, the frontend reference in the README, and the UI troubleshooting item in kmesh_deploy_and_develop_in_kind.md) should be removed.
### Frontend and Headlamp UI Setup

If your contributions involve the Kmesh UI or Headlamp plugins:

1. Ensure Node.js v18 or newer is installed (we recommend using `nvm` to manage Node versions).
2. Follow the plugin development instructions in the UI repository. The Kmesh `kind` cluster will serve as the backend data source for the frontend.

Comment thread CONTRIBUTING.md Outdated
- **Docker Desktop**: Required for local cluster creation. (Ensure you allocate at least 4 CPUs, 8GB RAM, and 20GB disk space).
- **kind (Kubernetes IN Docker)**: Used to spin up the local cluster.
- **kubectl**: For interacting with the local cluster.
- **Node.js (v18+)**: Required if you plan to develop or test the Frontend / Headlamp UI integration.
Comment thread README.md Outdated
## Contributing

If you're interested in being a contributor and want to get involved in developing Kmesh, please see [CONTRIBUTING](CONTRIBUTING.md) for more details on submitting patches and the contribution workflow.
If you're interested in being a contributor and want to get involved in developing Kmesh, please see [CONTRIBUTING](CONTRIBUTING.md) for more details on submitting patches and the contribution workflow. We fully support local development on macOS via Docker Desktop and `kind`. For detailed setup instructions, including frontend UI setup and troubleshooting, refer to our [Local Development Guide](docs/en/kmesh_deploy_and_develop_in_kind.md).
Comment on lines +180 to +184
### 4. UI / Frontend fails to connect to backend

+ **Cause**: Node.js version mismatch or local Kmesh pods are not fully running.
+ **Solution**: Ensure you are using Node.js v18+ (e.g., `nvm use 18`). Verify Kmesh pods are `Running` via `kubectl get pods -n kmesh-system`.

Comment on lines +68 to 71
Please follow the official guide for your operating system:
+ [Install and Set Up kubectl on Linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
+ **For macOS:** `brew install kubectl`

Copilot AI review requested due to automatic review settings May 18, 2026 08:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

Comments suppressed due to low confidence (1)

docs/en/kmesh_deploy_and_develop_in_kind.md:72

  • The "Install kubectl" step now contains two redundant "Please follow the official guide" sentences (line 68 introduces it, then line 71 repeats it for Linux). Consider consolidating so the intro line isn't duplicated by the Linux subsection.
    Please follow the official guide for your operating system:

**For Linux:**
Please follow the official guide:
[Install and Set Up kubectl on Linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)

+ **Cause**: Docker Desktop is out of resources.
+ **Solution**: Increase Docker Desktop's resource limits (Settings > Resources). We recommend at least 4 CPUs and 8GB of RAM.

### 2. `make build` container gets OOMKilled`
Comment on lines +70 to +78
**For Linux:**
Please follow the official guide:
[Install and Set Up kubectl on Linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)

**For macOS:**

```shell
brew install kubectl
```
Comment thread CONTRIBUTING.md

While Kmesh relies heavily on Linux kernel features (eBPF) for its data plane, **full local development is supported on macOS**. You do not need a Linux machine to contribute. By using Docker Desktop and `kind`, you will run a lightweight Linux VM that fully supports Kmesh's eBPF requirements.

For detailed steps on setting up this environment (including macOS-specific tips and troubleshooting), please follow the [Kmesh Deploy and Develop in Kind](docs/en/kmesh_deploy_and_develop_in_kind.md) guide.
Comment thread CONTRIBUTING.md
If your contributions involve the Kmesh UI or Headlamp plugins:

1. Ensure Node.js v18 or newer is installed (we recommend using `nvm` to manage Node versions).
2. Follow the plugin development instructions in the UI repository. The Kmesh `kind` cluster will serve as the backend data source for the frontend.
Comment thread CONTRIBUTING.md
Comment on lines +49 to +52
While Kmesh relies heavily on Linux kernel features (eBPF) for its data plane, **full local development is supported on macOS**. You do not need a Linux machine to contribute. By using Docker Desktop and `kind`, you will run a lightweight Linux VM that fully supports Kmesh's eBPF requirements.

For detailed steps on setting up this environment (including macOS-specific tips and troubleshooting), please follow the [Kmesh Deploy and Develop in Kind](docs/en/kmesh_deploy_and_develop_in_kind.md) guide.

Comment thread CONTRIBUTING.md
Comment on lines +39 to +45
### Prerequisites

Before you begin, ensure you have the following installed:

- **Docker Desktop**: Required for local cluster creation. (Ensure you allocate at least 4 CPUs, 8GB RAM, and 20GB disk space).
- **kind (Kubernetes IN Docker)**: Used to spin up the local cluster.
- **kubectl**: For interacting with the local cluster.
Comment thread CONTRIBUTING.md

If your contributions involve the Kmesh UI or Headlamp plugins:

1. Ensure Node.js v18 or newer is installed (we recommend using `nvm` to manage Node versions).
@gouravi19 gouravi19 closed this May 18, 2026
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.

Improve setup documentation with prerequisites and clearer installation flow

4 participants