/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.

Please refer to the Powerfulseal documentation to learn how to use it.

Highlights

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

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

Installing

  • docker hub: docker pull powerfulseal/powerfulseal:3.1.1
  • pip: pip install powerfulseal

Read about the PowerfulSeal

Tools consuming PowerfulSeal


Footnotes

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