mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 11:13:48 +00:00
convert e2e tests
This commit is contained in:
parent
cd93032cc7
commit
cbbf319be6
@ -26,7 +26,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
release_1_4 "k8s.io/client-go/1.4/kubernetes"
|
staging "k8s.io/client-go/1.4/kubernetes"
|
||||||
"k8s.io/client-go/1.4/pkg/util/sets"
|
"k8s.io/client-go/1.4/pkg/util/sets"
|
||||||
clientreporestclient "k8s.io/client-go/1.4/rest"
|
clientreporestclient "k8s.io/client-go/1.4/rest"
|
||||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4"
|
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4"
|
||||||
@ -34,8 +34,7 @@ import (
|
|||||||
apierrs "k8s.io/kubernetes/pkg/api/errors"
|
apierrs "k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_2"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3"
|
|
||||||
"k8s.io/kubernetes/pkg/client/restclient"
|
"k8s.io/kubernetes/pkg/client/restclient"
|
||||||
"k8s.io/kubernetes/pkg/client/typed/dynamic"
|
"k8s.io/kubernetes/pkg/client/typed/dynamic"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
@ -60,9 +59,8 @@ type Framework struct {
|
|||||||
BaseName string
|
BaseName string
|
||||||
|
|
||||||
Client *client.Client
|
Client *client.Client
|
||||||
Clientset_1_2 *release_1_2.Clientset
|
Clientset_1_5 *release_1_5.Clientset
|
||||||
Clientset_1_3 *release_1_3.Clientset
|
StagingClient *staging.Clientset
|
||||||
StagingClient *release_1_4.Clientset
|
|
||||||
ClientPool dynamic.ClientPool
|
ClientPool dynamic.ClientPool
|
||||||
|
|
||||||
Namespace *api.Namespace // Every test has at least one namespace
|
Namespace *api.Namespace // Every test has at least one namespace
|
||||||
@ -188,11 +186,10 @@ func (f *Framework) BeforeEach() {
|
|||||||
c, err := loadClientFromConfig(config)
|
c, err := loadClientFromConfig(config)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
f.Client = c
|
f.Client = c
|
||||||
f.Clientset_1_2, err = release_1_2.NewForConfig(config)
|
f.Clientset_1_5, err = release_1_5.NewForConfig(config)
|
||||||
f.Clientset_1_3, err = release_1_3.NewForConfig(config)
|
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
clientRepoConfig := getClientRepoConfig(config)
|
clientRepoConfig := getClientRepoConfig(config)
|
||||||
f.StagingClient, err = release_1_4.NewForConfig(clientRepoConfig)
|
f.StagingClient, err = staging.NewForConfig(clientRepoConfig)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
f.ClientPool = dynamic.NewClientPool(config, dynamic.LegacyAPIPathResolverFunc)
|
f.ClientPool = dynamic.NewClientPool(config, dynamic.LegacyAPIPathResolverFunc)
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3"
|
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||||
"k8s.io/kubernetes/pkg/metrics"
|
"k8s.io/kubernetes/pkg/metrics"
|
||||||
"k8s.io/kubernetes/pkg/util/wait"
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
@ -118,7 +118,7 @@ func gatherMetrics(f *framework.Framework) {
|
|||||||
var _ = framework.KubeDescribe("Garbage collector", func() {
|
var _ = framework.KubeDescribe("Garbage collector", func() {
|
||||||
f := framework.NewDefaultFramework("gc")
|
f := framework.NewDefaultFramework("gc")
|
||||||
It("[Feature:GarbageCollector] should delete pods created by rc when not orphaning", func() {
|
It("[Feature:GarbageCollector] should delete pods created by rc when not orphaning", func() {
|
||||||
clientSet := f.Clientset_1_3
|
clientSet := f.Clientset_1_5
|
||||||
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
||||||
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
||||||
rcName := "simpletest.rc"
|
rcName := "simpletest.rc"
|
||||||
@ -169,7 +169,7 @@ var _ = framework.KubeDescribe("Garbage collector", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("[Feature:GarbageCollector] should orphan pods created by rc if delete options say so", func() {
|
It("[Feature:GarbageCollector] should orphan pods created by rc if delete options say so", func() {
|
||||||
clientSet := f.Clientset_1_3
|
clientSet := f.Clientset_1_5
|
||||||
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
||||||
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
||||||
rcName := "simpletest.rc"
|
rcName := "simpletest.rc"
|
||||||
@ -231,7 +231,7 @@ var _ = framework.KubeDescribe("Garbage collector", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("[Feature:GarbageCollector] should orphan pods created by rc if deleteOptions.OrphanDependents is nil", func() {
|
It("[Feature:GarbageCollector] should orphan pods created by rc if deleteOptions.OrphanDependents is nil", func() {
|
||||||
clientSet := f.Clientset_1_3
|
clientSet := f.Clientset_1_5
|
||||||
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name)
|
||||||
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
podClient := clientSet.Core().Pods(f.Namespace.Name)
|
||||||
rcName := "simpletest.rc"
|
rcName := "simpletest.rc"
|
||||||
|
@ -119,84 +119,10 @@ func observeObjectDeletion(w watch.Interface) (obj runtime.Object) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ = framework.KubeDescribe("Generated release_1_2 clientset", func() {
|
var _ = framework.KubeDescribe("Generated release_1_5 clientset", func() {
|
||||||
f := framework.NewDefaultFramework("clientset")
|
f := framework.NewDefaultFramework("clientset")
|
||||||
It("should create pods, delete pods, watch pods", func() {
|
It("should create pods, delete pods, watch pods", func() {
|
||||||
podClient := f.Clientset_1_2.Core().Pods(f.Namespace.Name)
|
podClient := f.Clientset_1_5.Core().Pods(f.Namespace.Name)
|
||||||
By("constructing the pod")
|
|
||||||
name := "pod" + string(uuid.NewUUID())
|
|
||||||
value := strconv.Itoa(time.Now().Nanosecond())
|
|
||||||
podCopy := testingPod(name, value)
|
|
||||||
pod := &podCopy
|
|
||||||
By("setting up watch")
|
|
||||||
selector := labels.SelectorFromSet(labels.Set(map[string]string{"time": value}))
|
|
||||||
options := api.ListOptions{LabelSelector: selector}
|
|
||||||
pods, err := podClient.List(options)
|
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to query for pods: %v", err)
|
|
||||||
}
|
|
||||||
Expect(len(pods.Items)).To(Equal(0))
|
|
||||||
options = api.ListOptions{
|
|
||||||
LabelSelector: selector,
|
|
||||||
ResourceVersion: pods.ListMeta.ResourceVersion,
|
|
||||||
}
|
|
||||||
w, err := podClient.Watch(options)
|
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to set up watch: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
By("creating the pod")
|
|
||||||
pod, err = podClient.Create(pod)
|
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to create pod: %v", err)
|
|
||||||
}
|
|
||||||
// We call defer here in case there is a problem with
|
|
||||||
// the test so we can ensure that we clean up after
|
|
||||||
// ourselves
|
|
||||||
defer podClient.Delete(pod.Name, api.NewDeleteOptions(0))
|
|
||||||
|
|
||||||
By("verifying the pod is in kubernetes")
|
|
||||||
options = api.ListOptions{
|
|
||||||
LabelSelector: selector,
|
|
||||||
ResourceVersion: pod.ResourceVersion,
|
|
||||||
}
|
|
||||||
pods, err = podClient.List(options)
|
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to query for pods: %v", err)
|
|
||||||
}
|
|
||||||
Expect(len(pods.Items)).To(Equal(1))
|
|
||||||
|
|
||||||
By("verifying pod creation was observed")
|
|
||||||
observePodCreation(w)
|
|
||||||
|
|
||||||
// We need to wait for the pod to be scheduled, otherwise the deletion
|
|
||||||
// will be carried out immediately rather than gracefully.
|
|
||||||
framework.ExpectNoError(f.WaitForPodRunning(pod.Name))
|
|
||||||
|
|
||||||
By("deleting the pod gracefully")
|
|
||||||
if err := podClient.Delete(pod.Name, api.NewDeleteOptions(30)); err != nil {
|
|
||||||
framework.Failf("Failed to delete pod: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
By("verifying pod deletion was observed")
|
|
||||||
obj := observeObjectDeletion(w)
|
|
||||||
lastPod := obj.(*api.Pod)
|
|
||||||
Expect(lastPod.DeletionTimestamp).ToNot(BeNil())
|
|
||||||
Expect(lastPod.Spec.TerminationGracePeriodSeconds).ToNot(BeZero())
|
|
||||||
|
|
||||||
options = api.ListOptions{LabelSelector: selector}
|
|
||||||
pods, err = podClient.List(options)
|
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to list pods to verify deletion: %v", err)
|
|
||||||
}
|
|
||||||
Expect(len(pods.Items)).To(Equal(0))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
var _ = framework.KubeDescribe("Generated release_1_3 clientset", func() {
|
|
||||||
f := framework.NewDefaultFramework("clientset")
|
|
||||||
It("should create pods, delete pods, watch pods", func() {
|
|
||||||
podClient := f.Clientset_1_3.Core().Pods(f.Namespace.Name)
|
|
||||||
By("constructing the pod")
|
By("constructing the pod")
|
||||||
name := "pod" + string(uuid.NewUUID())
|
name := "pod" + string(uuid.NewUUID())
|
||||||
value := strconv.Itoa(time.Now().Nanosecond())
|
value := strconv.Itoa(time.Now().Nanosecond())
|
||||||
|
Loading…
Reference in New Issue
Block a user