Skip to content

Conversation

@sachin21212121
Copy link

This PR updates the install-with-keadm.md documentation for KubeEdge v1.21. Key changes include:

  1. Keadm Update: Instructions updated to reflect KubeEdge v1.21 installation.
  2. Fixed Broken Links: Corrected wget, git clone commands, and kubectl logs/exec documentation links.
  3. Removed Deprecated Markdown Syntax: Cleaned up commands to avoid Markdown link syntax in shell commands.
  4. Metrics-server Instructions: Added correct steps to build, tag, and deploy metrics-server on the cloud node.
  5. Cleaned Up File: Removed redundant content, empty code blocks, and merged all previous fixes.

@kubeedge-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign dingyin after the PR has been reviewed.
You can assign the PR to them by writing /assign @dingyin in a comment when ready.

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

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

Summary of Changes

Hello @sachin21212121, 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 refines the install-with-keadm.md documentation to align with KubeEdge v1.21. The changes aim to provide clearer, more accurate installation instructions, including updated command examples and improved guidance for setting up metrics-server. The overall goal is to enhance the user experience for new and existing KubeEdge deployments by ensuring the documentation is current and precise.

Highlights

  • KubeEdge v1.21 Update: Instructions for keadm installation and usage are updated to reflect KubeEdge version v1.21.0 across all relevant commands.
  • Documentation Clarity and Fixes: Broken links, deprecated Markdown syntax, and redundant content have been removed or corrected, improving overall readability and accuracy of the installation guide.
  • Metrics-server Deployment: Comprehensive steps for building, tagging, and deploying metrics-server on the cloud node are now included, addressing previous manual compilation requirements for older versions and providing detailed YAML examples.
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 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 counter productive. 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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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.

@kubeedge-bot kubeedge-bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Sep 26, 2025
Copy link

@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 provides a significant and valuable update to the install-with-keadm.md documentation, bringing it up to date for KubeEdge v1.21. The refactoring has greatly improved readability and conciseness by removing outdated information, fixing links, and reorganizing content. My review focuses on further enhancing clarity and preventing potential user errors, particularly in the metrics-server setup instructions. I've identified a couple of high-severity issues related to a hardcoded node name and an undefined environment variable that could cause commands to fail for users. Additionally, I've suggested some medium-severity improvements for consistency in markdown formatting and command examples.

```shell
keadm deprecated join --cloudcore-ipport="THE-EXPOSED-IP":10000 --token=27a37ef16159f7d3be8fae95d588b79b3adaaf92727b72659eb89758c66ffda2.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAyMTYwNzd9.JBj8LLYWXwbbvHKffJBpPd5CyxqapRQYDIXtFZErgYE --kubeedge-version=1.12.0
```bash
iptables -t nat -A OUTPUT -p tcp --dport 10350 -j DNAT --to $CLOUDCOREIPS:10003

Choose a reason for hiding this comment

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

high

The command uses the environment variable $CLOUDCOREIPS, but this variable is not defined or mentioned in this document. This will cause the command to fail for users. Please add a note before this code block explaining that $CLOUDCOREIPS should be set to the IP address of the CloudCore instance. For example: export CLOUDCOREIPS="<your-cloudcore-ip>".

- key: kubernetes.io/hostname
operator: In
values:
- charlie-latest

Choose a reason for hiding this comment

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

high

The value charlie-latest is a hardcoded node name. This will cause the deployment to fail for users who don't have a node with this exact name. Please replace it with a placeholder like <your-master-node-name> and add a comment explaining that users need to replace it with their actual master node's hostname.

Suggested change
- charlie-latest
- <your-master-node-name>

3. Build from Source

- Refer to [build from source](./install-with-binary#build-from-source) for instructions.
### 2\. Download from Docker Hub

Choose a reason for hiding this comment

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

medium

The backslash before the dot in this heading is unnecessary and makes the markdown source inconsistent with the 1. heading. For consistency and better readability of the raw markdown, it's better to remove it.

Suggested change
### 2\. Download from Docker Hub
### 2. Download from Docker Hub

Copy link
Contributor

Choose a reason for hiding this comment

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

i second this suggested change.

```

By default, ports `10000` and `10002` on your CloudCore needs to be accessible for your edge nodes.
### 3\. Build from Source

Choose a reason for hiding this comment

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

medium

The backslash before the dot in this heading is unnecessary and makes the markdown source inconsistent with the 1. heading. For consistency and better readability of the raw markdown, it's better to remove it.

Suggested change
### 3\. Build from Source
### 3. Build from Source


You can also use `keadm deprecated join` to start EdgeCore from the release package. It will download release packages from [KubeEdge release website](https://github.com/kubeedge/kubeedge/releases), and then start `edgecore` in binary progress.
```bash
kubectl apply -f <deployment-yaml>

Choose a reason for hiding this comment

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

medium

The placeholder <deployment-yaml> is a bit vague. Since an example with a filename is provided just below (metrics-server-deployment.yaml), it would be more helpful and direct for the user to use that filename in the command.

Suggested change
kubectl apply -f <deployment-yaml>
kubectl apply -f metrics-server-deployment.yaml

Copy link
Contributor

@fujitatomoya fujitatomoya left a comment

Choose a reason for hiding this comment

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

i got several comments for this PR, most of them are cosmetic fixes.

```shell
docker run --rm kubeedge/installation-package:v1.17.0 cat /usr/local/bin/keadm > /usr/local/bin/keadm && chmod +x /usr/local/bin/keadm
```
```bash
Copy link
Contributor

Choose a reason for hiding this comment

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

i do not see the hard requirement to be bash in this code block? and there are many places that use shell as well, why this needs to be bash prompt?

3. Build from Source

- Refer to [build from source](./install-with-binary#build-from-source) for instructions.
### 2\. Download from Docker Hub
Copy link
Contributor

Choose a reason for hiding this comment

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

i second this suggested change.

Comment on lines +6 to +8
Keadm is used to install the cloud and edge components of KubeEdge.
It does **not** handle Kubernetes installation or its [runtime environment](https://kubeedge.io/docs/setup/prerequisites/runtime).
Check [Kubernetes compatibility](https://github.com/kubeedge/kubeedge?tab=readme-ov-file#kubernetes-compatibility) to confirm supported versions.
Copy link
Contributor

Choose a reason for hiding this comment

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

if we are trying to recommend or enforce the rule that single sentence per line, this does not really work for us unless we have some static checker to detect the PR via github workflow? i mean, we can fix one by one, but this goes out of control anyway, because there is no systematic check.

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

Labels

size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants