mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-02-14 09:59:59 +00:00
* kubeconfig management for arcaflow + hogs scenario refactoring * kubeconfig authentication parsing refactored to support arcaflow kubernetes deployer * reimplemented all the hog scenarios to allow multiple parallel containers of the same scenarios (eg. to stress two or more nodes in the same run simultaneously) * updated documentation * removed sysbench scenarios * recovered cpu hogs * updated requirements.txt * updated config.yaml * added gitleaks file for test fixtures * imported sys and logging * removed config_arcaflow.yaml * updated readme * refactored arcaflow documentation entrypoint
130 lines
4.2 KiB
YAML
130 lines
4.2 KiB
YAML
input:
|
|
root: RootObject
|
|
objects:
|
|
RootObject:
|
|
id: RootObject
|
|
properties:
|
|
kubeconfig:
|
|
display:
|
|
description: The complete kubeconfig file as a string
|
|
name: Kubeconfig file contents
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
node_selector:
|
|
display:
|
|
description: kubernetes node name where the plugin must be deployed
|
|
type:
|
|
type_id: map
|
|
values:
|
|
type_id: string
|
|
keys:
|
|
type_id: string
|
|
required: true
|
|
duration:
|
|
display:
|
|
name: duration the scenario expressed in seconds
|
|
description: stop stress test after T seconds. One can also specify the units of time in
|
|
seconds, minutes, hours, days or years with the suffix s, m, h, d or y
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
io_workers:
|
|
display:
|
|
description: number of workers
|
|
name: start N workers continually writing, reading and removing temporary files
|
|
type:
|
|
type_id: integer
|
|
required: true
|
|
io_block_size:
|
|
display:
|
|
description: single write size
|
|
name: specify size of each write in bytes. Size can be from 1 byte to 4MB.
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
io_write_bytes:
|
|
display:
|
|
description: Total number of bytes written
|
|
name: write N bytes for each hdd process, the default is 1 GB. One can specify the size
|
|
as % of free space on the file system or in units of Bytes, KBytes, MBytes and
|
|
GBytes using the suffix b, k, m or g
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
target_pod_folder:
|
|
display:
|
|
description: Target Folder
|
|
name: Folder in the pod where the test will be executed and the test files will be written
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
target_pod_volume:
|
|
display:
|
|
name: kubernetes volume definition
|
|
description: the volume that will be attached to the pod. In order to stress
|
|
the node storage only hosPath mode is currently supported
|
|
type:
|
|
type_id: object
|
|
id: k8s_volume
|
|
properties:
|
|
name:
|
|
display:
|
|
description: name of the volume (must match the name in pod definition)
|
|
type:
|
|
type_id: string
|
|
required: true
|
|
hostPath:
|
|
display:
|
|
description: hostPath options expressed as string map (key-value)
|
|
type:
|
|
type_id: map
|
|
values:
|
|
type_id: string
|
|
keys:
|
|
type_id: string
|
|
required: true
|
|
required: true
|
|
|
|
steps:
|
|
kubeconfig:
|
|
plugin: quay.io/arcalot/arcaflow-plugin-kubeconfig:latest
|
|
input:
|
|
kubeconfig: !expr $.input.kubeconfig
|
|
stressng:
|
|
plugin: quay.io/arcalot/arcaflow-plugin-stressng:latest
|
|
step: workload
|
|
input:
|
|
StressNGParams:
|
|
timeout: !expr $.input.duration
|
|
cleanup: "true"
|
|
workdir: !expr $.input.target_pod_folder
|
|
items:
|
|
- stressor: hdd
|
|
hdd: !expr $.input.io_workers
|
|
hdd_bytes: !expr $.input.io_write_bytes
|
|
hdd_write_size: !expr $.input.io_block_size
|
|
|
|
deploy:
|
|
type: kubernetes
|
|
connection: !expr $.steps.kubeconfig.outputs.success.connection
|
|
pod:
|
|
metadata:
|
|
namespace: default
|
|
labels:
|
|
arcaflow: stressng
|
|
spec:
|
|
nodeSelector: !expr $.input.node_selector
|
|
pluginContainer:
|
|
imagePullPolicy: Always
|
|
volumeMounts:
|
|
- mountPath: /data
|
|
name: node-volume
|
|
volumes:
|
|
- !expr $.input.target_pod_volume
|
|
|
|
outputs:
|
|
success:
|
|
stressng: !expr $.steps.stressng.outputs.success
|
|
|