Commit Graph

50 Commits

Author SHA1 Message Date
afg
5ca754ab5f Serve additional static files on the HTTP port 2018-08-28 07:40:04 +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
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
cb79b8eaa4 Added bootipv6 command 2018-02-05 12:33:17 -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
5f8e425f57 Add a quick command to boot CoreOS. 2018-01-12 21:05:11 -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
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
Mathias Kaufmann
574ee88ab1 Switch naming of FirmwareEFIBC/FirmwareEFI64
Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
Mathias Kaufmann
6de5322b09 Readded removed firmware blob entries.
Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
Mathias Kaufmann
bc95504ca6 Added DHCP Architecture Type 9
By supporting Type 9 ( „EFI x86-64“ ), pixiecore can boot VMware (Fusion) EFI-Type Machines.

The const for FirmwareEFI64 has been renamed to FirmwareEFIBC ( see RFC-4578, Section 2.1 ) and FirmwareEFI64 is assign to type 9 and uses the same ipxe blob as FirmwareEFIBC.

Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
pancho horrillo
b5f135b0d0 pixiecore: Provide a default value for listen-addr flag (#24)
Fixes google/netboot#20
2016-12-24 13:19:19 -08:00
David Anderson
8e5c0d0793 pixiecore: Add a basic HTTP status UI.
The UI is optional and need to be explicitly activated, since I
don't want existing users to suddenly have an information-spewing
thing show up on their network.
2016-09-19 03:43:57 -07:00
David Anderson
3aa769557c pixiecore: set Content-Length when serving the kernel/initrd.
iPXE appears to have *really* poor performance (orders of magnitude worse) if
it doesn't know the length of the kernel/initrds that it's downloading. Without
this change, booting CoreOS takes longer than I've had patience to wait. With
this change, the bottleneck becomes the network transfer speed.

Fixes #10.
2016-09-14 20:54:04 -07:00
David Anderson
f061a783a7 dhcp4: Don't use the non-binding DHCP Conn silently on linux.
pixiecore: Plumb NewSnooperConn into Server as an advanced option.
pixiecore/cli: Plumb DHCPNoBind to the CLI.

Now, by default, Pixiecore will bind() to the DHCP server port in a way
that shows up in `netstat` by default. If you want to enable the "coexist
with my existing DHCP server" mode, you need to explicitly pass
--dhcp-no-bind.
2016-08-28 16:16:47 -07:00
David Anderson
7bde0dde1b pixiecore/cli: default to a valid IPv4 listen address.
Fixes #6.
2016-08-28 03:57:39 -07:00
David Anderson
37e2de8ead pixiecore/cli: unify flags related to Pixiecore server configuration. 2016-08-16 14:37:08 -07:00
David Anderson
5b23ef31b7 pixiecore/cli: add the "debug tcpdump" command.
This just runs `tcpdump` as a subprocess, with the right arguments
to capture interesting parts of the boot process (DHCP, PXE, TFTP).
2016-08-16 14:05:33 -07:00
David Anderson
05cc23ebb5 pixiecore/cli: remove the "quick" command family from the CLI for now.
I'll re-add it once I've actually implemented it.
2016-08-16 14:05:06 -07:00
David Anderson
ee0987169f pixiecore/cli: implement logging controls.
The v1compat CLI is now complete, with support for --debug. The v2 CLI
additionally supports optional timestamping, so that when you're using
a modern init system that captures logs for you (e.g. systemd), you
don't have stuttering timestamps.
2016-08-15 21:54:47 -07:00
David Anderson
a943caa093 pixiecore/cli: add missing file with logging functions. 2016-08-15 21:38:39 -07:00
David Anderson
4aa8885728 pixiecore: rework logging to provide less verbose, more useful logs by default.
Also adds a debug channel with the full line noise.
2016-08-15 21:33:57 -07:00
David Anderson
63a0c5fb32 pixiecore/cli: make CLI() consistently os.Exit() when done. 2016-08-15 18:34:21 -07:00
David Anderson
04527f7dfd pixiecore: lock import paths to go.universe.tf. 2016-08-15 00:58:15 -07:00
David Anderson
4941f47975 pixiecore: switch Spec.Cmdline from a map to a templated string.
The main difficulty in passing a commandline as a plain string is
that you sometimes want to encode IDs into it, to tell your kernel
to fetch something via Pixiecore. Solving that problem with maps is
a bit clunky. Instead, now we use a text/template {{ ID "foo" }} to
mean "make a URL that, when fetched, reads the file "foo" from the
Booter.
2016-08-14 21:22:17 -07:00
David Anderson
edb7ad89bb pixiecore/cli: plumb other flags to API mode in v1compat. 2016-08-14 19:48:39 -07:00
David Anderson
71a7b89493 pixiecore/cli: support API mode in v1compat. 2016-08-14 19:47:14 -07:00
David Anderson
7bbdbc7df1 pixiecore: implement API mode, and plumb it into the CLI. 2016-08-14 19:44:34 -07:00
David Anderson
09a8c3d87d pixiecore/cli: fix CLI's docstring. 2016-08-14 16:59:51 -07:00
David Anderson
0e92c2bebe pixiecore/cli: add secret debug command to dump builtin ipxe binaries.
The overall debug command is hidden from the CLI, since it should only
be useful when developing.
2016-08-14 16:57:02 -07:00
David Anderson
b5e956b9fc pixiecore/cli: implement v1 compatibility for the CLI.
This hack tries to interpret the commandline based on what Pixiecore v1
did, before handing off to the fancier v2 CLI logic.

Doesn't support API mode yet, since that's not yet implemented in
the library.
2016-08-14 16:54:06 -07:00
David Anderson
36351cddec pixiecore/cli: add flags for passing ipxe binaries at runtime.
These flags are both for providing binaries when running the apache2
version of pixiecore (which doesn't have builtin ipxe), and for
overriding the builtin version if desired.
2016-08-12 00:54:59 -07:00
David Anderson
62e2f4bee3 pixiecore/cli: pass Ipxe firmwares as a package global.
The cli package is meant for single-shot execution anyway, so
instead of plumbing everything through reentrantly, let's just
have a global you can seed before calling CLI().
2016-08-11 23:49:18 -07:00
David Anderson
b43c25904b pixiecore: implement the boot command, using static booter.
Doesn't quite work yet: cmdline isn't processed very well, and the
ipxe firmwares aren't plumbed through.
2016-08-11 23:29:46 -07:00
David Anderson
7ffbdcadd2 pixiecore: Implement a static booter for simple boot cases. 2016-08-11 23:09:50 -07:00
David Anderson
81efc36c64 pixiecore: Refactor the CLI logic into its own subpackage.
The two binaries (Apache2 and GPL) both invoke the cli package to do
the work, the only difference between them is that the GPL binary passes
it embedded ipxe binaries.
2016-08-10 22:27:09 -07:00