118 Commits

Author SHA1 Message Date
Anatoli Babenia
e76f0bd3d9 Simplify and add TL;DR with quick xyz option
It is not clear what `all-in-one` means for software that is
so specialized as `pixiecore`, so I removed that phrase. :)
2018-08-12 16:38:36 -07:00
Naadir Jeewa
cc33920b4f Resolves #57: Add RF_NETLINK to RestrictedAddressFamilies in SystemD unit
for pixiecore

Signed-off-by: Naadir Jeewa <naadir@randomvariable.co.uk>
2018-03-24 20:22:14 -07:00
David Anderson
6e814b1273 Remove unused enum value. 2018-02-07 00:02:42 -08:00
David Anderson
cf666186aa Delete the old dhcp_server prototype, it's unused and broken. 2018-02-07 00:02:11 -08:00
David Anderson
baf5793687 Remove unneccessary conversions, further appeasing lint. 2018-02-05 22:00:13 -08:00
David Anderson
6061bfbc73 Appease golint some more with docstrings and unexporting of functions. 2018-02-05 21:55:51 -08:00
David Anderson
1404193a39 Rename X86_HTTP_CLIENT to appease golint. 2018-02-05 21:44:43 -08:00
David Anderson
7de0228ec0 gofmt -s all the things again. 2018-02-05 21:28:40 -08:00
David Anderson
bcaa633b65 Delete dead code. 2018-02-05 21:09:02 -08:00
David Anderson
52a742156e Fix dead code and reenable envvar parsing. 2018-02-05 21:09:02 -08:00
David Anderson
99cc04c381 Clean up more lint errors.
Also remove the 'vetshadow' linter, it's overly noisy on normal code.
2018-02-05 21:09:02 -08:00
Dmitri Dolguikh
8f56f51bbb Merged pixicorev6 package into pixicore 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
b36c94fc0a Moved address pool-related code into dhcp6/pool package. 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
08daa9f0da moved boot_configuration concrete implementations to pixicorev6 package 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
13846a9809 Added more docs 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
8725ede99b fixing coding-style related issues 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
43551d9de3 Fixed a bug around setting of server duid 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
6c11f1e722 added support for generation of "dns servers" option 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
b78d515ee1 Added cli options for address pool configuration 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
f89f6af9a6 added support for setting server preference option 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
11fbcd1ae1 added debug-level logging 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
2c42665a0b added ipv6api command 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
da6402caf7 Bootfile urls can be retrieved via remote api calls now 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
02db3ab76d extracted packet generation into a dedicated class 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
ea2d223a25 clients are now given ip addresses from an address pool 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
f00c8cae74 moar changes around packet construction to make testing easier 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
bf8701a8c5 Made dhcpv6 packet easier to test 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
cb79b8eaa4 Added bootipv6 command 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
3a5808cb30 first stab at dhcpv6 support 2018-02-05 12:33:17 -08:00
David Anderson
0fe0d3e719 Delete the api-example binary I accidentally committed a while ago. 2018-02-04 19:22:58 -08:00
David Anderson
ff3b2f6fd6 Refactor firmware identification to be a bit easier to follow. #63 2018-02-04 17:56:00 -08:00
David Anderson
b7411f3ed3 Only boot with ipxe.pxe if we're chainloading from another iPXE. #63
undionly.kpxe doesn't work if you chainload from a native iPXE, but it's
required for physical machines with NICs that iPXE doesn't natively
support.

In my previous attempt to handle Virtualbox's crippled iPXE, I switched
all BIOS-based boots to use ipxe.pxe. This was a bad idea, so now instead
we specifically recognize third-party iPXE builds, and only chainload
*those* with ipxe.pxe, and stick with undionly.kpxe for the rest.
2018-02-04 14:41:09 -08:00
David Anderson
a44cef6d7b Add an advanced option to pass in a raw iPXE script.
The feature is heavily laced with warnings and a complete lack of
promises around future compatibility. But within those parameters,
it might allow some people to do cool things.

