Hubs

Steadybit's hubs are the home for the chaos engineering community! They allow everyone to browse and contribute open-source extensions and templates made for Steadybit. Steadybit hosts its own Reliability Hub and always loves to see contributions via pull requests.

Steadybit's chaos engineering platform lets you connect to a hub to enable importing experiment templates or integrating documentation of an action.

Hub Connections

Admins can manage connected hubs in the platform's settings. By default, the platform connects to our Reliability Hub.

On-premise platform installations connect to a bundled local copy of our Reliability hub's content. Thus, air-gapped environments are supported even when reading data from the hub connection.

Connect New Hubs

Steadybit supports connecting your own hub to the platform. An administrator can manage hub connections via Settings> Hubs. To add a hub, you need to specify the URL to the hub's index.json (see section hub convention).

Platform - connect new hub

Once you've added your hub, you can import templates from the hub easily and view documentation of actions integrated into the experiment editor.

Disconnect Hub

When you disconnect a connected hub, you can decide to remove imported templates. Experiments created from a template are never deleted when you disconnect a hub.

Platform - disconnect hub

Host Your Own Hub

You can host your own hub to share content within your organization instead of with the public community. This is especially beneficial when you have developed a proprietary extension or need to share organization-specific templates. So far, we only support hosting a private hub's database and connecting it to the platform. We do not yet support hosting a white-labeled hub UI.

Hub Convention

To host your own hub, you have to serve a JSON-based endpoint via HTTP with a last modified unix timestamp (lastChange) and path references to templates and action documentation (see below). The platform will only update the referenced content when the unix timestamp (lastChange) has changed.

{
  "lastChange": 1719498293,
  "templates": [
    "/templates/aws-zone.zone-outage/template.json",
    "/templates/kubernetes-deployment.time-to-readiness/template.json"
    //...
  ],
   "actions": [
    "/actions/com.steadybit.extension_container.stress_cpu/description.yml",
    "/actions/com.steadybit.extension_host.shutdown/description.yml",
    //...
   ]
}

You can check out the index.json and all referenced content of Steadybit's Reliability Hub in our open-source GitHub repository.

Experiment Templates

Experiment templates, that can be imported to your platform, are listed in the templates section and are referencing the exported templates from your platform.

Action Documentation

The documentation of an action references a description.yml with the following format:

---
id:  com.steadybit.extension_host.shutdown
label: Trigger Shutdown Host
description: Triggers a reboot or shutdown of the host.
icon: |
  <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.231 1a.75.75 0 01.75.75v9.304a.75.75 0 01-1.5 0V1.75a.75.75 0 01.75-.75zm2.156 3.852a.75.75 0 01.957-.457 9.338 9.338 0 010 17.608l-.01.003A9.339 9.339 0 019.11 4.398a.75.75 0 11.52 1.408 7.839 7.839 0 005.22 14.781 7.838 7.838 0 00-.005-14.778.75.75 0 01-.457-.957z" fill="currentColor"/></svg>
kind: attack
category: state
targetType: com.steadybit.extension_host.host
extension: com.steadybit.extension_host
promotedActions:
  - com.steadybit.extension_aws.ec2_instance.state
tags:
  - Host
  - Kubernetes

The id needs to match the action-id provided by your extension.

Also, in the same folder as the description.yml, the platform will look for a summary.mdx containing Markdown content, see for example:

# Introduction

This action executes a shutdown on the host by issuing the `shutdown` command/syscall (depending on the operating system). You can instruct the action to issue a host restart when desired - in which case the command/syscall will be adapted as necessary.

...

# Parameters

| Parameter | Description                                 | Default |
|-----------|---------------------------------------------|---------|
| Reboot    | Should the host reboot after shutting down? | true    |

Last updated

Was this helpful?