mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-02-14 18:10:00 +00:00
* 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>
2594 lines
74 KiB
JSON
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"
|
|
]
|
|
}
|
|
|
|
]
|
|
}
|
|
}
|