Change:
created a spread sheet of the slowest running tests for the pull-kubernetes-gce job. cc discussion on slack: spreadsheet: pie chart of test durations from SIGs: ! it seems appropriate to evaluate the state of the tests and reduce these runtimes. possibly move tests to periodic by marking them as [Slow]. /assign /kind design /area test (?)
/remove-kind bug
Are pull jobs the right place to be calculating the time? Or should be be counting in CI instead?
pull is the one timing out, so probably?
Looking at some of the top slowness:: subPath should fail for new directories when readOnly specified in the volumeSource: This test case is no longer defined in master HostPathType: This test case has not been checked in yet and is trying to be in a PR PersistentVolumes-local StatefulSet with pod affinity should use volumes spread across nodes when pod has anti-affinity: This test is already marked as slow in master
Created This should address most of the top slow storage tests

Discussion:
}) Context("CSI volume limit information using mock driver", func() { <del> It("should report attach limit when limit is bigger than 0", func() { </del> <ins> It("should report attach limit when limit is bigger than 0 [Slow]", func() { </ins> // define volume limit to be 2 for this test var err error

"time" <del> "k8s.io/api/core/v1" </del> <ins> v1 "k8s.io/api/core/v1" </ins> metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes"

suffix = ns.Name }) <del> It("should not work when mount is in progress", func() { </del> <ins> It("should not work when mount is in progress [Slow]", func() { </ins> driver := "attachable-with-long-mount" driverInstallAs := driver + "-" + suffix

. "github.com/onsi/gomega" appsv1 "k8s.io/api/apps/v1" <del> "k8s.io/api/core/v1" </del> <ins> v1 "k8s.io/api/core/v1" </ins> storagev1 "k8s.io/api/storage/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource"

} }) <del> It("should set fsGroup for one pod", func() { </del> <ins> It("should set fsGroup for one pod [Slow]", func() { </ins> By("Checking fsGroup is set") pod := createPodWithFsGroupTest(config, testVol, 1234, 1234) By("Deleting pod") framework.DeletePodOrFail(config.client, config.ns, pod.Name) }) <del> It("should set same fsGroup for two pods simultaneously", func() { </del> <ins> It("should set same fsGroup for two pods simultaneously [Slow]", func() { </ins> fsGroup := int64(1234) By("Create first pod and check fsGroup is set") pod1 := createPodWithFsGroupTest(config, testVol, fsGroup, fsGroup)

. "github.com/onsi/ginkgo" . "github.com/onsi/gomega" <del> "k8s.io/api/core/v1" </del> <ins> v1 "k8s.io/api/core/v1" </ins> metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework"

func InitMultiVolumeTestSuite() TestSuite { return &multiVolumeTestSuite{ tsInfo: TestSuiteInfo{ <del> name: "multiVolume", </del> <ins> name: "multiVolume [Slow]", </ins> testPatterns: []testpatterns.TestPattern{ testpatterns.FsVolModePreprovisionedPV, testpatterns.FsVolModeDynamicPV,

testReadFile(f, l.filePathInSubpath, l.pod, 0) }) <del> It("should verify container cannot write to subpath readonly volumes", func() { </del> <ins> It("should verify container cannot write to subpath readonly volumes [Slow]", func() { </ins> init() defer cleanup() if l.roVolSource == nil {

. "github.com/onsi/ginkgo" . "github.com/onsi/gomega" <del> "k8s.io/api/core/v1" </del> <ins> v1 "k8s.io/api/core/v1" </ins> storagev1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes"

switch pattern.VolType { case testpatterns.PreprovisionedPV: if pattern.VolMode == v1.PersistentVolumeBlock && !isBlockSupported { <del> It("should fail to create pod by failing to mount volume", func() { </del> <ins> It("should fail to create pod by failing to mount volume [Slow]", func() { </ins> init() defer cleanup()