Commit Graph

92 Commits

Author SHA1 Message Date
Patrick Ohly
567ce87aee CSIStorageCapacity: E2E test with mock driver
We can create CSIStorageCapacity objects manually, therefore we don't
need the updated external-provisioner for these tests.
2020-07-08 08:02:26 +02:00
Grant Griffiths
e1f0e4cd9f Add retain policy test and refactor snapshottable tests
Signed-off-by: Grant Griffiths <grant@portworx.com>
2020-06-17 19:53:53 -07:00
Hemant Kumar
da941d8d3e Create mock CSI driver resources in different namespace 2020-05-13 11:16:00 -04:00
Hemant Kumar
708261e06c Make AfterSuite hooks ordered
ginkgo has a weird bug that - AfterEach does not get called when
testsuite exits with certain kind of interrupt (Ctrl-C for example).
More info - https://github.com/onsi/ginkgo/issues/222

We workaround this issue in Kubernetes by adding a special hook into
AfterSuite call, but AfterSuite can not be used to peforms certain
kind of cleanup because it can race with AfterEach hook and
framework.AfterEach hook will set framework.ClientSet to nil.

This presents a problem in cleaning up CSI driver and testpods. This
PR removes cleanup of driver manifest via CleanupAction because that
is not safe and racy (such as f.ClientSet may disappear!) and makes
AfterSuite hooks run in a ordered fashion
2020-05-13 11:15:27 -04:00
drfish
dfab6b637f Update .import-aliases for e2e test framework 2020-03-25 11:40:02 +08:00
tanjunchen
d18e6569e0 use e2epod.WaitForPodNotFoundInNamespace directly 2020-03-21 15:11:40 +08:00
Kubernetes Prow Robot
672aa55ee4
Merge pull request #87777 from dbenoit17/master
fix range copy issue
2020-03-07 08:25:34 -08:00
Christian Huffman
c6fd25d100 Updated CSIDriver references 2020-03-06 08:21:26 -05:00
Mike Danese
aaf855c1e6 deref all calls to metav1.NewDeleteOptions that are passed to clients.
This is gross but because NewDeleteOptions is used by various parts of
storage that still pass around pointers, the return type can't be
changed without significant refactoring within the apiserver. I think
this would be good to cleanup, but I want to minimize apiserver side
changes as much as possible in the client signature refactor.
2020-03-05 14:59:46 -08:00
Mike Danese
c58e69ec79 automated refactor 2020-03-05 14:59:46 -08:00
Patrick Ohly
d71829a1fc e2e: avoid setting NodeName for CSI driver deployments
We don't want to set the name directly because then starting the pod
can fail when the node is temporarily out of resources
(https://github.com/kubernetes/kubernetes/issues/87855).

For CSI driver deployments, we have three options:
- modify the pod spec with custom code, similar
  to how the NodeSelection utility code does it
- add variants of SetNodeSelection and SetNodeAffinity which
  work with a pod spec instead of a pod
- change their parameter from pod to pod spec and then use
  them also when patching a pod spec

The last approach is used here because it seems more general. There
might be other cases in the future where there's only a pod spec that
needs to be modified.
2020-02-26 10:33:29 +01:00
Kubernetes Prow Robot
dc8208dddc
Merge pull request #87871 from msau42/fix-hostexec
Use NodeSelector instead of NodeName in hostexec Pod
2020-02-10 20:44:01 -08:00
Michelle Au
1ee35e788e Use NodeSelector instead of NodeName in hostexec Pod so that the Pod runs through the scheduler
Change-Id: Ia2f7ad39af318bbe707b43dfea706293ecdf5203
2020-02-10 15:36:04 -08:00
Mike Danese
25651408ae generated: run refactor 2020-02-08 12:30:21 -05:00
Kubernetes Prow Robot
334d788f08 Merge pull request #87299 from mikedanese/ctx
context in client-go
2020-02-08 06:43:52 -08:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08:00
John Belamaric
ba38816d42 LogResult if there is an error 2020-02-07 09:36:02 -08:00
dbenoit
087dc49a0c
fix range copy issue 2020-02-03 11:37:11 -05:00
Kubernetes Prow Robot
14ed35712c
Merge pull request #87168 from misterikkit/timout-err
storage e2e: Add context to timeout errors
2020-01-15 01:22:32 -08:00
Jonathan Basseri
99a015705b storage e2e: Add context to timeout errors
Many times an e2e test fails with an unexpected error,
"timed out waiting for the condition".

Useful information may be in the test logs, but debugging e2e test
failures will be much faster if we add context to errors when they
happen.

This change makes sure we add context to all errors returned from
helpers like wait.Poll().
2020-01-14 11:45:38 -08:00
Jing Xu
51d5303662 Fix err variable shadowing issue in storage/utils
Issue: https://github.com/kubernetes/kubernetes/issues/86884
This PR fixes the issue that err variable gets shadowed. Because of
this, it might get nil pointer error.

Change-Id: Ib7da918418a7c8148a6ca598db12b3744eb3b7c8
2020-01-06 12:15:29 -08:00
danielqsj
fc738cbb1d unify alias of api errors under test 2019-12-26 16:40:45 +08:00
hwdef
d45107a00d test/e2e: move funcs from test/e2e/pod to other folders 2019-12-16 11:58:49 +08:00
Kubernetes Prow Robot
4ca93592d2
Merge pull request #86147 from tanjunchen/use-framework-Equal-20191211
test/e2e/storage : use framework.Equal() replace gomega.Expect(...).To(gomega.BeTrue(),...)
2019-12-11 11:32:24 -08:00
tanjunchen
f8e0c6bb41 test/e2e/storage : use framework.Equal() replace gomega.Expect(...).To(gomega.BeTrue(),...) 2019-12-11 16:25:26 +08:00
SataQiu
e70120f083 fix staticcheck failures of e2e/storage/utils e2e/storage/vsphere 2019-12-11 10:33:21 +08:00
tanjunchen
9eda99793d use ExpectEqual of framework in test/e2e/storage 2019-12-03 17:41:49 +08:00
toyoda
5683fe7f51 Use log functions of core framework on e2e/storage/utils 2019-11-13 16:17:11 +09:00
Olev Kartau
373909946e utils.go: Changed bashExec to shExec, bash not guaranteed. 2019-11-12 14:42:24 +02:00
Olev Kartau
2fac3f2c20 test/e2e: Reduce need to use local kubectl
Use POST method instead of running local kubectl.
Use ExecCommandInContainerWithFullOutput() instead of RunKubectl().
PodExec() takes additional framework arg, passed down in call chain.
VerifyExecInPodFail uses different error code cast as original
one causes test code Panic if used with new call method.
2019-11-12 14:42:24 +02:00
Xing Yang
3324722e07 VolumeSnapshot CRD v1beta1: Enable VolumeSnapshotDataSource feature gate and update e2e tests 2019-11-11 02:34:24 +00:00
Kenichi Omichi
94211f1839 Move functions from e2e framework util.go
The following functions are called at some specific places only,
so this moves these functions to the places and makes them local.

- WaitForPersistentVolumeClaimDeleted: Moved to e2e storage
- PrintSummaries: Moved to e2e framework.go
- GetHostExternalAddress: Moved to e2e node
- WaitForMasters: Moved to e2e cloud gcp
- WaitForApiserverUp: Moved to e2e network
- WaitForKubeletUp: Moved to e2e storage vsphere
2019-11-08 19:25:16 +00:00
clarklee92
78d3d52ac2 Move funcs of create.go to e2e/storage
Signed-off-by: clarklee92 <clarklee1992@hotmail.com>
2019-11-01 13:52:24 +08:00
Kubernetes Prow Robot
ed5b038313
Merge pull request #84218 from cofyc/fix74552
Support local filesystem volume with block source reconstruction and add related e2e tests
2019-10-31 21:53:36 -07:00
Yecheng Fu
d8c465c8d7 better HostExec
- separate stdout and stderr
- return command exit code
- remove kubectl dependency
2019-10-28 19:20:26 +08:00
Yecheng Fu
8def74f394 use HostExec and sets.String 2019-10-28 10:35:06 +08:00
Yecheng Fu
25c5ad52fd simplify global mount points check 2019-10-28 10:35:06 +08:00
Yecheng Fu
b536395c07 Add e2e test to check for filesystem volume device mount cleanup 2019-10-28 10:35:02 +08:00
Jan Safranek
612fb1793e Test global block directory in reconstruction tests 2019-10-04 14:03:40 +02:00
Kubernetes Prow Robot
ec05944b13
Merge pull request #83108 from jsafrane/hostexec-volumemode
Use pod + nsenter instead of SSH in block volume tests
2019-10-04 02:46:29 -07:00
John Schnake
2dab911ac2 Use imageutils instead of hardcoded image paths
A number of tests were using hardcoded image paths instead of
going through the imageutils package. The reason for centralizing
the logic there is to keep an eye on what images we use and where
they come from.
2019-09-27 15:01:08 -05:00
Jan Safranek
c1c0ba1c76 Use pod + nsenter instead of SSH in block volume tests
listPodVolumePluginDirectory was moved to break import cycle.
2019-09-25 13:34:27 +02:00
carlory
910bd000ff use log functions of core framework in the 'test/e2e/storage/*' 2019-09-06 10:26:16 +08:00
Patrick Ohly
cf125a2db3 e2e storage: enable testing of ephemeral inline volumes with hostpath CSI driver
We need the 1.2.0 driver for that because that has support for
detecting the volume mode dynamically, and we need to deploy a
CSIDriver object which enables pod info (for the dynamic detection)
and both modes (to satisfy the new mode sanity check).
2019-08-28 12:20:54 +02:00
Kubernetes Prow Robot
087aafc18d
Merge pull request #80568 from pohly/ephemeral-mode-check
ephemeral mode check
2019-08-26 11:53:40 -07:00
Patrick Ohly
8270fe81e4 bazel update 2019-08-22 08:57:53 +02:00
Kubernetes Prow Robot
5c68a231ab
Merge pull request #81620 from wongma7/nfs-alpha
Bump nfs-provisioner to include GetReference fix
2019-08-20 10:47:15 -07:00
Matthew Wong
9da84cfbdf Bump nfs-provisioner to include GetReference fix 2019-08-16 16:54:08 -07:00
Jan Safranek
2c79ffe274 Add test for unused volumes 2019-08-15 10:48:41 +02:00
Patrick Ohly
7bbc06fcd4 storage: check CSIDriver.Spec.VolumeLifecycleModes
Using a "normal" CSI driver for an inline ephemeral volume may have
unexpected and potentially harmful effects when the driver gets a
NodePublishVolume call that it isn't expecting. To prevent that mistake,
driver deployments for a driver that supports such volumes must:
- deploy a CSIDriver object for the driver
- set CSIDriver.Spec.VolumeLifecycleModes such that it contains "ephemeral"

The default for that field is "persistent", so existing deployments
continue to work and are automatically protected against incorrect
usage.

For the E2E tests we need a way to specify the driver mode. The
existing cluster-driver-registrar doesn't support that and also was
deprecated, so we stop using it altogether and instead deploy and
patch a CSIDriver object.
2019-08-13 23:12:52 +02:00