Support custom test configurations

This commit is contained in:
Satyadeep Musuvathy
2018-03-29 15:59:56 -07:00
parent 7a946e6fb0
commit 86aa5ae9c8
7 changed files with 114 additions and 11 deletions

View File

@@ -17,8 +17,11 @@ limitations under the License.
package ipamperf
import (
"time"
"github.com/golang/glog"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes"
@@ -26,6 +29,11 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
)
const (
maxCreateRetries = 10
retryDelay = 10 * time.Second
)
var (
baseNodeTemplate = &v1.Node{
ObjectMeta: metav1.ObjectMeta{
@@ -71,7 +79,17 @@ func createNodes(apiURL string, config *Config) error {
})
glog.Infof("Creating %d nodes", config.NumNodes)
for i := 0; i < config.NumNodes; i++ {
if _, err := clientSet.CoreV1().Nodes().Create(baseNodeTemplate); err != nil {
var err error
for j := 0; j < maxCreateRetries; j++ {
if _, err = clientSet.CoreV1().Nodes().Create(baseNodeTemplate); err != nil && errors.IsServerTimeout(err) {
glog.Infof("Server timeout creating nodes, retrying after %v", retryDelay)
time.Sleep(retryDelay)
continue
}
break
}
if err != nil {
glog.Errorf("Error creating nodes: %v", err)
return err
}
}