krkn-chaos / krkn

Chaos and resiliency testing tool for Kubernetes with a focus on improving performance under failure conditions. A CNCF sandbox project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Replace powerfulseal

opened this issue · comments

Currently, we are using powerfulseal, but it is blocking upgrading the Kubernetes client from v18. (see powerfulseal/powerfulseal#356 and #262)

We need to remove powerfulseal and create a new pod scenario functionality. The configuration file should look as follows:

@chaitanyaenr @paigerube14 please provide at least 3 sample configurations below for the functionality.

pod_scenarios:
  - name: "delete etcd pods"
     namespace: "openshift-etcd"
     label_selector: "k8s-app=etcd" <optional>
     kill: 1 
    checkPodCount: <optional>
        count: 3 
        timeout: 180
  - name: "delete openshift pods"
     namespace: "openshift-.*"
     kill: 3
     <will use a pre and post action script to validate pods in that regex namespace got properly re-running>

Think we can assume we want to kill only pods that are in a Running state, if we can add that to the validation of pods that are returned for the list to kill

Maybe we should allow users to specify the number of iterations and wait time between each iteration and also allow users to define namespace using regex in which case the label selector can be ignored and Krkn randomly picks and kills the pods. Thoughts?

pod_scenarios:
  - name: "delete etcd pods"
     namespace: "openshift-etcd" ( should support regex )
     label_selector: "k8s-app=etcd" <optional>
     kill: 1
     runs: 1
     wait_time: 30s ( wait time between each of the iteration if runs > 1 )
     checkPodCount: <optional>
         count: 3 
         timeout: 180
  - name: "delete openshift pods"
     namespace: "openshift-.*"
     kill: 3
     runs: 2
     <will use a pre and post action script to validate pods in that regex namespace got properly re-running>

@chaitanyaenr in that case what is the difference between runs and just setting the number of kills? I feel like thats the same functionality

@paigerube14 so basically we can use the kills setting to define the number of pods to kill and runs setting to define the number of times to kill. Maybe we should rename kills to pod_kill_count and runs to iterations? Thoughts?

@chaitanyaenr I have a plan to make this a bit more generic, so I'll change the config file somewhat if that's ok.