mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
integration test clientset share connection for custom transports
This commit is contained in:
parent
909a1738fd
commit
3ca2bb4443
@ -23,12 +23,14 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"path"
|
||||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@ -2205,6 +2207,65 @@ func expectPartialObjectMetaV1EventsProtobuf(t *testing.T, r io.Reader, values .
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientsetShareTransport(t *testing.T) {
|
||||
var counter int
|
||||
var mu sync.Mutex
|
||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||
defer server.TearDownFn()
|
||||
|
||||
dialFn := func(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
mu.Lock()
|
||||
counter++
|
||||
mu.Unlock()
|
||||
return (&net.Dialer{}).DialContext(ctx, network, address)
|
||||
}
|
||||
server.ClientConfig.Dial = dialFn
|
||||
client := clientset.NewForConfigOrDie(server.ClientConfig)
|
||||
// create test namespace
|
||||
_, err := client.CoreV1().Namespaces().Create(context.TODO(), &v1.Namespace{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-creation",
|
||||
},
|
||||
}, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create test ns: %v", err)
|
||||
}
|
||||
// List different objects
|
||||
result := client.CoreV1().RESTClient().Get().AbsPath("/healthz").Do(context.TODO())
|
||||
_, err = result.Raw()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _, err = client.Discovery().ServerGroupsAndResources()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
n, err := client.CoreV1().Namespaces().List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("Listed %d namespaces on the cluster", len(n.Items))
|
||||
p, err := client.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("Listed %d pods on the cluster", len(p.Items))
|
||||
e, err := client.DiscoveryV1().EndpointSlices("").List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("Listed %d endpoint slices on the cluster", len(e.Items))
|
||||
d, err := client.AppsV1().Deployments("").List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("Listed %d deployments on the cluster", len(d.Items))
|
||||
|
||||
if counter != 1 {
|
||||
t.Fatalf("expected only one connection, created %d connections", counter)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDedupOwnerReferences(t *testing.T) {
|
||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||
defer server.TearDownFn()
|
||||
|
Loading…
Reference in New Issue
Block a user