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"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"path"
|
"path"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"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) {
|
func TestDedupOwnerReferences(t *testing.T) {
|
||||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
defer server.TearDownFn()
|
defer server.TearDownFn()
|
||||||
|
Loading…
Reference in New Issue
Block a user