Krkn-Hub All Scenarios Variables

These variables are to be used for the top level configuration template that are shared by all the scenarios in Krkn-hub.

Each section below corresponds to a section in the Krkn config reference. Set variables on the host running the container:

export <parameter_name>=<value>

Kraken

Signal and status publishing settings. See Kraken config for full details.

ParameterDescriptionDefault
KRKN_KUBE_CONFIGPath to the kubeconfig file for cluster access/home/krkn/.kube/config
DISABLE_IMAGE_SIGNATUREDisables workload image signature verification before deploymentFalse
PUBLISH_KRAKEN_STATUSPublish kraken status to the signal addressFalse
SIGNAL_ADDRESSAddress to publish kraken status to0.0.0.0
PORTPort to publish kraken status to8081
SIGNAL_STATEWaits for the RUN signal when set to PAUSE before running the scenarios, refer docs for more detailsRUN
REPORT_FORMATSList of report formats to generate after each scenario (e.g., pdf, html)[pdf,html]
KRKN_DEBUGEnables debug mode for KrknFalse

Cerberus

Cluster health monitoring integration. See Cerberus config for full details.

ParameterDescriptionDefault
CERBERUS_ENABLEDSet this to true if cerberus is running and monitoring the clusterFalse
CERBERUS_URLURL to poll for the go/no-go signalhttp://0.0.0.0:8080

Performance Monitoring

Prometheus metrics collection and alert evaluation. See Performance Monitoring config for full details.

ParameterDescriptionDefault
UUIDUUID for the run; auto-generated if not set""
PROMETHEUS_URLURL to Prometheus instance; auto-detected on OpenShift, required for Kubernetes""
PROMETHEUS_TOKENBearer token for Prometheus authentication; auto-detected on OpenShift, required for Kubernetes""
CAPTURE_METRICSCaptures metrics as specified in the profile from in-cluster prometheus. Default metrics captures are listed hereFalse
ENABLE_ALERTSEvaluates expressions from in-cluster prometheus and exits 0 or 1 based on the severity set. Default profile.False
ALERTS_PATHPath to the alerts file to use when ENABLE_ALERTS is setconfig/alerts.yaml
ALERTS_RUN_DURINGPrometheus alert health-check phases: pre, during, post, or a list of phasesduring
ALERTS_EXIT_ON_FAILUREFail the run for critical or error alert evaluationsFalse
ALERTS_ONLY_FAILURESInclude only failed alert evaluations in telemetry and reportsFalse
METRICS_PATHPath to the metrics profile to use when CAPTURE_METRICS is setconfig/metrics-aggregated.yaml
CHECK_CRITICAL_ALERTSWhen enabled will check prometheus for critical alerts firing post chaosFalse

Resiliency Score

Resiliency scoring configuration. See Resiliency Score config for full details.

ParameterDescriptionDefault
RESILIENCY_RUN_MODEResiliency scoring mode: standalone embeds score in telemetry, detailed prints JSON report to stdout, disabled turns off scoringstandalone
RESILIENCY_FILEPath to a YAML file containing SLO definitions; defaults to the alerts profile or config/alerts.yamlconfig/alerts.yaml

Elastic

Elasticsearch storage for telemetry and metrics. See Elastic config for full details.

ParameterDescriptionDefault
ENABLE_ESEnable Elasticsearch integrationFalse
ES_SERVERURL of the Elasticsearch instancehttp://0.0.0.0
ES_PORTPort of the Elasticsearch instance443
ES_USERNAMEUsername for Elasticsearch authenticationelastic
ES_PASSWORDPassword for Elasticsearch authentication-
ES_VERIFY_CERTSVerify SSL certificates when connecting to ElasticsearchFalse
ES_RUN_TAGTag to identify the run in Elasticsearch""
ES_METRICS_INDEXElasticsearch index for metrics datakrkn-metrics
ES_ALERTS_INDEXElasticsearch index for alerts datakrkn-alerts
ES_TELEMETRY_INDEXElasticsearch index for telemetry datakrkn-telemetry

