Skip to content
Permalink
Browse files

Allow relaxing deleted pods checking in RC runner

There is strong probabilty that some pods will be deleted when
we are bombarding cluster with high volume of pods. We do that in
Cluster Autoscaler scalability tests and we want to relax check there.
  • Loading branch information
losipiuk committed Aug 27, 2019
1 parent ebd8f9c commit 7d1399cf92f8a83c35a32dba3e2f595e78ef845f
Showing with 8 additions and 3 deletions.
  1. +8 −3 test/utils/runners.go
@@ -160,6 +160,9 @@ type RCConfig struct {
// Maximum allowable container failures. If exceeded, RunRC returns an error.
// Defaults to replicas*0.1 if unspecified.
MaxContainerFailures *int
// Maximum allowed pod deletions count. If exceeded, RunRC returns an error.
// Defaults to 0.
MaxAllowPodDeletions int

// If set to false starting RC will print progress, otherwise only errors will be printed.
Silent bool
@@ -787,6 +790,7 @@ func (config *RCConfig) start() error {
oldPods := make([]*v1.Pod, 0)
oldRunning := 0
lastChange := time.Now()
podDeletionsCount := 0
for oldRunning != config.Replicas {
time.Sleep(interval)

@@ -817,9 +821,10 @@ func (config *RCConfig) start() error {

diff := Diff(oldPods, pods)
deletedPods := diff.DeletedPods()
if len(deletedPods) != 0 {
// There are some pods that have disappeared.
err := fmt.Errorf("%d pods disappeared for %s: %v", len(deletedPods), config.Name, strings.Join(deletedPods, ", "))
podDeletionsCount += len(deletedPods)
if podDeletionsCount > config.MaxAllowPodDeletions {
// Number of pods which dissapeared is over threshold
err := fmt.Errorf("%d pods disappeared for %s: %v", podDeletionsCount, config.Name, strings.Join(deletedPods, ", "))
config.RCConfigLog(err.Error())
config.RCConfigLog(diff.String(sets.NewString()))
return err

0 comments on commit 7d1399c

Please sign in to comment.
You can’t perform that action at this time.