Overview

Kraken is the heart of the Kraken HPC ecosystem. Kraken is a Go framework for building distributed automation tools. Much of the Kraken HPC ecosystem is focused on provisioning and automation of HPC compute clusters, but there are a wide range of possible applications outside of HPC and provisioning. Kraken HPC contains the Kraken framework, some pre-made Kraken-based tools, kraken helper utilities, and a number of related projects that are used by these tools.

Projects

Kraken

  • Kraken – Kraken is a Go based framework for creating powerful distributed automation tools.

Kraken-based tools

  • Layercake – Layercake is a complete HPC booting and provisioning toolkit. It is able to manage rapid, stateful rolling updates of system images using a layered container approach to system images. It is also able to “self-heal” some issues through Kraken’s always-on automation approach.
  • Kraken/Shasta – Kraken/Shasta is a set of Kraken-based tools for automating HPE CSM (Shasta) systems.

Kraken helper utilities

  • Kraken-Dashboard – Kraken-Dashboard is a React.js based web application for monitoring and controlling Kraken-based tools. Kraken-Dashboard can also be built as a stand-alone electron application.
  • krakenctlkrakenctl is a command-line tool for viewing and manipulating running Kraken-based tool instances.
  • Layercake-Ansible – Layercake-Ansible is a set of Ansible roles for managing Layercake systems.

Auxiliary projects

  • Go-Fork – Go-Fork implements fork-like behavior in Go. It is able to launch functions in new namespaces as well. This project is used by several Kraken HPC projects for underlying process control functionality.
  • ImageAPI – The ImageAPI describes a restful (Swagger/OpenAPI 2.0) interface for attaching, mounting, and launching system image containers. It also includes an image loading implementation.
  • PowerAPI – PowerAPI is an API definition for simple power control of nodes. It comes with an implementation that can wrap the PowerMan service with a RESTful interface.
  • uinit – Uinit is a simple golang init process that is intended to be run from within u-root.