A web-based interface for importing virtual machines into Harvester / SUSE Virtualization clusters. Supports two migration engines — the native VM Import Controller and Forklift (Konveyor Migration Toolkit for Virtualization) — driven by a unified wizard-based UI.
Both engines are available from the same wizard. Select the one that best fits your environment.
- Source types: VMware vCenter or flat OVA file
- vCenter Source Explorer:
- Browse the full vCenter inventory (Datacenter → Cluster → Host → VM)
- Power On / Off / Reset / Graceful Shutdown VMs before migration
- Rename source VMs directly from the UI
- Edit MAC addresses on individual NICs
- Migration wizard:
- Automated network and storage mapping
- Per-NIC interface model selection (v1.6+)
- Disk bus type selection (v1.6+)
- Force power-off and configurable shutdown timeout (v1.6+)
- Skip preflight validation option (v1.6+)
- Annotations tracking: original CPU, memory, and disk characteristics saved on the plan
- Plan management:
- List, inspect, run, and delete plans
- Integrated log viewer — toggle between full controller logs and plan-filtered logs
- YAML view for created CRs
- Provider types: vSphere (vCenter or standalone ESXi) and OVA (NFS-mounted)
- Provider management:
- Create, edit, and delete Forklift Providers
- TLS options per provider: skip verification or supply a custom CA certificate
- VDDK init image configuration for optimised disk transfer (dramatically faster than the fallback method)
- Automatic annotation when no VDDK image is provided
- Availability check with configurable Forklift namespace
- Migration wizard:
- Network mapping: map source vSphere networks / port groups to pod network or Multus attachments
- Storage mapping: map source datastores (vSphere) or disks (OVA) to destination storage classes, with volume mode and access mode selection
- Custom destination VM name (RFC-1123 compliant)
- Migration options: warm migration, migrate shared disks, volume populator labels, preserve cluster CPU model, preserve static IPs, default NIC model
- Plan detail view (tabbed):
- Overview: provider, target namespace, VM list, readiness status
- Mappings: live NetworkMap and StorageMap status with condition badges
- Migration: per-VM progress bars and phase tracking
- Conditions: full condition list with timestamps
- Debug: aggregated logs from Forklift controller and virt-v2v worker pods
- Full lifecycle: run, cancel, delete migration; delete plan with cleanup of NetworkMap + StorageMap
- YAML view for Plans, NetworkMaps, StorageMaps, and Migration CRs
- Three themes: Light, SUSE, Dark (switchable at runtime)
- About screen with version and build info
- Version-aware capabilities: detects Harvester v1.6+ to unlock advanced options
- Responsive layout with resizable log/debug panels
- Obtain the kubeconfig for your Harvester / SUSE Virtualization cluster (Support → Download KubeConfig in the Harvester UI).
- Pull and run the container (Podman or Docker):
podman run -p 8080:8080 \
-v ~/myharvester-kubeconfig:/kubeconfig:ro \
ghcr.io/doccaz/vm-import-ui:latest- Open your browser at http://localhost:8080
- Create a vCenter Source (for VMIC) or a Forklift Provider (for Forklift)
- Create a Migration Plan, select the VM, configure mappings
- Run the plan and monitor progress — done!
DNS note: if your vSphere host uses a
.lanor private domain that the container cannot resolve, mount your host resolver:podman run -p 8080:8080 \ -v ~/myharvester-kubeconfig:/kubeconfig:ro \ -v /etc/resolv.conf:/etc/resolv.conf:ro \ ghcr.io/doccaz/vm-import-ui:latest
Browse the vCenter inventory and select a VM:

Map source and destination networks:

Review the migration plan summary:

Migration plan created and submitted:

VM successfully created in Harvester:

YAML view for a migration plan:

Step 1 — Build the container image
podman build -t vm-import-ui:local .Step 2 — Run the container
podman run -p 8080:8080 \
-v ~/.kube/config:/kubeconfig:ro \
-e KUBECONFIG=/kubeconfig \
vm-import-ui:localStep 3 — Enable debug logging
podman run -p 8080:8080 \
-v ~/myharvester-kubeconfig:/kubeconfig:ro \
-e LOG_LEVEL=debug \
vm-import-ui:localRun tests
# Go backend
cd pkg && go test -v ./...
# React frontend
cd frontend && npx react-scripts test --watchAll=false| Variable | Default | Description |
|---|---|---|
KUBECONFIG |
/kubeconfig |
Path to kubeconfig file |
LOG_LEVEL |
info |
Log level: debug, info, warn, error |
UI_PATH |
/ui |
Path to frontend build directory |
USE_MOCK_DATA |
false |
Run without a Kubernetes cluster (dev mode) |
- Full Forklift (MTV) support: provider management, plan creation, migration lifecycle, detailed plan view with log aggregation
- TLS options and VDDK image configuration for Forklift vSphere providers
- OVA provider support via Forklift (NFS-mounted OVF/OVA files)
- Warm migration, shared disk, and static IP preservation options for Forklift
- PortGroup support in network mapping
- Three UI themes (Light, SUSE, Dark)








