mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Clean shutdown of evictions integration tests
This commit is contained in:
parent
c0149f78d7
commit
2893ad3e5b
@ -20,7 +20,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http/httptest"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -48,6 +47,7 @@ import (
|
|||||||
"k8s.io/client-go/restmapper"
|
"k8s.io/client-go/restmapper"
|
||||||
"k8s.io/client-go/scale"
|
"k8s.io/client-go/scale"
|
||||||
"k8s.io/client-go/tools/cache"
|
"k8s.io/client-go/tools/cache"
|
||||||
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/pkg/controller/disruption"
|
"k8s.io/kubernetes/pkg/controller/disruption"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
)
|
)
|
||||||
@ -61,23 +61,17 @@ const (
|
|||||||
func TestConcurrentEvictionRequests(t *testing.T) {
|
func TestConcurrentEvictionRequests(t *testing.T) {
|
||||||
podNameFormat := "test-pod-%d"
|
podNameFormat := "test-pod-%d"
|
||||||
|
|
||||||
s, closeFn, rm, informers, _ := rmSetup(t)
|
closeFn, rm, informers, _, clientSet := rmSetup(t)
|
||||||
defer closeFn()
|
defer closeFn()
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("concurrent-eviction-requests", t)
|
ns := framework.CreateNamespaceOrDie(clientSet, "concurrent-eviction-requests", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(clientSet, ns, t)
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
informers.Start(ctx.Done())
|
informers.Start(ctx.Done())
|
||||||
go rm.Run(ctx)
|
go rm.Run(ctx)
|
||||||
|
|
||||||
config := restclient.Config{Host: s.URL}
|
|
||||||
clientSet, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Failed to create clientset: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var gracePeriodSeconds int64 = 30
|
var gracePeriodSeconds int64 = 30
|
||||||
deleteOption := metav1.DeleteOptions{
|
deleteOption := metav1.DeleteOptions{
|
||||||
GracePeriodSeconds: &gracePeriodSeconds,
|
GracePeriodSeconds: &gracePeriodSeconds,
|
||||||
@ -180,23 +174,17 @@ func TestConcurrentEvictionRequests(t *testing.T) {
|
|||||||
|
|
||||||
// TestTerminalPodEviction ensures that PDB is not checked for terminal pods.
|
// TestTerminalPodEviction ensures that PDB is not checked for terminal pods.
|
||||||
func TestTerminalPodEviction(t *testing.T) {
|
func TestTerminalPodEviction(t *testing.T) {
|
||||||
s, closeFn, rm, informers, _ := rmSetup(t)
|
closeFn, rm, informers, _, clientSet := rmSetup(t)
|
||||||
defer closeFn()
|
defer closeFn()
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("terminalpod-eviction", t)
|
ns := framework.CreateNamespaceOrDie(clientSet, "terminalpod-eviction", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(clientSet, ns, t)
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
informers.Start(ctx.Done())
|
informers.Start(ctx.Done())
|
||||||
go rm.Run(ctx)
|
go rm.Run(ctx)
|
||||||
|
|
||||||
config := restclient.Config{Host: s.URL}
|
|
||||||
clientSet, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Failed to create clientset: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var gracePeriodSeconds int64 = 30
|
var gracePeriodSeconds int64 = 30
|
||||||
deleteOption := metav1.DeleteOptions{
|
deleteOption := metav1.DeleteOptions{
|
||||||
GracePeriodSeconds: &gracePeriodSeconds,
|
GracePeriodSeconds: &gracePeriodSeconds,
|
||||||
@ -259,7 +247,7 @@ func TestTerminalPodEviction(t *testing.T) {
|
|||||||
|
|
||||||
// TestEvictionVersions ensures the eviction endpoint accepts and returns the correct API versions
|
// TestEvictionVersions ensures the eviction endpoint accepts and returns the correct API versions
|
||||||
func TestEvictionVersions(t *testing.T) {
|
func TestEvictionVersions(t *testing.T) {
|
||||||
s, closeFn, rm, informers, clientSet := rmSetup(t)
|
closeFn, rm, informers, config, clientSet := rmSetup(t)
|
||||||
defer closeFn()
|
defer closeFn()
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
@ -267,8 +255,6 @@ func TestEvictionVersions(t *testing.T) {
|
|||||||
informers.Start(ctx.Done())
|
informers.Start(ctx.Done())
|
||||||
go rm.Run(ctx)
|
go rm.Run(ctx)
|
||||||
|
|
||||||
config := restclient.Config{Host: s.URL}
|
|
||||||
|
|
||||||
ns := "default"
|
ns := "default"
|
||||||
subresource := "eviction"
|
subresource := "eviction"
|
||||||
pod := newPod("test")
|
pod := newPod("test")
|
||||||
@ -276,7 +262,7 @@ func TestEvictionVersions(t *testing.T) {
|
|||||||
t.Errorf("Failed to create pod: %v", err)
|
t.Errorf("Failed to create pod: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
dynamicClient, err := dynamic.NewForConfig(&config)
|
dynamicClient, err := dynamic.NewForConfig(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to create clientset: %v", err)
|
t.Fatalf("Failed to create clientset: %v", err)
|
||||||
}
|
}
|
||||||
@ -420,25 +406,25 @@ func newV1Eviction(ns, evictionName string, deleteOption metav1.DeleteOptions) *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func rmSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *disruption.DisruptionController, informers.SharedInformerFactory, clientset.Interface) {
|
func rmSetup(t *testing.T) (kubeapiservertesting.TearDownFunc, *disruption.DisruptionController, informers.SharedInformerFactory, *restclient.Config, clientset.Interface) {
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
|
||||||
_, s, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
|
||||||
|
|
||||||
config := restclient.Config{Host: s.URL}
|
config := restclient.CopyConfig(server.ClientConfig)
|
||||||
clientSet, err := clientset.NewForConfig(&config)
|
clientSet, err := clientset.NewForConfig(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error in create clientset: %v", err)
|
t.Fatalf("Error in create clientset: %v", err)
|
||||||
}
|
}
|
||||||
resyncPeriod := 12 * time.Hour
|
resyncPeriod := 12 * time.Hour
|
||||||
informers := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "pdb-informers")), resyncPeriod)
|
informers := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(config, "pdb-informers")), resyncPeriod)
|
||||||
|
|
||||||
client := clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "disruption-controller"))
|
client := clientset.NewForConfigOrDie(restclient.AddUserAgent(config, "disruption-controller"))
|
||||||
|
|
||||||
discoveryClient := cacheddiscovery.NewMemCacheClient(clientSet.Discovery())
|
discoveryClient := cacheddiscovery.NewMemCacheClient(clientSet.Discovery())
|
||||||
mapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient)
|
mapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient)
|
||||||
|
|
||||||
scaleKindResolver := scale.NewDiscoveryScaleKindResolver(client.Discovery())
|
scaleKindResolver := scale.NewDiscoveryScaleKindResolver(client.Discovery())
|
||||||
scaleClient, err := scale.NewForConfig(&config, mapper, dynamic.LegacyAPIPathResolverFunc, scaleKindResolver)
|
scaleClient, err := scale.NewForConfig(config, mapper, dynamic.LegacyAPIPathResolverFunc, scaleKindResolver)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error in create scaleClient: %v", err)
|
t.Fatalf("Error in create scaleClient: %v", err)
|
||||||
}
|
}
|
||||||
@ -455,7 +441,7 @@ func rmSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *disruption.D
|
|||||||
scaleClient,
|
scaleClient,
|
||||||
client.Discovery(),
|
client.Discovery(),
|
||||||
)
|
)
|
||||||
return s, closeFn, rm, informers, clientSet
|
return server.TearDownFn, rm, informers, config, clientSet
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait for the podInformer to observe the pods. Call this function before
|
// wait for the podInformer to observe the pods. Call this function before
|
||||||
|
Loading…
Reference in New Issue
Block a user