mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Clean shutdown of cronjob integration tests
This commit is contained in:
parent
2893ad3e5b
commit
8ca1ec2b60
@ -30,29 +30,30 @@ import (
|
|||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
clientbatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1"
|
clientbatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/pkg/controller/cronjob"
|
"k8s.io/kubernetes/pkg/controller/cronjob"
|
||||||
"k8s.io/kubernetes/pkg/controller/job"
|
"k8s.io/kubernetes/pkg/controller/job"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
)
|
)
|
||||||
|
|
||||||
func setup(t *testing.T) (framework.CloseFunc, *cronjob.ControllerV2, *job.Controller, informers.SharedInformerFactory, clientset.Interface, restclient.Config) {
|
func setup(t *testing.T) (kubeapiservertesting.TearDownFunc, *cronjob.ControllerV2, *job.Controller, informers.SharedInformerFactory, clientset.Interface) {
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
|
||||||
|
|
||||||
config := restclient.Config{Host: server.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 creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
resyncPeriod := 12 * time.Hour
|
resyncPeriod := 12 * time.Hour
|
||||||
informerSet := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "cronjob-informers")), resyncPeriod)
|
informerSet := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(config, "cronjob-informers")), resyncPeriod)
|
||||||
cjc, err := cronjob.NewControllerV2(informerSet.Batch().V1().Jobs(), informerSet.Batch().V1().CronJobs(), clientSet)
|
cjc, err := cronjob.NewControllerV2(informerSet.Batch().V1().Jobs(), informerSet.Batch().V1().CronJobs(), clientSet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating CronJob controller: %v", err)
|
t.Fatalf("Error creating CronJob controller: %v", err)
|
||||||
}
|
}
|
||||||
jc := job.NewController(informerSet.Core().V1().Pods(), informerSet.Batch().V1().Jobs(), clientSet)
|
jc := job.NewController(informerSet.Core().V1().Pods(), informerSet.Batch().V1().Jobs(), clientSet)
|
||||||
|
|
||||||
return closeFn, cjc, jc, informerSet, clientSet, config
|
return server.TearDownFn, cjc, jc, informerSet, clientSet
|
||||||
}
|
}
|
||||||
|
|
||||||
func newCronJob(name, namespace, schedule string) *batchv1.CronJob {
|
func newCronJob(name, namespace, schedule string) *batchv1.CronJob {
|
||||||
@ -143,14 +144,14 @@ func validateJobAndPod(t *testing.T, clientSet clientset.Interface, namespace st
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCronJobLaunchesPodAndCleansUp(t *testing.T) {
|
func TestCronJobLaunchesPodAndCleansUp(t *testing.T) {
|
||||||
closeFn, cjc, jc, informerSet, clientSet, _ := setup(t)
|
closeFn, cjc, jc, informerSet, clientSet := setup(t)
|
||||||
defer closeFn()
|
defer closeFn()
|
||||||
|
|
||||||
cronJobName := "foo"
|
cronJobName := "foo"
|
||||||
namespaceName := "simple-cronjob-test"
|
namespaceName := "simple-cronjob-test"
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace(namespaceName, t)
|
ns := framework.CreateNamespaceOrDie(clientSet, namespaceName, t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(clientSet, ns, t)
|
||||||
|
|
||||||
cjClient := clientSet.BatchV1().CronJobs(ns.Name)
|
cjClient := clientSet.BatchV1().CronJobs(ns.Name)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user