The mig-controller repository is a Go-based OpenShift Migration Controller designed to facilitate the movement of application workloads and persistent data between OpenShift clusters. It serves as the core orchestration component within the Konveyor migration tooling ecosystem, working in conjunction with mig-operator, mig-ui, and velero to enable cross-cluster application mobility.
The controller operates by accepting custom resource definitions that describe migration parameters and then orchestrating the actual migration process. Users define four primary Mig custom resources to specify migration details: MigCluster resources provide coordinates and authentication information for both source and destination OpenShift clusters, MigPlan resources list the namespaces to be migrated, MigStorage resources specify temporary storage locations for migration data, and MigMigration resources trigger the actual migration execution. The controller is designed to work with velero, which must be installed on both source and destination clusters and is driven by mig-controller to handle the underlying data transfer operations.
The deployment model requires mig-operator to install mig-controller on only one of the two clusters involved in a migration, with the operator handling component selection and installation across both environments. The repository includes sample custom resource configurations in its config/samples directory that users can customize for their specific migration scenarios. These samples support various storage backends, with documented examples showing AWS S3 bucket configuration including parameters for bucket names, regions, and AWS credentials.
According to GitGenius activity tracking, the repository shows minimal recent engagement with a median issue and pull request response latency of 18312.4 hours, indicating sparse activity on tracked items. The most active contributors tracked are awels and mjovanovic0, each with single recorded events. The repository maintains connections with related projects in the migtools organization including mig-ui, mig-operator, and mig-agnostic, sharing contributor overlap across these interconnected migration tooling components.
The codebase is classified across a comprehensive range of infrastructure and cloud domains including data replication, cluster management, disaster recovery, containerization, orchestration, and database synchronization. This broad classification reflects the controller's role as a central component handling multiple aspects of enterprise-grade cluster migration including resource allocation, configuration management, high availability considerations, and cross-platform support.
Development documentation is provided through HACKING.md for build and local execution instructions, and DEVGUIDE.md for design patterns and development conventions. The repository includes a demonstration video showing a practical migration scenario moving a rocket-chat application and associated persistent volume data from OpenShift 3.11 to OpenShift 4.6, illustrating the controller's capability to handle both application state and storage migration across major version upgrades.