A powerful testing tool for Kubernetes clusters.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 123 commits behind bloomberg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
media
powerfulseal
tests
.gitignore
.travis.yml
CONTRIBUTING.md
DCO.md
LICENSE
MANIFEST.in
Makefile
README.md
requirements.txt
setup.py

README.md

PowerfulSeal

PowerfulSeal adds chaos to your Kubernetes clusters, so that you can detect problems in your systems as early as possible. It kills targeted pods and takes VMs up and down.

It follows the Principles of Chaos Engineering, and is inspired by Chaos Monkey.

Embrace the inevitable failure. Embrace The Seal.

PyPI Travis

Watch us introduce the Seal at Kubecon 2017 Austin

Introduction

PowerfulSeal works in two modes: interactive and autonomous.

Interactive mode is designed to allow you to discover your cluster's components, and manually break things to see what happens. It operates on nodes, pods, deployments and namespaces.

Autonomous mode reads a policy file, which can contain any number of pod and node scenarios. Each scenario describes a list of matches, filters and actions to execute on your cluster.

Interactive mode

Here's a sneak peek of what you can do in the interactive mode:

demo nodes

demo pods

Autonomous mode

Autonomous reads the scenarios to execute from the policy file, and runs them:

  1. The matches are combined together and deduplicated to produce an initial working set
  2. They are run through a series of filters
  3. For all the items remaining after the filters, all actions are executed

pipeline

Writing policies

A minimal policy file, doing nothing, looks like this:

config:
  minSecondsBetweenRuns: 77
  maxSecondsBetweenRuns: 100

nodeScenarios: []

podScenarios: [] 

The schemas are validated against the powerful JSON schema

A full featured example listing most of the available options can be found in the tests.

Setup

Setup includes:

  • pointing PowerfulSeal at your Kubernetes cluster by giving it a Kubernetes config file
  • pointing PowerfulSeal at your cloud by specifying the cloud driver to use and providing credentials
  • making sure that PowerfulSeal can SSH into the nodes to execute commands on them
  • writing a set of policies

These interactions are available:

pipeline

Getting started

PowerfulSeal is available to install through pip:

pip install powerfulseal
powerfulseal --help # or seal --help

Read about the PowerfulSeal

FAQ

Where can I learn more about Chaos Engineering ?

We found these two links to be a good start:

How is it different from Chaos Monkey ?

PowerfulSeal was inspired by Chaos Monkey, but it differs in a couple of important ways.

The Seal does:

  • speak Kubernetes
  • offer flexible, easy to write YAML scenarios
  • provide interactive mode with awesome tab-completion

The Seal doesn't:

  • need external dependencies (db, Spinnaker), apart from SSH, cloud and Kubernetes API access
  • need you to setup cron

Can I contribute to The Seal ?

We would love you to. In particular, it would be great to get help with:

Check out our CONTRIBUTING.md file for more information about how to contribute.

Why a Seal ?

It might have been inspired by this comic