/powerfulseal

A powerful testing tool for Kubernetes clusters.

Primary LanguagePythonApache License 2.0Apache-2.0

PowerfulSeal

Travis PyPI

PowerfulSeal injects failure into your Kubernetes clusters, so that you can detect problems as early as possible. It allows for writing scenarios describing complete chaos experiments.

Powerful Seal Logo
Embrace the inevitable failure. Embrace The Seal.

Highlights

  • works with Kubernetes, OpenStack, AWS, Azure, GCP and local machines
  • Prometheus and Datadog metrics collection
  • yaml policies describing chaos experiments
  • multiple modes

Powerfulseal documentation is included in the docs directory. It can be hosted locally with jekyll by running jekyll serve from the docs directory.

Hello world!

Just to give you a taste, here's an example policy. It will kill a single pod, and then check that the service continues responding to HTTP probes, to verify its resiliency to one of its pods going down.

scenarios:
- name: Kill one pod in my namespace, make sure the service responds
  steps:
  # kill a pod from `myapp` namespace
  - podAction:
      matches:
        - namespace: myapp
      filters:
        - randomSample:
            size: 1
      actions:
        - kill:
            probability: 0.75
  # check my service continues working
  - probeHTTP:
      target:
        service:
          name: my-service
          namespace: myapp
      endpoint: /healthz

Assuming that's in policy.yml, you can run it like this:

powerfulseal autonomous --policy-file ./policy.yaml

Learn more.

Read about the PowerfulSeal


Footnotes

PowerfulSeal logo Copyright 2018 The Linux Foundation, and distributed under the Creative Commons Attribution (CC-BY-4.0) license.