openshift / svt

Apache License 2.0
124 stars 105 forks source link

[reliability][enhance]add customized task #676

Closed qiliRedHat closed 3 years ago

qiliRedHat commented 3 years ago

https://issues.redhat.com/browse/OCPQE-4292 Reliability Test Tool Enhancement Plan

What Add customized task type.

Why In the current design the tasks types are fixed/hard coded and limited, for example, project creation/deletion/modify, app creation/build/scale up/scale/down/visit. Most of them belongs to developers and end users personas. However, there are more operations can be added to reliability tests. To simulate the real world's cluster operation, we need to add more task types. It's flexible to have customized type to allow user to specify any oc commandsor file contains oc commands as a task.

How Add a new task type for customized oc command or file contains oc commands. example of the config file piece:

  tasks:
    minute:
      # Specify an oc command to execute as 'action'.
      # Don't use command that could return '1' as expected, e.g. oc get pods -A | egrep -v "Running|Completed".
      # Use oc get pods -A | awk '$4!="Running" && $4!="Completed"' instead.
      - action: oc whoami
        resource: customize
        persona: developer
        concurrency: 5
      # Specify a file to execute as 'action'.
      # File contains lines of oc command to execute. Don't use command that could return '1' as expected.
      - action: <path to file>
        resource: customize
        persona: admin
        concurrency: 1

example of the action file

oc get clusterversion
oc get co | awk '$3=="False" || $4=='True' || $5=="True"'
oc get pods -A | awk '$4!="Running" && $4!="Completed" && $4!="STATUS"'

Exit Criteria User can customize any oc commands and run concurrently with multiple users.

qiliRedHat commented 3 years ago

@mffiedler PTAL @wabouhamad @paigerube14

paigerube14 commented 3 years ago

LGTM, tested with action in the config and in a file, both worked as expected