diff --git a/README.md b/README.md index 39db5cd3..974e1589 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,178 @@ -# harvester -harvester UI extension +# harvester-ui-extension + +The Harvester UI Extension is a Rancher extension that provides the user interface for [Harvester](https://harvesterhci.io) within the [Rancher Dashboard](https://github.com/rancher/dashboard). + +> **Note:** +> This extension is available starting from **Rancher 2.10.0**. Ensure your Rancher version is **2.10.0 or later** to access Harvester integration. + +## Installation + +For detailed installation instructions, please refer to the [official Harvester documentation](https://docs.harvesterhci.io/v1.5/rancher/harvester-ui-extension#installation-on-rancher-210). + + +## Development Setup + +Ensure **Node.js v20 or later** is installed for development and debugging. + +### Standalone Mode + +Run the extension standalone with hot reload at `https://localhost:8005`. + +```bash +# Install dependencies +yarn install + +# Start the development server +RANCHER_ENV=harvester API=https://your-harvester-ip yarn dev + +# Example with specific server version +RANCHER_ENV=harvester VUE_APP_SERVER_VERSION=v1.5.0 API=https://192.168.1.123 yarn dev +``` + +You may also define environment variables in a `.env` file: + +```env +RANCHER_ENV=harvester +VUE_APP_SERVER_VERSION=v1.5.0 +API=https://192.168.1.123 +``` + +### Rancher Integration Mode + +To run as a Rancher extension, follow the [Rancher UI Extension Guide](https://extensions.rancher.io/extensions/next/extensions-getting-started#running-the-app). + +```bash +API=https://your-rancher-ip yarn dev +``` + +## Commit Message Guidelines + +This project uses [commit-lint](https://commitlint.js.org/) with [Conventional Commits](https://www.conventionalcommits.org/) to ensure consistent and meaningful commit messages. + +### Commit Message Format + +All commit messages must follow the conventional commit format: + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +### Supported Types + +- **feat**: New features +- **fix**: Bug fixes +- **docs**: Documentation changes +- **style**: Code style changes (formatting, missing semicolons, etc.) +- **refactor**: Code refactoring +- **perf**: Performance improvements +- **test**: Adding or updating tests +- **build**: Build system or external dependencies +- **ci**: CI/CD changes +- **chore**: Other changes that don't modify src or test files +- **revert**: Reverts a previous commit +- **wip**: Work in progress +- **deps**: Dependency updates +- **security**: Security fixes + +### Examples + +```bash +# Feature +git commit -m "feat: add new virtual machine creation wizard" + +# Bug fix +git commit -m "fix: resolve memory leak in VM console" + +# Documentation +git commit -m "docs: update installation instructions" + +# Breaking change +git commit -m "feat!: change API endpoint structure + +BREAKING CHANGE: The /api/v1/vms endpoint has been replaced with /api/v2/vms" +``` + +### Git Hooks + +The project uses [Husky](https://typicode.github.io/husky/) to automatically validate commit messages and run linting before commits: + +- **pre-commit**: Runs ESLint to ensure code quality +- **commit-msg**: Validates commit message format using commit-lint + +These hooks are automatically installed when you run `yarn install`. + +### Manual Validation + +You can manually validate commit messages: + +```bash +# Validate the last commit +yarn commitlint + +# Validate a specific commit +npx commitlint --from + +# Validate a range of commits +npx commitlint --from --to +``` + +## Branch Structure + +- **`main`** – Main development branch +- **`release-harvester-vX.Y`** – Stable release branches per version series +- **`vX.Y-head`** – Testing branches for ongoing changes to extension builds in each release series + +> **Note:** +> The `vX.Y-head` branches are auto-generated and kept in sync with release branches. Use these for testing the latest changes in each version series. + +## Testing Guidelines + +### UI Extension Testing + +To validate changes in a release series, switch to the appropriate `vX.Y-head` branch. For main branch testing, use `main-head`. + +- Examples: + - Test `1.0.x` series → `v1.0-head` + - Test `1.5.x` series → `v1.5-head` + +**Steps:** +1. Navigate to **Rancher UI** → **Local** → **App** → **Repositories** +2. Refresh the Harvester repository using the target `vX.Y-head` branch +3. Go to the **Extensions** page and install the desired version + +### Standalone Mode Testing + +To test the standalone UI, configure Harvester to load the UI from an external source. + +- Examples of `ui-index`: + - Main branch → `https://releases.rancher.com/harvester-ui/dashboard/latest/index.html` + - Release series `1.5.x` → `https://releases.rancher.com/harvester-ui/dashboard/release-harvester-v1.5/index.html` + +**Steps:** +1. Go to **Harvester UI** → **Advanced** → **Settings** → **UI** +2. Set **ui-source** to `External` +3. Set **ui-index** to the desired URL + +## Contributing + +If you want to contribute, start by reading this document, then visit our [Getting Started guide](https://extensions.rancher.io/extensions/next/extensions-getting-started) to learn how to develop and submit changes. + +## License + +Copyright (c) 2014-2025 [SUSE, LLC.](https://www.suse.com/) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/charts/harvester/1.7.0/README.md b/charts/harvester/1.7.0/README.md new file mode 100644 index 00000000..974e1589 --- /dev/null +++ b/charts/harvester/1.7.0/README.md @@ -0,0 +1,178 @@ +# harvester-ui-extension + +The Harvester UI Extension is a Rancher extension that provides the user interface for [Harvester](https://harvesterhci.io) within the [Rancher Dashboard](https://github.com/rancher/dashboard). + +> **Note:** +> This extension is available starting from **Rancher 2.10.0**. Ensure your Rancher version is **2.10.0 or later** to access Harvester integration. + +## Installation + +For detailed installation instructions, please refer to the [official Harvester documentation](https://docs.harvesterhci.io/v1.5/rancher/harvester-ui-extension#installation-on-rancher-210). + + +## Development Setup + +Ensure **Node.js v20 or later** is installed for development and debugging. + +### Standalone Mode + +Run the extension standalone with hot reload at `https://localhost:8005`. + +```bash +# Install dependencies +yarn install + +# Start the development server +RANCHER_ENV=harvester API=https://your-harvester-ip yarn dev + +# Example with specific server version +RANCHER_ENV=harvester VUE_APP_SERVER_VERSION=v1.5.0 API=https://192.168.1.123 yarn dev +``` + +You may also define environment variables in a `.env` file: + +```env +RANCHER_ENV=harvester +VUE_APP_SERVER_VERSION=v1.5.0 +API=https://192.168.1.123 +``` + +### Rancher Integration Mode + +To run as a Rancher extension, follow the [Rancher UI Extension Guide](https://extensions.rancher.io/extensions/next/extensions-getting-started#running-the-app). + +```bash +API=https://your-rancher-ip yarn dev +``` + +## Commit Message Guidelines + +This project uses [commit-lint](https://commitlint.js.org/) with [Conventional Commits](https://www.conventionalcommits.org/) to ensure consistent and meaningful commit messages. + +### Commit Message Format + +All commit messages must follow the conventional commit format: + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +### Supported Types + +- **feat**: New features +- **fix**: Bug fixes +- **docs**: Documentation changes +- **style**: Code style changes (formatting, missing semicolons, etc.) +- **refactor**: Code refactoring +- **perf**: Performance improvements +- **test**: Adding or updating tests +- **build**: Build system or external dependencies +- **ci**: CI/CD changes +- **chore**: Other changes that don't modify src or test files +- **revert**: Reverts a previous commit +- **wip**: Work in progress +- **deps**: Dependency updates +- **security**: Security fixes + +### Examples + +```bash +# Feature +git commit -m "feat: add new virtual machine creation wizard" + +# Bug fix +git commit -m "fix: resolve memory leak in VM console" + +# Documentation +git commit -m "docs: update installation instructions" + +# Breaking change +git commit -m "feat!: change API endpoint structure + +BREAKING CHANGE: The /api/v1/vms endpoint has been replaced with /api/v2/vms" +``` + +### Git Hooks + +The project uses [Husky](https://typicode.github.io/husky/) to automatically validate commit messages and run linting before commits: + +- **pre-commit**: Runs ESLint to ensure code quality +- **commit-msg**: Validates commit message format using commit-lint + +These hooks are automatically installed when you run `yarn install`. + +### Manual Validation + +You can manually validate commit messages: + +```bash +# Validate the last commit +yarn commitlint + +# Validate a specific commit +npx commitlint --from + +# Validate a range of commits +npx commitlint --from --to +``` + +## Branch Structure + +- **`main`** – Main development branch +- **`release-harvester-vX.Y`** – Stable release branches per version series +- **`vX.Y-head`** – Testing branches for ongoing changes to extension builds in each release series + +> **Note:** +> The `vX.Y-head` branches are auto-generated and kept in sync with release branches. Use these for testing the latest changes in each version series. + +## Testing Guidelines + +### UI Extension Testing + +To validate changes in a release series, switch to the appropriate `vX.Y-head` branch. For main branch testing, use `main-head`. + +- Examples: + - Test `1.0.x` series → `v1.0-head` + - Test `1.5.x` series → `v1.5-head` + +**Steps:** +1. Navigate to **Rancher UI** → **Local** → **App** → **Repositories** +2. Refresh the Harvester repository using the target `vX.Y-head` branch +3. Go to the **Extensions** page and install the desired version + +### Standalone Mode Testing + +To test the standalone UI, configure Harvester to load the UI from an external source. + +- Examples of `ui-index`: + - Main branch → `https://releases.rancher.com/harvester-ui/dashboard/latest/index.html` + - Release series `1.5.x` → `https://releases.rancher.com/harvester-ui/dashboard/release-harvester-v1.5/index.html` + +**Steps:** +1. Go to **Harvester UI** → **Advanced** → **Settings** → **UI** +2. Set **ui-source** to `External` +3. Set **ui-index** to the desired URL + +## Contributing + +If you want to contribute, start by reading this document, then visit our [Getting Started guide](https://extensions.rancher.io/extensions/next/extensions-getting-started) to learn how to develop and submit changes. + +## License + +Copyright (c) 2014-2025 [SUSE, LLC.](https://www.suse.com/) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.