Skip to content

Commit ba28824

Browse files
The big split (#250)
* remove components that now live elsewhere * Update README.md * re-add config/generate-kitchensink.sh for testing
1 parent 68c1e37 commit ba28824

File tree

202 files changed

+32
-34106
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+32
-34106
lines changed

Dockerfile

Lines changed: 0 additions & 95 deletions
This file was deleted.

README.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,48 @@
1-
# NEW! Want to give it a spin?
1+
# Kraken
22

3-
Look under `examples/vbox` for instructions to deploy a virtual Kraken cluster with a single command. See the [README](examples/vbox/README.md).
3+
## Reorganization notice
4+
***Please excuse our dust. Kraken has been subdivided into different repos. This repo now only contains core components for the kraken framework; most modules and extensions have been moved elsewhere.***
45

5-
# What is Kraken?
6+
- If you're trying to provision clusters, you probably want [kraken-layercake](https://github.com/kraken-hpc/kraken-layercake)
7+
- If you're looking for thermal control or Raspberry Pi modules/extensions, try [kraken-legacy](https://github.com/kraken-hpc/kraken-legacy)
8+
- If you're looking for ansible roles for kraken, you probably want [kraken-layercake-ansible](https://github.com/kraken-hpc/kraken-layercake-ansible)
69

7-
Kraken is a distributed state engine that can maintain state across a large set of computers. It was designed to provide full-lifecycle maintenance of HPC compute clusters, from cold boot to ongoing system state maintenance and automation.
10+
## What is Kraken?
11+
12+
Kraken is a distributed state engine *framework* for building tools that can maintain and manipulate state across a large set of computers. It was designed to provide full-lifecycle maintenance of HPC compute clusters, from cold boot to ongoing system state maintenance and automation (see: [kraken-layercake](https://github.com/kraken-hpc/kraken-layercake) for this implementation).
813

914
Kraken was designed for HPC use-cases but may be useful anywhere distributed automation is needed. Kraken is designed to be highly modular and should be able to adapt to many situations.
1015

11-
# What do you mean by "state engine", and how does it work?
16+
### Kraken is modular
17+
18+
Kraken on its own is only a framework. When combined with modules, kraken can do things. Kraken modules can discover real state values in a system an communicate them. Kraken modules can declare that they know how to "mutate" the system to different states. Kraken modules can also do things like run tiny services the system needs.
19+
20+
### Kraken state is extensible
1221

13-
Kraken maintains a copy of the desired state (called "Configuration" state, abr "Cfg"). It also is able--through specialized modules--to discover bits of current real state ("Discoverable" state, abr. "Dsc"). Kraken modules provide a list of state mutations that they can perform, e.g. for `PhysState: POWER_OFF` to `PhysState: POWER_ON`. These mutations are used to generate a directed graph. Any time a difference is detected between Configuration (intended) state and Discoverable (actual) state, Kraken computes a path of mutations to converge on the Configuration state.
22+
Kraken starts with a very simple state-definition per node. Through *extensions* kraken can define new kinds of state information. You can loosely think of extensions as something like database schemas.
1423

15-
# What do you mean by "distributed state engine", and how does *that* work?
24+
## What do you mean by "state engine", and how does it work?
1625

17-
Kraken distributes the state across potentially thousands of individual physical nodes. It maintains synchronization through a one-way state-update protocol, that is reminiscent of routing protocols like OSPF. It can (or will when fully implemented) create trees for multi-level state synchronization, and each level of the tree can provide a full suite of Kraken controlled microservices. State synchronization in Kraken follows the "eventual consistency" model; we never guarantee that the entire distributed state is consistent, but can provide conditional guaranties that it will converge to consistency.
26+
Kraken maintains a copy of the desired state (called "Configuration" state, abr "Cfg"). It also is able--through specialized modules--to discover bits of current real state ("Discoverable" state, abr. "Dsc"). Kraken modules provide a list of state mutations that they can perform, e.g. for `PhysState: POWER_OFF` to `PhysState: POWER_ON`. These mutations are used to generate a directed graph. At any time, if a difference is detected between Configuration (intended) state and Discoverable (actual) state, Kraken computes a path of mutations to converge on the Configuration state.
1827

19-
# How do I learn more?
28+
## What do you mean by "distributed state engine", and how does *that* work?
2029

21-
Kraken is brand new and in very active development. As part of the development efforts of Kraken, we will be updating the repository with more and more documentation, ranging from implementation guides to application architecture and module API guides.
30+
Kraken distributes the state across potentially thousands of individual physical nodes. It maintains synchronization through a one-way state-update protocol that is reminiscent of routing protocols like OSPF. State synchronization in Kraken follows the "eventual consistency" model; we never guarantee that the entire distributed state is consistent, but can provide conditional guaranties that it will converge to consistency.
2231

23-
# Notes on this version of Kraken
32+
## How do I learn more?
2433

25-
Kraken is still a fledgling sea-monster. We don't yet consider it ready for production but hope to get it there very soon. If you try to deploy in production, it will likely drink your coffee/beer/tea.
34+
Kraken is in very active development. As part of the development efforts of Kraken, we will be updating the repository with more and more documentation, ranging from implementation guides to application architecture and module API guides. There are also a number of talks, papers, and presentations out there about Kraken and its related projects.
2635

27-
Check back soon for more documentation, utilities and demonstrations.
36+
## Notes on this version of Kraken
2837

29-
# I want to get involved...
38+
Kraken is still a fledgling sea-monster, but it has show itself capable of some pretty powerful things. The [kraken-layercake](https://github.com/kraken-hpc/kraken-layercake) project is our reference project for kraken capabilities. It can boot and maintain large scale compute clusters, providing unique capalities like:
39+
- Stateful rolling updates of images in microseconds
40+
- Self-healing capabilities at all layers of the stack
41+
- Active feedback and monitoring of system state through tools like [kraken-dashboard](https://github.com/kraken-hpc/kraken-dashboard) and [krakenctl](https://github.com/kraken-hpc/krakenctl)
42+
43+
Check back soon for more documentation, utilities, and demonstrations.
44+
45+
## I want to get involved...
3046

3147
Excellent! It's our intention to make Kraken a community developed project. To get started, you can:
3248

@@ -35,3 +51,5 @@ Excellent! It's our intention to make Kraken a community developed project. To
3551
2) take a look at any posted issues;
3652
3) post new issues;
3753
4) create pull requests.
54+
55+
Enjoy!

config/kraken.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.

config/layercake.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

config/pipxe.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.

config/powerapi.yaml

Lines changed: 0 additions & 18 deletions
This file was deleted.

config/powerman.yaml

Lines changed: 0 additions & 19 deletions
This file was deleted.

config/redfish.yaml

Lines changed: 0 additions & 25 deletions
This file was deleted.

config/vbox.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

config/vbox_uroot.yaml

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)