First of all, thank you! We value your time and interest in making Talos a successful open source project.
What can I do to help?
There are a number of ways you can help! We are in need of both technical and non-technical contributions. Even just mentioning the project to a friend, colleague, or anyone else for that matter, would be a huge help. We need writers, bloggers, engineers, graphics designers — you name it, we need it.
Let's talk about some of the guidelines we have when making a contribution to Talos.
You probably noticed we use a funny way of writing commit messages. Indeed we do, but its based on a specification called Conventional Commits. Don't worry, it won't be too much of hassle. We have a small tool that you can use to remind you of our policy.
go get github.com/autonomy/conform cat <<EOF | tee .git/hooks/commit-msg #!/bin/sh conform enforce --commit-msg-file \$1 EOF chmod +x .git/hooks/commit-msg
In addition, all commits should be signed by the committer using
git commit -s which should produce a commit
Signed-off-by: Your Name <your@email>. It is not necessary to cryptographically sign commits
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.
To start developing for Talos you will need at least
GNU Make and
From there you can bootstrap the rest of the toolchain and install Golang dependencies with the following commands:
GO111MODULE=on go get make ci
Makefile there are a variety of targets, the most common are:
vmlinuzLinux kernel executable.
initramfs.xzinitial RAMdisk filesystem.
image.rawfile that can be used as a image volume for VMs.
osctlCLI tool for Linux & OSX respectively.
rootfscreates an archive of the root filesystem preloaded with all the components needed to launch Talos & Kubernetes.
Talos uses 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:
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.
BUILDKIT_HOST=tcp://192.168.1.50:1234 make initramfs