Что это?
vfkit — инструмент командной строки, запускающий виртуальные машины на macOS через встроенный фреймворк Virtualization от Apple; он также содержит Go-пакет для программной генерации командных строк vfkit.
Это просто CLI или можно использовать и как библиотеку?
И то и другое: есть CLI-бинарник vfkit и отдельный Go-пакет github.com/crc-org/vfkit/pkg/config, дающий нативный Go-API, чтобы собирать командную строку vfkit самостоятельно.
Как установить vfkit?
Проще всего через Homebrew. Также можно собрать самому из исходников, запустив make из корня репозитория.
Кто на самом деле использует vfkit?
Он используется под капотом в minikube (1.35.0+), Podman (5.0+), crc для локальных кластеров OpenShift/MicroShift и ovm для запуска Linux-контейнеров на macOS через Oomol Studio.
Какие платформы поддерживает vfkit?
Только macOS, поскольку он построен прямо поверх фреймворка Virtualization от Apple, а не кроссплатформенного слоя гипервизора.
Зачем использовать vfkit напрямую, а не просто Podman или minikube?
Большинству это не понадобится: инструменты вроде Podman, minikube и crc уже встраивают vfkit для запуска своих VM на macOS. К vfkit напрямую обращаются, только если вы пишете собственный инструмент, которому нужно запускать VM на фреймворке Virtualization и управлять ими в macOS.
Зачем нужен Go-пакет pkg/config?
Он позволяет программно собирать конфигурации VM vfkit (устройства, диски, сеть и т.д.) на Go и генерировать эквивалентную командную строку vfkit вместо ручного прописывания CLI-флагов.
О vfkit где-нибудь рассказывали?
Да, он представлялся на Containers Plumbing 2023 и FOSDEM 2023.
What are similar projects?
lima, vphone-aio, Docker-OSX, macos, ProxmoxVE, coop, macOS-Simple-KVM, tart
Which topics is it in?
macos-virtual-machine, macos-vm, vm, virtual-machine, virtualization, native, containers, homebrew, cli-tool, command-line, devops, go