Command Probe
Execute custom commands and scripts for flexible validation
This topic describes the definition and schema of the command probe. It also describes how to tune the probe in two modes: inline mode and source mode.
The command probe allows you to run Bash commands and match the output as part of the entry or exit criteria. The intent behind this probe is to implement a non-standard and imperative way to express the hypothesis. For example, you can check for specific data within a database, parse the value out of a JSON blob that is dumped into a certain path, or check for the existence of a particular string in the service logs.
Probe definition
You can define the probe at .spec.experiments[].spec.probe path inside the chaos engine.
kind: Workflow
apiVersion: argoproj.io/v1alpha1
spec:
templates:
- inputs:
artifacts:
- raw:
data: |
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
spec:
experiments:
- spec:
probe:
####################################
Probes are defined here
####################################Schema
Listed below is the probe schema for the command probe with properties shared across all the probes and properties unique to the command probe.
Field
Description
Type
Range
Notes
name
Flag that holds the name of the probe
Mandatory
N/A type: string
The name holds the name of the probe. It can be set based on the use-case
type
Flag to hold the type of the probe
Mandatory
httpProbe, k8sProbe, cmdProbe, promProbe, and datadogProbe
The type supports five types of probes: httpProbe, k8sProbe, cmdProbe, promProbe, and datadogProbe.
mode
Flag to hold the mode of the probe
Mandatory
SOT, EOT, Edge, Continuous, OnChaos
The mode supports five modes of probes: SOT, EOT, Edge, Continuous, and OnChaos. Datadog probe supports EOT mode only.
command
Flag to hold the command for the cmdProbe
Mandatory
N/A type: string
The command contains the shell command, which should be run as part of cmdProbe
Source
Field
Description
Type
Range
Notes
image
Flag to hold the image for the cmdProbe
Mandatory
any source docker image
The image provides the source image which can be used to launch a external pod where the command execution is carried out.
hostNetwork
Flag to allow or deny the image access to the node network namespace
Optional
true, false
The hostNetwork provides a possibility to allow the pod executing the cmdProbe access to the network of the node he is running on. For more details, go to the official Kubernetes documentation.
inheritInputs
Flag for inheriting experiment pod attributes such as ENV, volumes, and volumeMounts into the probe pod
Optional
true, false
Default is false i.e. the experiment pod attributes won't be inherited by the probe pod by default
args
Arguments to be used for the source probe
Optional
type: string
List of arguments to be used along with the probe command
env
Environment variables to be used for the source probe pod
Optional
type: string
List of environment variables to be used probe pod container
labels
Labels for the source probe pod
Optional
type: string
Labels to be added to the source probe pod
annotations
Annotations for the source probe pod
Optional
type: string
Annotations to be added to the source probe pod
command
Command to be executed using the source probe image
Optional
type: string
Command to be executed using the source probe image, which can be provided as a list
imagePullPolicy
Image Pull Policy to be used for the source pod image
Optional
type: string
Image Pull Policy to be used for the source pod image, supports Always, IfNotPresent, and Never
privileged
Privileged execution permissions for the probe image
Optional
true, false
Privileged execution permissions for the probe image, supports a boolean value
nodeSelector
Label(s) of the node(s) to be used for deploying the source probe pod
Optional
type: string
Key-Value label(s) of the node(s) to be used for deploying the source probe pod
volumes
Volumes to be mounted to the source probe pod
Optional
N/A
Depending on the type of the volume, additional properties need to be provided
volumesMount
Volume mount paths for the corresponding source pod volumes
Optional
type: string
List of volume mount paths for the corresponding source pod volumes
imagePullSecrets
Image pull secrets for the source pod image
Optional
type: string
List of image pull secrets for the source pod image
Comparator
Field
Description
Type
Range
Notes
type
Flag to hold type of the data used for comparison
Mandatory
string, int, float
The type contains type of data, which should be compared as part of comparison operation.
criteria
Flag to hold criteria for the comparison
Mandatory
It supports {>=, <=, ==, >, <, !=, oneOf, between} for int and float type. And {equal, notEqual, contains, matches, notMatches, oneOf} for string type.
The criteria contains criteria of the comparison, which should be fulfill as part of comparison operation.
value
Flag to hold value for the comparison
Mandatory
N/A type: string
The value contains value of the comparison, which should follow the given criteria as part of comparison operation.
Run properties
Field
Description
Type
Range
Notes
probeTimeout
Flag to hold the timeout of the probe
Mandatory
N/A type: string
The probeTimeout represents the time limit for the probe to execute the specified check and return the expected data
attempt
Flag to hold the attempt of the probe
Mandatory
N/A type: integer
The attempt contains the number of times a check is run upon failure in the previous attempts before declaring the probe status as failed.
interval
Flag to hold the interval of the probe
Mandatory
N/A type: string
The interval contains the interval for which probes waits between subsequent retries
probePollingInterval
Flag to hold the polling interval for the probes (applicable for all modes)
Optional
N/A type: string
The probePollingInterval contains the time interval for which continuous and onchaos probe should be sleep after each iteration
initialDelaySeconds
Flag to hold the initial delay interval for the probes
Optional
N/A type: integer
The initialDelaySeconds represents the initial waiting time interval for the probes.
stopOnFailure
Flags to hold the stop or continue the experiment on probe failure
Optional
N/A type: boolean
The stopOnFailure can be set to true/false to stop or continue the experiment execution after probe fails
Definition
A sample definition of the probe is given below.
Inline mode
In the inline mode, the command probe is executed directly within the experiment pod. This mode is recommended for executing straightforward shell commands. It is the default mode and can be tuned by leaving out the 'source' field.
Use the following example to tune this:
Source Mode
In source mode, the command is executed within a newly created pod, allowing for the specification of its image. This mode is useful when application-specific binaries are needed.
Use the following example to tune this:
Last updated
Was this helpful?