/tink-1

A workflow engine for provisioning bare metal.

Primary LanguageGoApache License 2.0Apache-2.0

Tinkerbell

Build Status codecov CII Best Practices

This repository is Experimental meaning that it's based on untested ideas or techniques and not yet established or finalized or involves a radically new and innovative style! This means that support is best effort (at best!) and we strongly encourage you to NOT use this in production.

It is comprised of following five major components:

  1. A DHCP server (boots)
  2. A workflow engine (tink, this repository)
  3. A metadata service (hegel)
  4. An in-memory installation environment(osie)
  5. A controller/handler of BMC interactions(pbnj)

The workflow engine is comprised of a server and a CLI, which communicates over gRPC. The CLI is used to create a workflow and its building blocks: templates and targeted hardware.

Building

Use make help Luke. The most interesting targets are make all (or just make) and make images. make all builds all the binaries for your host OS and CPU to enable running directly. make images will build all the binaries for Linux/x86_64 and build docker images with them.

Workflow

A workflow is a framework responsible for handling flexible, bare metal provisioning, that is...

  • standalone and does not need the Packet API to function
  • contains Boots, Tink, Hegel, OSIE, PBnJ and workers
  • can bootstrap any remote worker using Boots + Hegel + OSIE + PBnJ
  • can run any set of actions as Docker container runtimes
  • receive, manipulate, and save runtime data

Website

For complete documentation, please visit the Tinkerbell project hosted at tinkerbell.org.