Tunings

Execution timing and iteration controls. See Tunings config for full details.

ParameterDescriptionDefault
WAIT_DURATIONDuration in seconds to wait between each chaos scenario60
ITERATIONSNumber of times to execute the scenarios1
DAEMON_MODEIterations are set to infinity which means that the kraken will cause chaos foreverFalse

Telemetry

Run data collection and upload settings. See Telemetry config for full details.

ParameterDescriptionDefault
TELEMETRY_ENABLEDEnable/disables the telemetry collection featureFalse
TELEMETRY_API_URLTelemetry service endpointhttps://ulnmf9xv7j.execute-api.us-west-2.amazonaws.com/produ...
TELEMETRY_USERNAMETelemetry service usernameredhat-chaos
TELEMETRY_PASSWORDTelemetry service password-
TELEMETRY_PROMETHEUS_BACKUPEnables/disables prometheus data collectionTrue
TELEMETRY_FULL_PROMETHEUS_BACKUPIf set to False only the /prometheus/wal folder will be downloadedFalse
TELEMETRY_BACKUP_THREADSNumber of telemetry download/upload threads5
TELEMETRY_ARCHIVE_PATHLocal path where the archive files will be temporarily stored/tmp
TELEMETRY_MAX_RETRIESMaximum number of upload retries (if 0 will retry forever)0
TELEMETRY_RUN_TAGIf set, this will be appended to the run folder in the bucket (useful to group the runs)chaos
TELEMETRY_GROUPIf set will archive the telemetry in the S3 bucket on a folder named after the valuedefault
TELEMETRY_ARCHIVE_SIZEThe size of the prometheus data archive in KB1000
TELEMETRY_LOGS_BACKUPLogs backup to S3False
TELEMETRY_FILTER_PATTERNFilter logs based on certain timestamp patterns["(\\w{3}\\s\\d{1,2}\\s\\d{2}:\\d{2}:\\d{2}\\.\\d+).+","kini...
TELEMETRY_CLI_PATHOC CLI path, if not specified will be searched in $PATH""
TELEMETRY_EVENTS_BACKUPEnables/disables events backup to S3True

Health Checks

Application endpoint monitoring during chaos. See Health Checks config for full details.

ParameterDescriptionDefault
HEALTH_CHECK_INTERVALInterval in seconds at which to run health checks2
HEALTH_CHECK_URLURL to continually check and detect downtimes""
HEALTH_CHECK_BEARER_TOKENBearer token used for authenticating into health check URL""
HEALTH_CHECK_AUTHTuple of (username, password) used for authenticating into health check URL""
HEALTH_CHECK_EXIT_ON_FAILUREIf True, exits when health check fails for application""
HEALTH_CHECK_VERIFYHealth check URL SSL validationFalse
HEALTH_CHECK_RUN_DURINGWhen to run health checks: pre (before chaos), during (continuous), post (after chaos), or combination like [pre,post]during
HEALTH_CHECK_ONLY_FAILURESOnly create telemetry records for failed health checksFalse

Virt Checks

KubeVirt VMI SSH connection monitoring during chaos. See Virt Checks config for full details.

ParameterDescriptionDefault
KUBE_VIRT_CHECK_INTERVALInterval in seconds at which to test kubevirt connections2
KUBE_VIRT_NAMESPACENamespace to find VMIs in and watch""
KUBE_VIRT_NAMERegex style name to match VMIs to watch""
KUBE_VIRT_LABEL_SELECTORLabel selector to filter VMs in KubeVirt""
KUBE_VIRT_FAILURESIf True, will only report when ssh connections fail to VMIFalse
KUBE_VIRT_DISCONNECTEDUse disconnected check by passing cluster APIFalse
KUBE_VIRT_SSH_NODEIf set, will be a backup way to SSH to a node. Should be a node not targeted in chaos""
KUBE_VIRT_NODE_NAMEFilter only VMI’s running a specific node name""
KUBE_VIRT_EXIT_ON_FAILFails run if VMs still have false status at end of runFalse

Other

Parameters found in the source that no section above covers.

ParameterDescriptionDefault
RETRY_WAIT120

Triggers

Parameters found in the source that no section above covers.

ParameterDescriptionDefault
TRIGGER_COMMANDShell command to evaluate before chaos starts. Chaos begins only after this command exits with the expected code. Leave empty to disable triggers.""
TRIGGER_EXPECTED_RCExpected shell command exit code for the trigger to be considered satisfied0
TRIGGER_HTTP_URLURL to poll for the HTTP trigger""
TRIGGER_HTTP_METHODHTTP method to use (GET, POST, etc.)GET
TRIGGER_HTTP_EXPECTED_STATUSExpected HTTP status code200
TRIGGER_HTTP_BEARER_TOKENBearer token for HTTP authentication""
TRIGGER_HTTP_BODY_CONTAINSSubstring expected in the HTTP response body""
TRIGGER_K8S_API_VERSIONKubernetes API version for the resource to watch (e.g. apps/v1, kubevirt.io/v1). Required when using a k8s trigger condition.""
TRIGGER_K8S_KINDKubernetes resource kind to watch (e.g. Deployment, Pod, VirtualMachineInstanceMigration)""
TRIGGER_K8S_NAMEName of the specific Kubernetes resource to watch""
TRIGGER_K8S_NAMESPACENamespace of the resource to watch. Leave empty for cluster-scoped resources like Nodes.""
TRIGGER_K8S_CONDITIONCondition expression to evaluate against the resource (e.g. status.phase == Running, status.readyReplicas >= 1)""
TRIGGER_PROM_QUERYPromQL expression for the prometheus trigger. Chaos begins only after the query returns a non-empty result. Leave empty to disable.""
TRIGGER_PROM_URLPrometheus API URL used by the prometheus trigger condition. Required when trigger-prom-query is set.""
TRIGGER_PROM_TOKENOptional bearer token for authenticating the prometheus trigger against prometheus-url""
TRIGGERS_MODEHow multiple trigger conditions are combinedall_of
TRIGGERS_TIMEOUTMaximum time in seconds to wait for trigger conditions before applying on-timeout behavior300
TRIGGERS_INTERVALPolling interval in seconds while waiting for trigger conditions5
TRIGGERS_ON_TIMEOUTBehavior when trigger conditions are not met before timeoutskip

Object State Checks

Parameters found in the source that no section above covers.

ParameterDescriptionDefault
OBJECT_STATE_CHECK_INTERVALHow often to check object states (seconds)2
OBJECT_STATE_CHECK_RUN_DURINGWhen to run checks: pre (before chaos), during (continuous), post (after chaos), or combination like [pre,during]during
OBJECT_STATE_CHECK_EXIT_ON_FAILUREExit on failure when object state check failsFalse
OBJECT_STATE_CHECK_ONLY_FAILURESOnly create telemetry records for failed object state checksFalse
OBJECT_STATE_CHECK_NAMEName of the object state check (e.g., etcd-ready-pods)""
OBJECT_STATE_CHECK_KINDKubernetes resource kind to check (Pod, Deployment, StatefulSet, DaemonSet, ReplicaSet, Service, Job, etc.)Pod
OBJECT_STATE_CHECK_OBJECT_NAMEName or regex pattern of objects to check (leave empty for all)""
OBJECT_STATE_CHECK_NAMESPACEKubernetes namespace to check objects in""
OBJECT_STATE_CHECK_LABEL_SELECTORKubernetes label selector to filter objects (e.g., app=nginx)""
OBJECT_STATE_CHECK_CONDITION_TYPEKubernetes condition type to check (Ready, Available, Progressing, etc.)Ready
OBJECT_STATE_CHECK_CONDITION_STATUSExpected status for the condition (True, False, or Unknown)True