diff --git a/docs/platform-packet.md b/docs/platform-packet.md index a63877ebb..479232380 100644 --- a/docs/platform-packet.md +++ b/docs/platform-packet.md @@ -1,27 +1,59 @@ # LinuxKit with bare metal on Packet -Packet is a bare metal hosting provider. +[Packet](http://packet.net) is a bare metal hosting provider. -You will need to have created a Packet account and a project to -put this new machine into. You will also need to create an API key +You will need to [create a Packet account] and a project to +put this new machine into. You will also need to [create an API key] with appropriate read/write permissions to allow the image to boot. -Linuxkit on Packet boots via iPXE. This requires that you have -an HTTP server on which you can store your images. At the moment -there is no equivalent to "linuxkit push" to upload these images, -so you will have to host them yourself. The images can be served -from any HTTP server, though in the interest of performance you'll -want to locate those images near the data center that you're booting in. +[create a Packet account]:https://app.packet.net/#/registration/ +[create an API key]:https://help.packet.net/quick-start/api-integrations -Linuxkit is known to work on the Type 0 server at Packet. +Linuxkit is known to boot on the [Type 0] server at Packet. +Support for other server types, including the [Type 2A] ARM server, +is a work in progress. + +[Type 0]:https://www.packet.net/bare-metal/servers/type-0/ +[Type 2A]:https://www.packet.net/bare-metal/servers/type-2a/ ## Boot -`linuxkit run packet -api-key PACKET_API_KEY -base-url http://path-to-my-pxe-boot-server ...` +Build an image with `moby build`. The [packet.yml](https://github.com/vielmetti/linuxkit/blob/master/examples/packet.yml) +example file provides a suitable template to start from. + +Linuxkit on Packet [boots via iPXE]. This requires that you have +an HTTP server on which you can store your images. At the moment +there is no equivalent to "linuxkit push" to upload these images, +so you will have to host them yourself. The images can be served +from any HTTP server, though in the interest of performance you may +want to locate those images near the data center that you're booting in. + +[boots via iPXE]:https://help.packet.net/technical/infrastructure/custom-ipxe Servers take several minutes to provision. During this time their state can be seen from the Packet console. +``` +$ linuxkit run packet --help +USAGE: linuxkit run packet [options] [name] + +Options: + + -api-key string + Packet API key + -base-url string + Base URL that the kernel and initrd are served from. + -hostname string + Hostname of new instance (default "moby") + -img-name string + Overrides the prefix used to identify the files. Defaults to [name] + -machine string + Packet Machine Type (default "baremetal_0") + -project-id string + Packet Project ID + -zone string + Packet Zone (default "ams1") + ``` ## Console If your LinuxKit system does not include an ssh or remote console @@ -32,10 +64,16 @@ for details on that mode. ## Disks At this moment the Linuxkit server boots from RAM, with no persistent -storage. +storage and there is no code that mounts disks. ## Networking -Make sure that the interfaces come up bonded? +Some Packet server types have bonded networks; the current code does +not support that. ## Integration services and Metadata + +Packet supports [user state](https://help.packet.net/technical/infrastructure/user-state) +during system bringup, which enables the boot process to be more informative about the +current state of the boot process once the kernel has loaded but before the +system is ready for login.