mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-02-14 18:10:00 +00:00
Some checks failed
Functional & Unit Tests / Functional & Unit Tests (push) Failing after 10m5s
Functional & Unit Tests / Generate Coverage Badge (push) Has been skipped
Signed-off-by: Paige Patton <prubenda@redhat.com>
584 lines
19 KiB
JSON
584 lines
19 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": "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",
|
|
"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."
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"title": "Image",
|
|
"default": "image: quay.io/krkn-chaos/krkn:tools",
|
|
"description": "Image of the krkn tools to run network outage."
|
|
},
|
|
"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."
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"title": "Image",
|
|
"default": "image: quay.io/krkn-chaos/krkn:tools",
|
|
"description": "Image of the krkn tools to run network outage."
|
|
},
|
|
"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."
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"title": "Image",
|
|
"default": "image: quay.io/krkn-chaos/krkn:tools",
|
|
"description": "Image of the krkn tools to run network outage."
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |