The Forklift Operator is an archived repository that provided a Kubernetes operator for managing VM workload migrations to OpenShift Virtualization or KubeVirt environments. Development has moved to the kubev2v/forklift repository. The operator was designed to simplify the process of migrating virtual machine workloads from traditional virtualization platforms into cloud-native Kubernetes environments, specifically targeting OpenShift and KubeVirt deployments.
The operator required specific prerequisites including OpenShift 4.9 or later, or Kubernetes v1.22 or later, along with OpenShift Virtualization 4.9 or KubeVirt already installed. It supported migrations from VMware and oVirt sources, with compatibility varying by release version. For instance, version 2.2 supported OpenShift Virtualization or KubeVirt v4.9, VMware 6.5 and later, and oVirt 4.4.9 and later. The operator would not deploy in unsupported configurations, ensuring compatibility constraints were respected.
The Forklift Operator functioned as an orchestrator that installed multiple integrated components to enable complete migration workflows. The Forklift UI, built on Patternfly 4, provided the user interface for managing migrations. The Forklift Controller served as the core orchestration engine that coordinated the migration process. The Forklift Validation service, based on Open Policy Agent, performed pre-migration checks to identify potential issues with virtual machines before they were migrated. Additionally, the Forklift Must Gather tool was included as a support utility for collecting diagnostic information about the Forklift environment.
Installation on OpenShift and OKD could be performed through the web console by accessing the OperatorHub marketplace and searching for Forklift Operator. Released versions were available through community operators, while unreleased or latest versions required creating a custom catalog source. After installation, users needed to create a ForkliftController custom resource to deploy the actual migration components and configure the system. The operator supported customization through editing the ForkliftController CR, allowing users to adjust deployment settings according to their specific requirements.
For Kubernetes environments without OpenShift, separate installation documentation was provided. The repository included a cleanup script specifically designed to safely remove the operator, custom resource definitions, and all related objects from both OpenShift and Kubernetes environments. The primary language used in the repository was Jinja, reflecting the templating approach used for operator configuration and deployment manifests. The repository was classified across numerous domains including data transfer, statefulsets, configmaps, VMware integration, datacenter operations, operator framework patterns, workload management, cross-cluster operations, transformation logic, virtualization, disaster recovery, and container orchestration, demonstrating the breadth of functionality encompassed by the migration platform.