The mig-operator repository, also known as Crane Operator, is an OpenShift Migration Operator designed to facilitate the movement of workloads between OpenShift clusters, particularly from OpenShift 3 to OpenShift 4 environments. Written primarily in Jinja, the project serves as a critical component in the migtools ecosystem, which includes related repositories such as mig-controller, mig-ui, and integrations with velero-io/velero. These overlapping contributors across multiple repositories indicate a coordinated effort to provide comprehensive migration tooling for containerized workloads.
Crane Operator functions as an orchestration layer that installs and manages a system of migration components. The operator coordinates the deployment of three primary installable components: Velero with custom migration plugins for backup and restore operations, the Migration Controller for managing migration workflows, and the Migration UI for user interaction. This modular architecture allows operators to selectively install components based on their specific migration topology and requirements, whether migrating between OpenShift 3 and 4 clusters or between OpenShift 3 clusters.
The installation process differs between OpenShift versions. On OpenShift 4, Crane Operator is installable directly through OperatorHub, providing a streamlined experience for users accessing the OpenShift Web Console. On OpenShift 3, installation occurs through OpenShift manifests, with stable releases available through Quay container repositories. The operator supports both released versions and development versions, with documentation provided in hacking.md for unreleased installations. Version compatibility information is maintained to ensure appropriate Crane versions are used with specific OpenShift versions.
Component configuration is accomplished through the MigrationController custom resource, which allows users to specify which components should be installed on each cluster. The recommended topology for OpenShift 3 to 4 migrations involves installing Velero on all clusters while concentrating the Controller and UI on the OpenShift 4 cluster. Users can customize their installations by setting parameters such as migration_velero, migration_controller, and migration_ui to control which components are deployed.
The operator provides extensive configuration options for migration operations. Restic timeout settings can be adjusted to accommodate large backups, with the default set to one hour and support for seconds, minutes, and hours as time units. Migration limits can be configured to control the maximum number of resources in a Migration Plan, helping operators break up large-scale migrations into manageable chunks. Additional features include rollback capabilities on migration failure and support for Direct Migration, introduced in MTC 1.4.0, which enables persistent volumes and internal images to migrate directly between clusters without intermediary replication repositories.
The repository includes comprehensive documentation covering installation procedures, upgrade paths, API usage examples for both direct and indirect migrations, CORS configuration requirements for specific scenarios, and detailed information about which resources are migrated. The project maintains active development with support for migration examples using the API and provides video demonstrations for getting started with installation and workload migration. The operator's classification across multiple domains including migration, automation, orchestration, and lifecycle management reflects its role as a comprehensive solution for managing containerized application transitions in Kubernetes and OpenShift environments.