From c43e4db85ded1a2169d896b9ff38e7f9ad21c786 Mon Sep 17 00:00:00 2001 From: Tim Jones Date: Sun, 24 Feb 2019 17:54:44 +0100 Subject: [PATCH] docs: improve contributing documentation (#418) Signed-off-by: Tim Jones --- CONTRIBUTING.md | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cec4b87e52..74a410d988 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,49 @@ conform enforce --commit-msg-file $1 EOF ``` +In addition, all commits should be signed by the committer using `git commit -s` which should produce a commit +message with `Signed-off-by: Your Name `. It is not necessary to cryptographically sign commits +with GPG. + ### Pull Requests -To avoid multiples CI runs, please ensure that you are running a full build before submitting your PR. +To avoid multiples CI runs, please ensure that you are running a full build before submitting your PR, and +branches should be squashed to a single commit. + +## Developing + +To start developing for Talos you will need at least `GNU Make` and `Golang` v1.11. + +From there you can bootstrap the rest of the toolchain and install Golang dependencies with the following commands: + +```bash +GO111MODULE=on go get +make ci +``` + +# Make Targets + +In the `Makefile` there are a variety of targets, the most common are: +* `docs` builds the Hugo-based documentation site. +* `kernel` creates the `vmlinuz` Linux kernel executable. +* `initamfs` creates the `initramfs.xz` initial RAMdisk filesystem. +* `image-vanilla` creates the `image.raw` file that can be used as a image volume for VMs. +* `osctl-linux-amd64` and `osctl-darwin-amd64` make the `osctl` CLI tool for Linux & OSX respectivly. +* `rootfs` creates an archive of the root filesystem preloaded with all the components needed to launch Talos & Kubernetes. + +# Buildkit + +Talos uses Moby [buildkit](https://github.com/moby/buildkit) for concurrent and cache-efficient builds. +By default, a buildkit service is started locally, but if you want to offload the builds to another server, +you can start a buildkit service with the following command: + +```bash +docker run --detach --privileged --restart always --publish 1234:1234 moby/buildkit --addr tcp://0.0.0.0:1234 +``` + +Then using the `BUILDKIT_HOST` environment variable before running any `make` target, E.G. + +```bash +BUILDKIT_HOST=tcp://192.168.1.50:1234 make initramfs +```