Files
krkn/scenarios/plugin.schema.json
yogananth-subramanian 2111bab9a4 Pod ingress network shaping Chaos scenario
The scenario introduces network latency, packet loss, and bandwidth restriction in the Pod's network interface. The purpose of this scenario is to observe faults caused by random variations in the network.

Below example config applies ingress traffic shaping to openshift console.
````
- id: pod_ingress_shaping
  config:
    namespace: openshift-console   # Required - Namespace of the pod to which filter need to be applied.
    label_selector: 'component=ui' # Applies traffic shaping to access openshift console.
    network_params:
        latency: 500ms             # Add 500ms latency to ingress traffic from the pod.
````
2023-11-06 23:34:17 -05:00

2581 lines
74 KiB
JSON

{
"$id": "https://github.com/redhat-chaos/krkn/",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Kraken Arcaflow scenarios",
"description": "Serial execution of Arcaflow Python plugins. See https://github.com/arcaflow for details.",
"type": "array",
"minContains": 1,
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "kill-pods"
},
"config": {
"$defs": {
"KillPodConfig": {
"type": "object",
"properties": {
"namespace_pattern": {
"type": "string",
"format": "regex",
"title": "Namespace pattern",
"description": "Regular expression for target pod namespaces."
},
"name_pattern": {
"type": "string",
"format": "regex",
"title": "Name pattern",
"description": "Regular expression for target pods. Required if label_selector is not set."
},
"kill": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of pods to kill",
"description": "How many pods should we attempt to kill?"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target pods. Required if name_pattern is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"timeout": {
"type": "integer",
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"backoff": {
"type": "integer",
"default": 1,
"title": "Backoff",
"description": "How many seconds to wait between checks for the target pod status."
}
},
"required": [
"namespace_pattern"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"namespace_pattern": {
"type": "string",
"format": "regex",
"title": "Namespace pattern",
"description": "Regular expression for target pod namespaces."
},
"name_pattern": {
"type": "string",
"format": "regex",
"title": "Name pattern",
"description": "Regular expression for target pods. Required if label_selector is not set."
},
"kill": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of pods to kill",
"description": "How many pods should we attempt to kill?"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target pods. Required if name_pattern is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"timeout": {
"type": "integer",
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"backoff": {
"type": "integer",
"default": 1,
"title": "Backoff",
"description": "How many seconds to wait between checks for the target pod status."
}
},
"required": [
"namespace_pattern"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "wait-for-pods"
},
"config": {
"$defs": {
"WaitForPodsConfig": {
"type": "object",
"properties": {
"namespace_pattern": {
"type": "string",
"format": "regex"
},
"name_pattern": {
"type": "string",
"format": "regex"
},
"label_selector": {
"type": "string",
"minLength": 1
},
"count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Pod count",
"description": "Wait for at least this many pods to exist"
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "How many seconds to wait for?"
},
"backoff": {
"type": "integer",
"default": 1,
"title": "Backoff",
"description": "How many seconds to wait between checks for the target pod status."
},
"kubeconfig_path": {
"type": "string"
}
},
"required": [
"namespace_pattern"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"namespace_pattern": {
"type": "string",
"format": "regex"
},
"name_pattern": {
"type": "string",
"format": "regex"
},
"label_selector": {
"type": "string",
"minLength": 1
},
"count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Pod count",
"description": "Wait for at least this many pods to exist"
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "How many seconds to wait for?"
},
"backoff": {
"type": "integer",
"default": 1,
"title": "Backoff",
"description": "How many seconds to wait between checks for the target pod status."
},
"kubeconfig_path": {
"type": "string"
}
},
"required": [
"namespace_pattern"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "run_python"
},
"config": {
"$defs": {
"RunPythonFileInput": {
"type": "object",
"properties": {
"filename": {
"type": "string"
}
},
"required": [
"filename"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"filename": {
"type": "string"
}
},
"required": [
"filename"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "vmware-node-start"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "vmware-node-stop"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "vmware-node-reboot"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "vmware-node-terminate"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"verify_session": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": true,
"title": "Verify API Session",
"description": "Verifies the vSphere client session. It is enabled by default"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ibmcloud-node-start"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ibmcloud-node-stop"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ibmcloud-node-reboot"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ibmcloud-node-terminate"
},
"config": {
"$defs": {
"NodeScenarioConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Name(s) for target nodes. Required if label_selector is not set."
},
"runs": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Number of runs per node",
"description": "Number of times to inject each scenario under actions (will perform on same node each time)"
},
"label_selector": {
"type": "string",
"minLength": 1,
"title": "Label selector",
"description": "Kubernetes label selector for the target nodes. Required if name is not set.\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for details."
},
"timeout": {
"type": "integer",
"minimum": 1,
"default": 180,
"title": "Timeout",
"description": "Timeout to wait for the target pod(s) to be removed in seconds."
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of nodes to perform action/select that match the label selector."
},
"skip_openshift_checks": {
"anyOf": [
{
"title": "Boolean",
"type": "boolean"
},
{
"title": "String",
"type": "string",
"enum": [
"yes",
"y",
"true",
"on",
"enable",
"enabled",
"1",
"no",
"n",
"false",
"off",
"disable",
"disabled",
"0"
]
},
{
"title": "Integer",
"type": "integer",
"maximum": 1,
"minimum": 0
}
],
"default": false,
"title": "Skip Openshift Checks",
"description": "Skip checking the status of the openshift nodes."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Path to your Kubeconfig file. Defaults to ~/.kube/config.\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
}
},
"required": [],
"additionalProperties": false,
"dependentRequired": {
"name": [
"skip_openshift_checks"
]
}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"title": "pod_network_outage Arcaflow scenarios",
"properties": {
"id": {
"type": "string",
"const": "pod_network_outage"
},
"config": {
"$defs": {
"InputParams": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"direction": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"ingress",
"egress"
],
"title": "Direction",
"description": "List of directions to apply filtersDefault both egress and ingress."
},
"ingress_ports": {
"type": "array",
"items": {
"type": "integer"
},
"default": [],
"title": "Ingress ports",
"description": "List of ports to block traffic onDefault [], i.e. all ports"
},
"egress_ports": {
"type": "array",
"items": {
"type": "integer"
},
"default": [],
"title": "Egress ports",
"description": "List of ports to block traffic onDefault [], i.e. all ports"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 120,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"direction": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"ingress",
"egress"
],
"title": "Direction",
"description": "List of directions to apply filtersDefault both egress and ingress."
},
"ingress_ports": {
"type": "array",
"items": {
"type": "integer"
},
"default": [],
"title": "Ingress ports",
"description": "List of ports to block traffic onDefault [], i.e. all ports"
},
"egress_ports": {
"type": "array",
"items": {
"type": "integer"
},
"default": [],
"title": "Egress ports",
"description": "List of ports to block traffic onDefault [], i.e. all ports"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 120,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"title": "pod_egress_shaping Arcaflow scenarios",
"properties": {
"id": {
"type": "string",
"const": "pod_egress_shaping"
},
"config": {
"$defs": {
"EgressParams": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 90,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
},
"execution_type": {
"type": "string",
"default": "parallel",
"title": "Execution Type",
"description": "The order in which the ingress filters are applied. Execution type can be 'serial' or 'parallel'"
},
"network_params": {
"type": "object",
"propertyNames": {},
"additionalProperties": {
"type": "string"
},
"title": "Network Parameters",
"description": "The network filters that are applied on the interface. The currently supported filters are latency, loss and bandwidth"
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 90,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
},
"execution_type": {
"type": "string",
"default": "parallel",
"title": "Execution Type",
"description": "The order in which the ingress filters are applied. Execution type can be 'serial' or 'parallel'"
},
"network_params": {
"type": "object",
"propertyNames": {},
"additionalProperties": {
"type": "string"
},
"title": "Network Parameters",
"description": "The network filters that are applied on the interface. The currently supported filters are latency, loss and bandwidth"
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
},
{
"type": "object",
"title": "pod_ingress_shaping Arcaflow scenarios",
"properties": {
"id": {
"type": "string",
"const": "pod_ingress_shaping"
},
"config": {
"$defs": {
"IngressParams": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"network_params": {
"type": "object",
"propertyNames": {},
"additionalProperties": {
"type": "string"
},
"title": "Network Parameters",
"description": "The network filters that are applied on the interface. The currently supported filters are latency, loss and bandwidth"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 90,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
},
"execution_type": {
"type": "string",
"default": "parallel",
"title": "Execution Type",
"description": "The order in which the ingress filters are applied. Execution type can be 'serial' or 'parallel'"
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"type": "object",
"properties": {
"namespace": {
"type": "string",
"minLength": 1,
"title": "Namespace",
"description": "Namespace of the pod to which filter need to be appliedfor details."
},
"network_params": {
"type": "object",
"propertyNames": {},
"additionalProperties": {
"type": "string"
},
"title": "Network Parameters",
"description": "The network filters that are applied on the interface. The currently supported filters are latency, loss and bandwidth"
},
"kubeconfig_path": {
"type": "string",
"title": "Kubeconfig path",
"description": "Kubeconfig file as string\nSee https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/ for details."
},
"pod_name": {
"type": "string",
"title": "Pod name",
"description": "When label_selector is not specified, pod matching the name will beselected for the chaos scenario"
},
"label_selector": {
"type": "string",
"title": "Label selector",
"description": "Kubernetes label selector for the target pod. When pod_name is not specified, pod with matching label_selector is selected for chaos scenario"
},
"kraken_config": {
"type": "string",
"title": "Kraken Config",
"description": "Path to the config file of Kraken. Set this field if you wish to publish status onto Cerberus"
},
"test_duration": {
"type": "integer",
"minimum": 1,
"default": 90,
"title": "Test duration",
"description": "Duration for which each step of the ingress chaos testing is to be performed."
},
"wait_duration": {
"type": "integer",
"minimum": 1,
"default": 300,
"title": "Wait Duration",
"description": "Wait duration for finishing a test and its cleanup.Ensure that it is significantly greater than wait_duration"
},
"instance_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Instance Count",
"description": "Number of pods to perform action/select that match the label selector."
},
"execution_type": {
"type": "string",
"default": "parallel",
"title": "Execution Type",
"description": "The order in which the ingress filters are applied. Execution type can be 'serial' or 'parallel'"
}
},
"required": [
"namespace"
],
"additionalProperties": false,
"dependentRequired": {}
}
},
"required": [
"id",
"config"
]
}
]
}
}