forklift-console-plugin is an open source project providing Openshift web console plugin for Migration Toolkit for Virtualization. The plugin adds a web based user interface for Migration Toolkit for Virtualization inside Openshift web console.
Migration Toolkit for Virtualization (Forklift) is a suite of migration tools that facilitate the import of virtualization workloads from oVirt, VMware and OpenStack to OpenShift Virtualization.
Forklift console plugin is managed by Migration Toolkit for Virtualization operator, when installing the operator on Openshift cluster, the plugin will be installed automatically, and the Migration menu item will be added to the Openshift web console.
To get started, clone the repo to your development workstation and install the required dependencies locally with yarn.
git clone https://github.com/kubev2v/forklift-console-plugin.git
cd forklift-console-plugin
yarn installWith a user logged in to existing Kubernetes or Openshift environment with Forklift operator available, one can start a locally served forklift-console-plugin instance ( running on http://localhost:9000 ) with:
# Start a local Openshift console server on the background.
# - The console will be available in http://localhost:9000
# - The inventory URL can be set using an environment variable,
# ( default value for INVENTORY_SERVER_HOST is https://localhost:30444 )
# for example:
# export INVENTORY_SERVER_HOST=https://virt-konveyor-forklift.apps.example.com
# - To close the console server run:
# yarn console:stop
# Setting the console image and forklift service URLs as environment variables:
#
# Note: default values works with the local development cluster, you can create using the CI.
# set this variables if you use a different cluster.
export INVENTORY_SERVER_HOST=https://virt-konveyor-forklift.apps.<your cluster address>
export SERVICES_API_SERVER_HOST=https://virt-konveyor-forklift.apps.<your cluster address>
export CONSOLE_IMAGE=quay.io/openshift/origin-console:4.19
# Run the web console locally (uses the environment variables we defined above)
yarn console
# If this is the first time running, yarn build will build the required dependencies
yarn build
# Start the plugin in development mode
yarn startThe cluster address will be the part of the address after the apps. or api. in the cluster services or API service address.
For example, if your cluster API address is api.example.com:6443, the cluster address will be example.com, and
the inventory service address will be:
export INVENTORY_SERVER_HOST=https://virt-konveyor-forklift.apps.example.comNote: use this method to find the inventory and services address when using an Openshift cluster, when using K8s use the inventory service address.
Forklift console plugin requires the user to be logged into an openshift or kubernetes cluster, if you do not have access to one, you can setup your own using Openshift local or use the CI script to build a local KinD cluster.
# Setup a kind cluster with Forklift operator and an OKD web console
yarn cluster:up
# Example: setup a local KinD cluster with ovirt mock provider
# [ options: --with-all-providers --with-ovirt-provider, --with-vmware-provider, --with-openstack-provider]
#
# Note I: mock providers requires forkliftci, clone on the ci directory
# Note II: mock providers requires NFS server running, look at forkliftci documentation for more details.
# See: forkliftci/cluster/providers/utils/install_nfs.sh
git clone [email protected]:kubev2v/forkliftci.git ./ci/forkliftci
yarn cluster:up -- --with-ovirt-provider
# run cleanup to stop and delete the cluster.
yarn cluster:deleteAll commits must include one of these formats in the commit description (the body of the commit message):
Primary format: Resolves: MTV-<number>
Example commit:
Subject: Fix bug in data processing
Description: Resolves: MTV-123
Exclusion format: Resolves: None
Example commit:
Subject: Update documentation
Description: Resolves: None
Chore commits: Any commit containing "chore" in the message (case insensitive) is automatically skipped.
Example chore commits:
chore: update dependencies
CHORE: clean up build files
Update dependencies and chore tasks
Note: The commit description validation is enforced via a GitHub Action that runs on all branches for push and pull request events. The validation automatically skips:
- Bot users (dependabot, renovate, ci, github-actions, etc.)
- Commits containing "chore" in the message (case insensitive)
You can validate commit messages locally using the provided script or yarn commands:
Using yarn commands:
# Validate the latest commit
yarn validate-commits
# Validate a range of commits
yarn validate-commits-range "HEAD~5..HEAD"Using the script directly:
# Validate the latest commit
./scripts/validate-commits.sh
# Validate a range of commits
./scripts/validate-commits.sh --range HEAD~5..HEAD
# Validate with verbose output
./scripts/validate-commits.sh --verbose
# Get help
./scripts/validate-commits.sh --helpFor comprehensive information about commit message formatting, supported issue tracking systems, and troubleshooting, see COMMIT_MESSAGE_GUIDE.md.
More documentation is available in the docs directory.
| Reference | |
|---|---|
| Forklift | Migration toolkit for virtualization |
| Openshift web console | Openshift web console is a web based user interface for Openshift. |
| OpenShift Dynamic Plugin SDK | Dynamic plugin SDK for Openshift user interfaces. |
| Forklift documentation | Usage documentation for the migration toolkit for virtualization. |
| Forklift CI | Collection of scripts and tools used in forklift development. |
| Patternfly | Open source design system used for Openshift user interfaces development. |