From 7682e39a4717b61864708eecfb7fb7772a6eeb42 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 1 Apr 2021 08:47:09 +0200 Subject: [PATCH] storage e2e: disable health check containers They are not needed for any of the tests and in practice apparently caused enough overhead that even unrelated tests timed out. For example, in the pull-kubernetes-e2e-kind test, 43 out of 5771 tests failed, including tests from sig-node, sig-cli, sig-api-machinery, sig-network. --- test/e2e/storage/drivers/csi.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/e2e/storage/drivers/csi.go b/test/e2e/storage/drivers/csi.go index 70eba6b2e70..beb33c1c9f0 100644 --- a/test/e2e/storage/drivers/csi.go +++ b/test/e2e/storage/drivers/csi.go @@ -47,6 +47,7 @@ import ( "github.com/onsi/ginkgo" "google.golang.org/grpc/codes" + appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" storagev1 "k8s.io/api/storage/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -240,7 +241,33 @@ func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) (*storageframewo NodeName: node.Name, } cleanup, err := utils.CreateFromManifests(config.Framework, driverNamespace, func(item interface{}) error { - return utils.PatchCSIDeployment(config.Framework, o, item) + if err := utils.PatchCSIDeployment(config.Framework, o, item); err != nil { + return err + } + + // Remove csi-external-health-monitor-agent and + // csi-external-health-monitor-controller + // containers. They are not needed for any of the + // tests and in practice apparently caused enough + // overhead that even unrelated tests timed out. For + // example, in the pull-kubernetes-e2e-kind test, 43 + // out of 5771 tests failed, including tests from + // sig-node, sig-cli, sig-api-machinery, sig-network. + switch item := item.(type) { + case *appsv1.StatefulSet: + var containers []v1.Container + for _, container := range item.Spec.Template.Spec.Containers { + switch container.Name { + case "csi-external-health-monitor-agent", "csi-external-health-monitor-controller": + // Remove these containers. + default: + // Keep the others. + containers = append(containers, container) + } + } + item.Spec.Template.Spec.Containers = containers + } + return nil }, h.manifests...) if err != nil {