{"id":41671298,"url":"https://github.com/doccaz/vm-import-ui","last_synced_at":"2026-04-04T05:07:30.919Z","repository":{"id":309140009,"uuid":"1035281503","full_name":"doccaz/vm-import-ui","owner":"doccaz","description":"Trying to create a more user-friendly VM import UI","archived":false,"fork":false,"pushed_at":"2026-03-21T02:17:48.000Z","size":65027,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-21T16:53:19.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doccaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-10T03:50:48.000Z","updated_at":"2026-03-21T02:09:10.000Z","dependencies_parsed_at":"2025-08-10T05:29:01.429Z","dependency_job_id":"1df8899a-a5cc-4571-9037-06c2bf54de0a","html_url":"https://github.com/doccaz/vm-import-ui","commit_stats":null,"previous_names":["doccaz/vm-import-ui"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/doccaz/vm-import-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doccaz%2Fvm-import-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doccaz%2Fvm-import-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doccaz%2Fvm-import-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doccaz%2Fvm-import-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doccaz","download_url":"https://codeload.github.com/doccaz/vm-import-ui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doccaz%2Fvm-import-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-24T17:38:39.689Z","updated_at":"2026-04-01T20:48:41.491Z","avatar_url":"https://github.com/doccaz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Harvester VM Import UI\n\nThis add-on provides a user-friendly web interface for the Harvester VM Import Controller, allowing users to import virtual machines from vCenter into Harvester through a simple, wizard-driven process.\n\n# Features\n* **Multi-Source Support**: Import from VMware vCenter or flat OVA files.\n* **Source Explorer**:\n    * Browse vCenter inventory directly.\n    * Perform VM operations (Power On/Off/Reboot, Rename) before migration.\n    * View and **edit VM MAC addresses** for the source VM via API.\n    * View and **edit VM Name** for the source VM via API.\n* **Smart Migration Plans**:\n    * Automated mapping of networks and storage.\n    * **Annotations Tracking**: Original VM characteristics (CPU, Memory, Disks) are saved for transparency.\n    * **Resource Comparison**: Easily compare source VM characteristics with current import status.\n* **Streamlined Debugging**:\n    * Integrated log viewer for the VM Import Controller.\n    * Toggle between full controller logs or **filtered logs** relevant to your specific plan.\n* **Management**: Monitor progress, view YAML, and delete plans with safety confirmations.\n\n# Latest Release (v1.6.1)\nThe latest version includes enhanced UI spacing, Kubernetes-compliant plan name validation, and more robust VM metadata tracking.\n\n\n# Quick Start (TL;DR)\n\n1. Find the Kubeconfig file for your Harvester/SUSE Virtualization cluster (click on \"Support\" at the lower left on UI).\n2. Pull and run the latest version indicating the Kubeconfig file (docker works too):\n```\npodman run -p 8080:8080 \\\n  -v ~/myharvester-kubeconfig:/kubeconfig:ro \\\n  ghcr.io/doccaz/vm-import-ui:latest\n```\n3. Open your browser at http://localhost:8080\n4. Create a vCenter Source with your credentials\n5. Create a Migration Plan and select a VM to migrate from the inventory.\n6. Check the progress, wait a bit... you're done!\n\n# Screenshots\n\nAccess the UI: open your web browser and navigate to http://localhost:8080.\n![Create the VMware source configuration](screenshots/1-create-source.png)\n\nSelect the Source VM from the inventory:\n![Select the source VM](screenshots/2-select-vm.png)\n\nConfigure the destination VM:\n![Configure the destination VM](screenshots/3-config-vms.png)\n\nSelect the destination namespace:\n![Configure the destination namespace for the imported VM](screenshots/3-config-vm.png)\n\nMap the source and destionation networks for the imported VM:\n![Map the source and destination networks for the imported VM](screenshots/4-map-vlans.png)\n\nA summary will be shown with the actions that will be taken:\n![Summary of what will be done](screenshots/5-summary.png)\n\nThe VM Import Controller objects and created, and the migration process is submitted:\n![The migration starts](screenshots/6-migration-start.png)\n\nThe migration process is monitored:\n![Migration progress](screenshots/7-migration-progress.png)\n\nAnd... the VM is created in Harvester!\n![Migration finished](screenshots/8-migration-finished.png)\n\n\n# Building Locally and Testing\n\nStep 1: Build the Container ImageFrom the project's root directory, build the image using Podman or Docker.\n\nUsing Podman\n```\npodman build -t vm-import-ui:local .\n```\n\nStep 2: Run the Container\n\nRun the container, mapping port 8080 and mounting your local kubeconfig file.\n\nUsing Podman\n```\npodman run -p 8080:8080 -v ~/.kube/config:/kubeconfig:ro -e KUBECONFIG=/kubeconfig vm-import-ui:local\n```\n\nStep 3: Enabling Debugging\n\nTo see verbose logs from the backend, set the LOG_LEVEL environment variable.\n\nUsing Podman\n```\npodman run -p 8080:8080 \\\n  -v ~/myharvester-kubeconfig:/kubeconfig:ro \\\n  -e LOG_LEVEL=debug \\\n  vm-import-ui:local\n```\n\n# Workarounds\n\nIn one case, the VSphere host (with a .lan domain) was not being correctly resolved by podman's internal DNS. You can overrride the internal resolv.conf to point to your own DNS like this:\n\n```\npodman run -p 8080:8080 \\\n  -v ~/myharvester-kubeconfig:/kubeconfig:ro \\\n  -v /etc/resolv.conf:/etc/resolv.conf:ro \\\n  ghcr.io/doccaz/vm-import-ui:latest\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoccaz%2Fvm-import-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoccaz%2Fvm-import-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoccaz%2Fvm-import-ui/lists"}