Skip to content
This repository has been archived by the owner on Sep 19, 2024. It is now read-only.

Commit

Permalink
test: support random name k3d testing cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
Frank Mai authored and guangbochen committed Sep 25, 2020
1 parent b9b2408 commit b532903
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
12 changes: 6 additions & 6 deletions test/framework/envtest/cluster/provisioner_k3d.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ type K3d struct {

// Specify the name of cluster,
// configure in "K3S_CLUSTER_NAME" env,
// default is "edge".
ClusterName string `env:"name=K3S_CLUSTER_NAME,default=edge"`
// default is created randomly.
ClusterName string `env:"name=K3S_CLUSTER_NAME,fuzzString"`

// Specify the amount of control-plane nodes,
// configure in "K3S_CONTROL_PLANES" env,
Expand Down Expand Up @@ -200,10 +200,10 @@ func renderK3sClusterConfiguration(config *K3d) (*types.Cluster, error) {
Image: config.Image,
}
if i == 0 {
node.Args = []string{fmt.Sprintf("--node-name=%s-control-plane", config.ClusterName)}
node.Args = []string{"--node-name=edge-control-plane"}
node.Ports = []string{fmt.Sprintf("%d:80", config.ExportIngressHTTPPort), fmt.Sprintf("%d:443", config.ExportIngressHTTPSPort)}
} else {
node.Args = []string{fmt.Sprintf("--node-name=%s-control-plane%d", config.ClusterName, i)}
node.Args = []string{fmt.Sprintf("--node-name=edge-control-plane%d", i)}
}
cls.Nodes = append(cls.Nodes, node)
}
Expand All @@ -214,9 +214,9 @@ func renderK3sClusterConfiguration(config *K3d) (*types.Cluster, error) {
Image: config.Image,
}
if i == 0 {
node.Args = []string{fmt.Sprintf("--node-name=%s-worker", config.ClusterName)}
node.Args = []string{"--node-name=edge-worker"}
} else {
node.Args = []string{fmt.Sprintf("--node-name=%s-worker%d", config.ClusterName, i)}
node.Args = []string{fmt.Sprintf("--node-name=edge-worker%d", i)}
}
cls.Nodes = append(cls.Nodes, node)
}
Expand Down
56 changes: 28 additions & 28 deletions test/util/node/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,54 +7,34 @@ import (
"fmt"
"math/rand"
"strings"
"time"

"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/rancher/octopus/test/util/fuzz"
)

func GetValidWorker(ctx context.Context, k8sCli client.Client) (string, error) {
var list = corev1.NodeList{}
if err := k8sCli.List(ctx, &list); err != nil {
var workers, err = getWorkerSet(ctx, k8sCli)
if err != nil {
return "", err
}

var workers []string
for _, node := range list.Items {
if IsOnlyWorker(&node) {
workers = append(workers, node.Name)
}
}

if len(workers) == 0 {
return "", errors.New("no workers")
}

var idx = rand.Intn(len(workers))
var name = workers[idx]
var idx = rand.Intn(workers.Len())
var name = workers.UnsortedList()[idx]
return name, nil
}

func GetInvalidWorker(ctx context.Context, k8sCli client.Client) (string, error) {
var list = corev1.NodeList{}
if err := k8sCli.List(ctx, &list); err != nil {
var workers, err = getWorkerSet(ctx, k8sCli)
if err != nil {
return "", err
}

var workers = sets.NewString()
for _, node := range list.Items {
if IsOnlyWorker(&node) {
workers.Insert(node.Name)
}
}

if workers.Len() == 0 {
return "", errors.New("no workers")
}

var invalidWorker string
for {
invalidWorker = fmt.Sprintf("i-%s", strings.ToLower(fuzz.String(6)))
Expand All @@ -64,3 +44,23 @@ func GetInvalidWorker(ctx context.Context, k8sCli client.Client) (string, error)
}
return invalidWorker, nil
}

func getWorkerSet(ctx context.Context, k8sCli client.Client) (sets.String, error) {
var workers = sets.NewString()
var err = wait.Poll(3*time.Second, 30*time.Second, func() (bool, error) {
var list = corev1.NodeList{}
if err := k8sCli.List(ctx, &list); err != nil {
return false, err
}
for _, node := range list.Items {
if IsOnlyWorker(&node) {
workers.Insert(node.Name)
}
}
if workers.Len() == 0 {
return false, errors.New("no workers")
}
return true, nil
})
return workers, err
}

0 comments on commit b532903

Please sign in to comment.