Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 64 additions & 43 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,136 +6,157 @@ There are various ways in which you can contribute to this project such as `upda

When making any critical change to this repository, please first discuss the change you wish to make via issue, email, or any other method with the [owners](https://github.com/volcano-sh/dashboard/blob/main/OWNERS) of this repository before making a change.

## Getting Started

Make sure [`node.js`](https://nodejs.org/en/download) is installed on your system and we prefer [`visual-studio-code`](https://code.visualstudio.com/download) as IDE.
## Before You Get Started

### Prerequisites

Please follow the [guide](https://github.com/volcano-sh/volcano#quick-start-guide) to install volcano first.
To contribute to the volcano dashboard project, you need:

### Install volcano dashboard
- [`node.js`](https://nodejs.org/en/download) installed on your system
Copy link

Copilot AI Jan 8, 2026

Choose a reason for hiding this comment

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

The official name of the JavaScript runtime is "Node.js" (with capital N), not "node.js". This should be corrected for proper naming convention.

Suggested change
- [`node.js`](https://nodejs.org/en/download) installed on your system
- [`Node.js`](https://nodejs.org/en/download) installed on your system

Copilot uses AI. Check for mistakes.
- A running Kubernetes cluster with [Volcano](https://github.com/volcano-sh/volcano#quick-start-guide) installed
- Volcano dashboard deployed (see [Installation Guide](README.md#installation) in the main README)
- Recommended IDE: [`Visual Studio Code`](https://code.visualstudio.com/download)
Copy link
Member

Choose a reason for hiding this comment

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

@copilot I think we don't need to recommend IDE

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed the IDE recommendation. (deb2d29)


Login one node of your kubernetes cluster and execute the following command to install volcano dashboard.
## Your First Contribution

```bash
kubectl create ns volcano-system
We are always in need of help, be it fixing documentation, reporting bugs, or writing code. Look at places where you feel best coding practices aren't followed, code refactoring is needed, or tests are missing.

kubectl apply -f https://raw.githubusercontent.com/volcano-sh/dashboard/main/deployment/volcano-dashboard.yaml
```
### Find Something to Work On

Then use the following command to map the traffic to node.
Check out the [issues](https://github.com/volcano-sh/dashboard/issues) in this repository. Issues labeled [good first issue](https://github.com/volcano-sh/dashboard/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) are great starting points for new contributors.

```bash
kubectl port-forward svc/volcano-dashboard 8080:80 -n volcano-system --address 0.0.0.0
```
### Work on an Issue
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added "File an Issue" section similar to volcano's contribute.md. (deb2d29)


Access the dashboard by navigate to `http://$YOUR_NODE_IP:8080` in your browser.
When you are willing to take on an issue, you can assign it to yourself. Just reply with `/assign` or `/assign @yourself` on an issue, and the robot will assign the issue to you.

If running locally navigate to `http://localhost:8080`
## Contributor Workflow

### Development
### Setting Up Development Environment
Copy link
Member

Choose a reason for hiding this comment

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

@copilot I think we don't need to refactor contents in ### Development part

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverted the Development section to its original formatting. (deb2d29)


1. First of all, `fork` this repo.
2. Next -> clone your branch.
1. Fork this repository

2. Clone your forked repository:

```bash
git clone https://github.com/<your-user-name>/dashboard.git
```

`note`: replace `<your-user-name>` with your github username.
**Note:** Replace `<your-user-name>` with your GitHub username.

3. Move to cloned dir and if you want to make changes to our codebase then create new branch
3. Navigate to the cloned directory and create a new branch:

```bash
cd dashboard/

git checkout -b <your-branch-name>
```

4. Install [nvm](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script)
4. Install [nvm](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script) (Node Version Manager)

5. Use similar version
5. Use the project's Node.js version:

```bash
nvm use
```

6. Install the dependencies
6. Install dependencies:

```bash
npm ci
```

7. Run the `dev` script
7. Start the development server:

```bash
npm run dev
```

### Inside kubernetes cluster
### Building Docker Images for Testing

You can build the volcano dashboard images locally. Please use the following command to build docker images of volcano dashboard.
If you need to test your changes inside a Kubernetes cluster, you can build Docker images locally:

Build images.
1. Build the frontend image:

```bash
// build frontend image.
docker build -t frontend:dev . -f deployment/build/frontend/Dockerfile
// build backend image.
```

