Files
krkn/scenarios/plugin.schema.json
Tullio Sebastiani ab98e416a6 Integration of the new pod recovery monitoring strategy implemented in krkn-lib (#609)
* pod monitoring integration in plugin scenario

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* pod monitoring integration in container scenario

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* removed wait-for-pod step from plugin scenario config files

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* introduced global pod recovery time

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

nit

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* introduced krkn_pod_recovery_time in plugin scenario and removed all the references to wait-for-pods

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

fix

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* functional test fix

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* main branch functional test fix

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

* increased recovery times

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>

---------

Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>
2024-04-23 10:49:01 +02:00

2594 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."
},
"krkn_pod_recovery_time": {
"type": "integer",
"default": 30,
"title": "Recovery Time",
"description": "The Expected Recovery time fo the pod (used by Krkn to monitor the pod lifecycle)."
}
},
"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."
},
"krkn_pod_recovery_time": {
"type": "integer",
"default": 30,
"title": "Recovery Time",
"description": "The Expected Recovery time fo the pod (used by Krkn to monitor the pod lifecycle)."
}
},
"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"
]
}
]
}
}