Fixes #60.
2018-02-03 21:25:55 -08:00
David Anderson
bc300c7140 Rename README.testing to README.testing.md so that github formats it. 2018-01-15 19:17:56 -08:00
David Anderson
029be8d339 Force machines to chainload through Pixiecore's embedded iPXE.
This guarantees that we load the real OS from an iPXE with a known
featureset, rather than rely on the firmware iPXEs to be correct.

Also switch to ipxe.pxe for BIOS boots instead of undionly.kpxe.

ipxe.pxe works when you chainload from one iPXE to another, whereas
undionly.kpxe encounters some kind of poorly explained bug where
it loses the ability to configure networking.

Tested against the following configurations:
 - VirtualBox + BIOS w/ iPXE
 - VirtualBox + BIOS w/ Intel UNDI
 - VirtualBox + EFI
 - KVM + SeaBIOS w/ iPXE
 - KVM + OVMF (EFI)
 - Dell R610 + Dell BIOS/PXE

Fixes #51, fixes #52.
2018-01-15 19:17:56 -08:00
David Anderson
5f8e425f57 Add a quick command to boot CoreOS. 2018-01-12 21:05:11 -08:00
David Anderson
81fbed5acf Also check foor bzImage support in the ProxyDHCP stage. #51
Virtualbox inexplicably ships with an iPXE image that knows
how to speak HTTP, but cannot handle bzImage files. This is a
quick and dirty fix for that specific issue, while I work on
the more permanent fix of always chainloading into a known
good iPXE.
2017-12-24 19:28:41 -08:00
David Anderson
6cd17867fc Delete the UI. It's ugly, not very useful, and afaik nobody uses it. 2017-12-24 17:33:18 -08:00
Anatoli Babenia
7eee7d4832 Rename pixiecore quick netboot into pixiecore quick xyz
This places the option below OS specific installers and
makes the command explicit.
2017-12-24 16:07:16 -08:00
Anatoli Babenia
7144ad4cdc Add netboot.xyz into quick boot options
Fixes #46
2017-12-24 16:07:16 -08:00
pancho horrillo
792915a85f pixiecore: Drop spurious right paren in text. 2017-05-20 17:25:07 -07:00
ebraminio
9253ccdf97 Minor, fixing a link on README markdown 2017-03-22 11:16:51 -07:00
David Anderson
63c4bab4d1 Add a debug log entry in DHCP before fetching the bootspec.
Adding this line lets us time the bootspec retrieval by comparing
the timestamps of "Got valid request..." and "Offering to boot..."
2017-03-01 20:57:47 -08:00
David Anderson
4ffbe802e0 Log timing of /_/ipxe for #32. 2017-03-01 14:36:07 -08:00
David Anderson
4e411248b1 Improve the comment explaining why handleBooting returns an iPXE script. 2017-02-24 15:30:38 -08:00
Phenix Rizen
a9d71481f7 handleBooting should return a no-op script, not an error.
Responding with an error makes iPXE print a misleading error message (misleading because it doesn't break the boot in any way, it just makes humans uncomfortable).
2017-02-24 15:22:11 -08:00
David Anderson
735c025438 Add a section on demos and users of Pixiecore. #22 2017-02-22 15:00:38 -08:00
David Anderson
34da4bdc44 Add a "quick" command for fast booting of various installers.
The quick commands are just aliases for the `boot` command with
various pre-cooked kernel/initrds/cmdline combinations. Currently
supported are Debian, Ubuntu, Fedora and Centos. There's also code
for Arch, but it's currently disabled as I'm failing to get the
HTTP rootfs to work.
2017-02-22 04:21:07 -08:00
David Anderson
0d99a2ad1f Update README.api.md with the revised cmdline format.
Everything old is new again, we're back to a simple string for the
commandline, but this time with template goodness for URL expansion.
2017-02-22 01:05:34 -08:00
David Anderson
a762c94d61 Only try to parse the MAC address if the file has a known type.
Parsing unconditionally logs errors when serving non-kernel/initrd
files.
2017-02-20 17:43:59 -08:00