Skip to content

Commit

Permalink
hog scenarios + telemetry
Browse files Browse the repository at this point in the history
removed
  • Loading branch information
tsebastiani committed Nov 21, 2023
1 parent 82db2fc commit 30a1810
Show file tree
Hide file tree
Showing 31 changed files with 743 additions and 359 deletions.
43 changes: 0 additions & 43 deletions CI/config/common_test_config.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions CI/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ echo '-----------------------|--------|---------' >> $results
# Run each test
for test_name in `cat CI/tests/my_tests`
do
wait_cluster_become_ready
#wait_cluster_become_ready
./CI/run_test.sh $test_name $results
wait_cluster_become_ready
#wait_cluster_become_ready
done
3 changes: 1 addition & 2 deletions CI/run_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ function get_time_format() {
echo $hours:$minutes:$seconds
}
ci_test=`echo $1`

results_file=$2

echo -e "\n======================================================================"
Expand All @@ -23,7 +22,7 @@ ci_results="CI/out/$ci_test.out"

echo "results $ci_results" >> $ci_results
SECONDS=0
if /bin/bash CI/tests/$ci_test.sh >> $ci_results 2>&1
if /bin/bash CI/tests/$ci_test.sh >> $ci_results
then
# if the test passes update the results and complete
duration=$SECONDS
Expand Down
11 changes: 11 additions & 0 deletions CI/scenarios/arcaflow/cpu-hog/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
deployer:
connection: {}
type: kubernetes
log:
level: debug
logged_outputs:
error:
level: error
success:
level: debug
14 changes: 14 additions & 0 deletions CI/scenarios/arcaflow/cpu-hog/input.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
input_list:
- cpu_count: 1
cpu_load_percentage: 80
cpu_method: all
duration: 30s
node_selector: {}
# node selector example
# node_selector:
# kubernetes.io/hostname: master
kubeconfig: ""
namespace: default

# duplicate this section to run simultaneous stressors in the same run

94 changes: 94 additions & 0 deletions CI/scenarios/arcaflow/cpu-hog/sub-workflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
version: v0.1.0
input:
root: RootObject
objects:
RootObject:
id: input_item
properties:
kubeconfig:
display:
description: The complete kubeconfig file as a string
name: Kubeconfig file contents
type:
type_id: string
required: true
namespace:
display:
description: The namespace where the container will be deployed
name: Namespace
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
cpu_count:
display:
description: Number of CPU cores to be used (0 means all)
name: number of CPUs
type:
type_id: integer
required: true
cpu_method:
display:
description: CPU stress method
name: fine grained control of which cpu stressors to use (ackermann, cfloat etc.)
type:
type_id: string
required: true
cpu_load_percentage:
display:
description: load CPU by percentage
name: CPU load
type:
type_id: integer
required: true

steps:
kubeconfig:
plugin: quay.io/arcalot/arcaflow-plugin-kubeconfig:0.2.0
input:
kubeconfig: !expr $.input.kubeconfig
stressng:
plugin: quay.io/arcalot/arcaflow-plugin-stressng:0.5.0
step: workload
input:
cleanup: "true"
StressNGParams:
timeout: !expr $.input.duration
stressors:
- stressor: cpu
cpu_count: !expr $.input.cpu_count
cpu_method: !expr $.input.cpu_method
cpu_load: !expr $.input.cpu_load_percentage
deploy:
type: kubernetes
connection: !expr $.steps.kubeconfig.outputs.success.connection
pod:
metadata:
namespace: !expr $.input.namespace
labels:
arcaflow: stressng
spec:
nodeSelector: !expr $.input.node_selector
pluginContainer:
imagePullPolicy: Always
outputs:
success:
stressng: !expr $.steps.stressng.outputs.success

77 changes: 77 additions & 0 deletions CI/scenarios/arcaflow/cpu-hog/workflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
version: v0.1.0
input:
root: RootObject
objects:
RootObject:
id: RootObject
properties:
input_list:
type:
type_id: list
items:
id: input_item
type_id: object
properties:
kubeconfig:
display:
description: The complete kubeconfig file as a string
name: Kubeconfig file contents
type:
type_id: string
required: true
namespace:
display:
description: The namespace where the container will be deployed
name: Namespace
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
cpu_count:
display:
description: Number of CPU cores to be used (0 means all)
name: number of CPUs
type:
type_id: integer
required: true
cpu_method:
display:
description: CPU stress method
name: fine grained control of which cpu stressors to use (ackermann, cfloat etc.)
type:
type_id: string
required: true
cpu_load_percentage:
display:
description: load CPU by percentage
name: CPU load
type:
type_id: integer
required: true
steps:
workload_loop:
kind: foreach
items: !expr $.input.input_list
workflow: sub-workflow.yaml
parallelism: 1000
outputs:
success:
workloads: !expr $.steps.workload_loop.outputs.success.data

10 changes: 10 additions & 0 deletions CI/scenarios/arcaflow/io-hog/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
deployer:
connection: {}
type: kubernetes
log:
level: debug
logged_outputs:
error:
level: error
success:
level: debug
13 changes: 13 additions & 0 deletions CI/scenarios/arcaflow/io-hog/input.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
input_list:
- duration: 30s
io_block_size: 1m
io_workers: 1
io_write_bytes: 10m
kubeconfig: ''
namespace: default
node_selector: {}
target_pod_folder: /hog-data
target_pod_volume:
hostPath:
path: /tmp
name: node-volume
Loading

0 comments on commit 30a1810

Please sign in to comment.