const ( // How long to wait for a cronjob cronJobTimeout = 5 * time.Minute ) var ( CronJobGroupVersionResource = schema.GroupVersionResource{Group: batch.GroupName, Version: "v2alpha1", Resource: "cronjobs"} ScheduledJobGroupVersionResource = schema.GroupVersionResource{Group: batch.GroupName, Version: "v2alpha1", Resource: "scheduledjobs"} BatchV2Alpha1GroupVersion = schema.GroupVersion{Group: batch.GroupName, Version: "v2alpha1"} ) var _ = framework.KubeDescribe("CronJob", func() { f := framework.NewDefaultGroupVersionFramework("cronjob", BatchV2Alpha1GroupVersion) BeforeEach(func() { framework.SkipIfMissingResource(f.ClientPool, CronJobGroupVersionResource, f.Namespace.Name) }) // multiple jobs running at once It("should schedule multiple jobs concurrently", func() { By("Creating a cronjob") cronJob := newTestCronJob("concurrent", "*/1 * * * ?", batch.AllowConcurrent, true) cronJob, err := createCronJob(f.ClientSet, f.Namespace.Name, cronJob) Expect(err).NotTo(HaveOccurred()) By("Ensuring more than one job is running at a time") err = waitForActiveJobs(f.ClientSet, f.Namespace.Name, cronJob.Name, 2) Expect(err).NotTo(HaveOccurred()) By("Ensuring at least two running jobs exists by listing jobs explicitly") jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(v1.ListOptions{})
var ( StatefulSetGroupVersionResource = schema.GroupVersionResource{Group: apps.GroupName, Version: "v1beta1", Resource: "statefulsets"} ) // Time: 25m, slow by design. // GCE Quota requirements: 3 pds, one per pet manifest declared above. // GCE Api requirements: nodes and master need storage r/w permissions. var _ = framework.KubeDescribe("StatefulSet [Slow]", func() { f := framework.NewDefaultFramework("statefulset") var ns string var c clientset.Interface BeforeEach(func() { c = f.ClientSet ns = f.Namespace.Name framework.SkipIfMissingResource(f.ClientPool, StatefulSetGroupVersionResource, f.Namespace.Name) }) framework.KubeDescribe("Basic StatefulSet functionality", func() { psName := "pet" labels := map[string]string{ "foo": "bar", "baz": "blah", } headlessSvcName := "test" var petMounts, podMounts []v1.VolumeMount var ps *apps.StatefulSet BeforeEach(func() { petMounts = []v1.VolumeMount{{Name: "datadir", MountPath: "/data/"}} podMounts = []v1.VolumeMount{{Name: "home", MountPath: "/home"}}
// GCE Api requirements: nodes and master need storage r/w permissions. var _ = framework.KubeDescribe("PetSet [Slow] [Feature:PetSet]", func() { options := framework.FrameworkOptions{ GroupVersion: &unversioned.GroupVersion{Group: apps.GroupName, Version: "v1alpha1"}, } f := framework.NewFramework("petset", options, nil) var ns string var c *client.Client BeforeEach(func() { // PetSet is in alpha, so it's disabled on some platforms. We skip this // test if a resource get fails on non-GCE platforms. // In theory, tests that restart pets should pass on any platform with a // dynamic volume provisioner. if !framework.ProviderIs("gce") { framework.SkipIfMissingResource(f.ClientPool, unversioned.GroupVersionResource{Group: apps.GroupName, Version: "v1alpha1", Resource: "petsets"}, f.Namespace.Name) } c = f.Client ns = f.Namespace.Name }) framework.KubeDescribe("Basic PetSet functionality", func() { psName := "pet" labels := map[string]string{ "foo": "bar", "baz": "blah", } headlessSvcName := "test" BeforeEach(func() {
const ( // How long to wait for a scheduledjob scheduledJobTimeout = 5 * time.Minute ) var _ = framework.KubeDescribe("ScheduledJob", func() { options := framework.FrameworkOptions{ ClientQPS: 20, ClientBurst: 50, GroupVersion: &unversioned.GroupVersion{Group: batch.GroupName, Version: "v2alpha1"}, } f := framework.NewFramework("scheduledjob", options, nil) BeforeEach(func() { framework.SkipIfMissingResource(f.ClientPool, unversioned.GroupVersionResource{Group: batch.GroupName, Version: "v2alpha1", Resource: "scheduledjobs"}, f.Namespace.Name) }) // multiple jobs running at once It("should schedule multiple jobs concurrently", func() { By("Creating a scheduledjob") scheduledJob := newTestScheduledJob("concurrent", "*/1 * * * ?", batch.AllowConcurrent, true) scheduledJob, err := createScheduledJob(f.Client, f.Namespace.Name, scheduledJob) Expect(err).NotTo(HaveOccurred()) By("Ensuring more than one job is running at a time") err = waitForActiveJobs(f.Client, f.Namespace.Name, scheduledJob.Name, 2) Expect(err).NotTo(HaveOccurred()) By("Ensuring at least two running jobs exists by listing jobs explicitly") jobs, err := f.Client.Batch().Jobs(f.Namespace.Name).List(api.ListOptions{})