diff --git a/hack/jenkins/e2e.sh b/hack/jenkins/e2e.sh index ce3425051e0..2b78c5d098d 100755 --- a/hack/jenkins/e2e.sh +++ b/hack/jenkins/e2e.sh @@ -109,18 +109,24 @@ GCE_DEFAULT_SKIP_TESTS=( ) # Tests which cannot be run on GKE, e.g. because they require -# master ssh access or experimental api. +# master ssh access. GKE_REQUIRED_SKIP_TESTS=( "Nodes" "Etcd\sFailure" "MasterCerts" - "Daemon\sset" - "Deployment" "experimental\sresource\susage\stracking" # Expect --max-pods=100 "ServiceLoadBalancer" # issue: #16602 "Shell" ) +# Specialized tests which should be skipped by default for GKE. +GKE_DEFAULT_SKIP_TESTS=( + "Daemon\sset" + "Deployment" + "Jobs" + "${GKE_REQUIRED_SKIP_TESTS[@]}" + ) + # Tests which cannot be run on AWS. AWS_REQUIRED_SKIP_TESTS=( "experimental\sresource\susage\stracking" # Expect --max-pods=100 @@ -481,7 +487,7 @@ case ${JOB_NAME} in : ${PROJECT:="k8s-jkns-e2e-gke-prod"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -497,7 +503,7 @@ case ${JOB_NAME} in : ${PROJECT:="k8s-jkns-e2e-gke-staging"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -513,7 +519,7 @@ case ${JOB_NAME} in : ${PROJECT:="k8s-jkns-e2e-gke-test"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -529,7 +535,7 @@ case ${JOB_NAME} in : ${PROJECT:="k8s-jkns-e2e-gke-ci"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_SLOW_TESTS[@]:+${GCE_SLOW_TESTS[@]}} \ @@ -546,7 +552,7 @@ case ${JOB_NAME} in : ${PROJECT:="k8s-jkns-e2e-gke-ci-reboot"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${REBOOT_SKIP_TESTS[@]:+${REBOOT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_PARALLEL_SKIP_TESTS[@]:+${GCE_PARALLEL_SKIP_TESTS[@]}} \ @@ -563,8 +569,11 @@ case ${JOB_NAME} in : ${JENKINS_PUBLISHED_VERSION:="ci/latest-1.1"} : ${PROJECT:="k8s-jkns-e2e-gke-release-1-1"} : ${FAIL_ON_GCP_RESOURCE_LEAK:="true"} + # Note Daemon sets and Deployments are experimental features in 1.1, + # and are turned off in GKE. : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + "Daemon\sset|Deployment" \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_SLOW_TESTS[@]:+${GCE_SLOW_TESTS[@]}} \ @@ -623,7 +632,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -657,7 +666,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -677,7 +686,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_SLOW_TESTS[@]:+${GCE_SLOW_TESTS[@]}} \ @@ -738,7 +747,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -774,7 +783,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -792,7 +801,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_SLOW_TESTS[@]:+${GCE_SLOW_TESTS[@]}} \ @@ -853,7 +862,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -889,7 +898,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="false"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ )"} @@ -910,7 +919,7 @@ case ${JOB_NAME} in : ${E2E_TEST:="true"} : ${E2E_DOWN:="true"} : ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex_allow_empty \ - ${GKE_REQUIRED_SKIP_TESTS[@]:+${GKE_REQUIRED_SKIP_TESTS[@]}} \ + ${GKE_DEFAULT_SKIP_TESTS[@]:+${GKE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \ ${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \ ${GCE_SLOW_TESTS[@]:+${GCE_SLOW_TESTS[@]}} \ diff --git a/test/e2e/job.go b/test/e2e/job.go index 6b0d3e2aac6..e1a26142891 100644 --- a/test/e2e/job.go +++ b/test/e2e/job.go @@ -40,7 +40,6 @@ const ( jobSelectorKey = "job" ) -// TODO: Activate these tests for GKE when we support experimental APIs there. var _ = Describe("Job", func() { f := NewFramework("job") parallelism := 2 @@ -49,7 +48,6 @@ var _ = Describe("Job", func() { // Simplest case: all pods succeed promptly It("should run a job to completion when tasks succeed", func() { - SkipIfProviderIs("gke") By("Creating a job") job := newTestJob("succeed", "all-succeed", api.RestartPolicyNever, parallelism, completions) job, err := createJob(f.Client, f.Namespace.Name, job) @@ -62,7 +60,6 @@ var _ = Describe("Job", func() { // Pods sometimes fail, but eventually succeed. It("should run a job to completion when tasks sometimes fail and are locally restarted", func() { - SkipIfProviderIs("gke") By("Creating a job") // One failure, then a success, local restarts. // We can't use the random failure approach used by the @@ -82,7 +79,6 @@ var _ = Describe("Job", func() { // Pods sometimes fail, but eventually succeed, after pod restarts It("should run a job to completion when tasks sometimes fail and are not locally restarted", func() { - SkipIfProviderIs("gke") By("Creating a job") // 50% chance of container success, local restarts. // Can't use the failOnce approach because that relies @@ -100,7 +96,6 @@ var _ = Describe("Job", func() { }) It("should keep restarting failed pods", func() { - SkipIfProviderIs("gke") By("Creating a job") job := newTestJob("fail", "all-fail", api.RestartPolicyNever, parallelism, completions) job, err := createJob(f.Client, f.Namespace.Name, job) @@ -117,7 +112,6 @@ var _ = Describe("Job", func() { }) It("should scale a job up", func() { - SkipIfProviderIs("gke") startParallelism := 1 endParallelism := 2 By("Creating a job") @@ -143,7 +137,6 @@ var _ = Describe("Job", func() { }) It("should scale a job down", func() { - SkipIfProviderIs("gke") startParallelism := 2 endParallelism := 1 By("Creating a job") @@ -169,7 +162,6 @@ var _ = Describe("Job", func() { }) It("should stop a job", func() { - SkipIfProviderIs("gke") By("Creating a job") job := newTestJob("notTerminate", "foo", api.RestartPolicyNever, parallelism, completions) job, err := createJob(f.Client, f.Namespace.Name, job)