-
Notifications
You must be signed in to change notification settings - Fork 19
Homeworld's Build Process
First, build Go. The Go 1.8.3 compiler is written in Go, so it is necessary to bootstrap by building Go 1.4, which is written in C. The compiled binary can then be used to build Go 1.8.3.
Next, build acbuild. It's a tool used to build App Container Images.
[acbuild appears to be unmaintained? Presumably for rkt, which uses ACI?]
Now, we need to build a set of Debian packages. They are:
- admin-tools, or Spire.
- apt-setup. [Used to make output packages work with apt?]
- bootstrap-registry. ["This hostname exists to provide a location for autodiscovery of rkt ACIs for homeworld clusters." No idea. Probably a skeleton configuration for servers?]
- etcd.
- hyperkube. An all-in-one Kubernetes executable, which is actually composed of many smaller component programs.
- keysystem.
- knc, or Kerberised NetCat. netcat is a tool that transfers data over TCP/IP. knc does this, but with Kerberos authentication. Used by keysystem.
- rkt.
- services. [Contains scripts to start all the relevant services (components of Kubernetes and etcd) with the correct configuration?]
build-all.sh calls build-package.sh for each package, which sets up the build environment with functions from common/package-build-helpers.sh, then calls sbuild through build(), also from common/package-build-helpers.sh. Most of the time, a build procedure is provided in inner-build.sh, which sbuild runs as instructed in debian/rules.
[insert the rest of the build procedure here]