Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 2.24 KB

namespace_scenarios.md

File metadata and controls

55 lines (35 loc) · 2.24 KB

Delete Namespace Scenarios

Using this type of scenario configuration one is able to delete a specific namespace, or a namespace matching a certain regex string.

Configuration Options:

namespace: Specific namespace or regex style namespace of what you want to delete. Gets all namespaces if not specified; set to "" if you want to use the label_selector field.

Set to '^.*$' and label_selector to "" to randomly select any namespace in your cluster.

label_selector: Label on the namespace you want to delete. Set to "" if you are using the namespace variable.

delete_count: Number of namespaces to kill in each run. Based on matching namespace and label specified, default is 1.

runs: Number of runs/iterations to kill namespaces, default is 1.

sleep: Number of seconds to wait between each iteration/count of killing namespaces. Defaults to 10 seconds if not set

Refer to namespace_scenarios_example config file.

scenarios:
- namespace: "^.*$"
  runs: 1
- namespace: "^.*ingress.*$"
  runs: 1
  sleep: 15

NOTE: Many openshift namespaces have finalizers built that protect the namespace from being fully deleted: see documentation here. The namespaces that do have finalizers enabled will be in left in a terminating state but all the pods running on that namespace will get deleted.

Post Action

In all scenarios we do a post chaos check to wait and verify the specific component.

Here there are two options:

  1. Pass a custom script in the main config scenario list that will run before the chaos and verify the output matches post chaos scenario.

See scenarios/post_action_namespace.py for an example

-   namespace_scenarios:
     - -    scenarios/regex_namespace.yaml
       -    scenarios/post_action_namespace.py
  1. Allow kraken to wait and check the killed namespaces become 'Active' again. Kraken keeps a list of the specific namespaces that were killed to verify all that were affected recover properly.
wait_time: <seconds to wait for namespace to recover>