2. Build the backend image:

```bash
docker build -t backend:dev . -f deployment/build/backend/Dockerfile
```

After that you can replace the images in `volcano-dashboard.yaml` to verify the result.
3. Update the image references in `deployment/volcano-dashboard.yaml` (replace the official images with `frontend:dev` and `backend:dev`) and deploy:

```bash
kubectl apply -f deployment/volcano-dashboard.yaml
```

## Code Style and Standards
## Code Standards

### Code Style and Formatting

- Run prettier to format the code before commiting changes:
Run Prettier to format the code before committing changes:

```bash
npm run format
```

## Submitting Pull Requests

We are assuming that you have made the changes in the code by following above guidelines.
### Creating Pull Requests
Copy link
Member

Choose a reason for hiding this comment

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

@copilot I think we don't need to refactor the ###Creating Pull Requests part except the 4. Create a pull request

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverted the "Creating Pull Requests" section to original formatting, keeping only the new item 4. (deb2d29)


When contributing changes, follow these steps:

When contributing changes, you need to ensure that your commits are properly signed off. This helps maintain accountability and ensures compliance with contribution policies.
1. **Ensure your commits are properly signed off**

How to [signoff](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt--s) your commit(s)?
All commits must include a sign-off to maintain accountability and ensure compliance with contribution policies.

1. Commit Your Changes
Commit your changes with sign-off:

```bash
git commit -s -m "Your commit message here"
```

2. Verify Your Commit
2. **Verify your commit includes the sign-off**

To check if your commit includes a sign-off, run:
Check that your commit includes a sign-off line:

```bash
git log -1
```

You should see a line like:

```bash
```
Signed-off-by: Your Name <your.email@example.com>
```

If you forgot to sign off, amend the commit with:
If you forgot to sign off, amend the commit:

```bash
git commit --amend -s
```

3. Push Your Changes
3. **Push your changes**

```bash
git push origin <your-branch>
```

4. **Create a pull request**

Submit a pull request to the [volcano-sh/dashboard](https://github.com/volcano-sh/dashboard) repository. The PR should:
- Have a clear and descriptive title
- Include a detailed description of the changes
- Reference any related issues

### Code Review

To make it easier for your PR to receive reviews:
- Follow good coding practices and conventions
- Write clear commit messages
- Break large changes into smaller, logical commits
- Respond to review feedback promptly

Thank you for contributing to the Volcano Dashboard project!
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,39 @@ The volcano dashboard provides a basic dashboard that can be easily deployed in

You can follow the [design doc](docs/design.md) to learn more about the design details.

## Installation

### Prerequisites

Before installing the volcano dashboard, please ensure you have:
- A running Kubernetes cluster
- `kubectl` configured to access your cluster
- Volcano installed on your cluster (follow the [Volcano Quick Start Guide](https://github.com/volcano-sh/volcano#quick-start-guide))

### Install Volcano Dashboard

1. Create the volcano-system namespace (if it doesn't exist):

```bash
kubectl create ns volcano-system
```

2. Deploy the volcano dashboard:

```bash
kubectl apply -f https://raw.githubusercontent.com/volcano-sh/dashboard/main/deployment/volcano-dashboard.yaml
```

3. Access the dashboard by port-forwarding the service:

```bash
kubectl port-forward svc/volcano-dashboard 8080:80 -n volcano-system --address 0.0.0.0
Copy link

Copilot AI Jan 8, 2026

Choose a reason for hiding this comment

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

The kubectl port-forward example binds the dashboard service to 0.0.0.0, which exposes it on all network interfaces and, together with the remote access instructions below, can make the dashboard reachable to anyone who can reach that host and port. If the dashboard is not protected by strong authentication/authorization, this can lead to unauthorized access to cluster information or actions. Consider binding the port-forward to localhost only and requiring a secure channel (e.g., SSH tunnel or VPN) for remote access instead of exposing it on all interfaces.

Copilot uses AI. Check for mistakes.
```

4. Open your browser and navigate to:
- For local access: `http://localhost:8080`
- For remote access: `http://<NODE_IP>:8080` (replace `<NODE_IP>` with your Kubernetes node's IP address)

## Contributing

You can follow our [CONTRIBUTING.md](CONTRIBUTING.md).
Expand Down