Skip to content

ns1/waitron

Repository files navigation

Historical info and credits

The original Waitron, found on the version 1.0.0 branch in this repo, was originally written by jhaals. We at NS1 needed an internal build system that would allow us to meet a specific set of requirements and found pixiecore, and eventually Waitron in an unmaintained state. Jhaals was kind enough to let NS1 take over the project, and we've continued maintaining it since.

The 2.0.0 branch of this repo still has a large portion of the original from Jhaals, with a few additions we needed at the time. However, the current main branch (representing post 2.0.0) is an almost complete rewrite of the original Waitron code, but the spirit of the original Waitron lives on!

Waitron

This project is in maintenance status.

Build Status

Waitron is used to build machines (primarily bare-metal, but anything that understands PXE booting will work) based on definitions from any number of specified inventory sources.

When a server is set in build mode, Waitron will deliver a kernel/initrd/commandline that can be used by pixiecore (in API mode) to boot and install the machine.

Try it out in a docker:

docker build -t waitron . && docker-compose -f ./docker-compose.yml up
$ curl -X PUT http://localhost/build/dns02.example.com
{"Token":"fb300739-b4ce-4740-af26-80a99326ee05"

$ curl -X GET http://localhost/status/dns02.example.com
pending

curl -X PUT http://localhost/cancel/dns02.example.com/fb300739-b4ce-4740-af26-80a99326ee05
{"State":"OK"}

Config file

See the example config for descriptions and examples of configuration options.

API

See API.md file in the repo

Contributions

Pull Requests and issues are welcome. See the NS1 Contribution Guidelines for more information.