diff --git a/README.md b/README.md index 2e326296..778996d1 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,37 @@ vfkit - Simple command line tool to start VMs through virtualization framework ==== +### Introduction + vfkit offers a command-line interface to start virtual machines using virtualization framework. -It also provides a github.com/code-ready/vfkit/tree/main/pkg/client go package. +It also provides a `github.com/crc-org/vfkit/pkg/config` go package. This package provides a native go API to generate the vfkit command line. + +### Installation + +vfkit is available in the `crc` brew tap: + +``` +brew tap cfergeau/crc +brew install vfkit +``` + + +### Usage + +See https://github.com/crc-org/vfkit/blob/main/doc/usage.md + + +### Presentations + +`vfkit` has been presented at a few conferences: +- [Containers Plumbing 2023](https://crc.dev/blog/posts/2023-03-22-containers-plumbing/) +- [FOSDEM 2023](https://fosdem.org/2023/schedule/event/govfkit/) + + +### Background + The work in this repository makes use of https://github.com/Code-Hex/vz which provides go bindings for macOS virtualization framework. The lifetime of virtual machines created using the virtualization framework is tied to the filetime of the process where they were created. When using `Code-Hex/vz`, this means the virtual machine will be terminated at the end of the go process using these bindings. diff --git a/doc/usage.md b/doc/usage.md index e5750663..8a199e32 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -148,7 +148,7 @@ The `--device virtio-net` option adds a network interface to the virtual machine - `mac`: optional argument to specify the MAC address of the VM. If it's omitted, a random MAC address will be used. - `fd`: file descriptor to attach to the guest network interface. The file descriptor must be a connected datagram socket. See [VZFileHandleNetworkDeviceAttachment](https://developer.apple.com/documentation/virtualization/vzfilehandlenetworkdeviceattachment?language=objc) for more details. - `nat`: guest network traffic will be NAT'ed through the host. This is the default. See [VZNATNetworkDeviceAttachment](https://developer.apple.com/documentation/virtualization/vznatnetworkdeviceattachment?language=objc) for more details. -- `unixSocketPath`: path to a unix socket to attach to the guest network interface. See See [VZFileHandleNetworkDeviceAttachment](https://developer.apple.com/documentation/virtualization/vzfilehandlenetworkdeviceattachment?language=objc) for more details. +- `unixSocketPath`: path to a unix socket to attach to the guest network interface. See [VZFileHandleNetworkDeviceAttachment](https://developer.apple.com/documentation/virtualization/vzfilehandlenetworkdeviceattachment?language=objc) for more details. `fd`, `nat`, `unixSocketPath` are mutually exclusive.