Commit Graph

75 Commits

Author SHA1 Message Date
Patrick Ohly
f117849582 mock tests: ResourceExhausted error handling in external-provisioner
The mock driver gets instructed to return a ResourceExhausted error
for the first CreateVolume invocation via the storage class
parameters.

How this should be handled depends on the situation: for normal
volumes, we just want external-scheduler to retry. For late binding,
we want to reschedule the pod. It also depends on topology support.
2020-04-07 13:09:31 +02:00
Jan Safranek
a4f080861f Test NodeStage error cases
Especially related to "uncertain" global mounts. A large refactoring of CSI
mock tests were necessary:
- to be able to script the driver to return errors as required by the test
- to parse the CSI driver logs to check kubelet called the right CSI calls
2020-04-06 15:03:22 +02:00
drfish
dfab6b637f Update .import-aliases for e2e test framework 2020-03-25 11:40:02 +08:00
Christian Huffman
c6fd25d100 Updated CSIDriver references 2020-03-06 08:21:26 -05:00
Michelle Au
76a4a34dae Pass NodeSelection directly into e2e testsuites so that tests can use them more consistently
Change-Id: I99c8c1d8535a2a2319fbe8216b953c14a56f2763
2020-02-11 20:25:24 -08:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08: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
yuxiaobo
73fb0ab5ec test/e2e/storage:Use e2eskipper package
Signed-off-by: yuxiaobo <yuxiaobogo@163.com>
2020-01-13 14:04:10 +08:00
danielqsj
6596a14d39 add missing alias of api errors under test 2019-12-26 17:29:38 +08:00
Boyil (Elliot) Li
cfa6f83427 Enable snapshottable e2e test for csi pd driver
- add csi pd driver manifests
- modify snapshottable test case
- fix tests of pod has to be created first for delay-binding PVC, otherwise PVC won't be bound
2019-11-15 15:46:48 -08:00
David Zhu
1f2588496d
Revert "Enable snapshot e2e test for csi pd driver" 2019-11-14 19:29:20 -08:00
Boyil (Elliot) Li
f7bba28dab Enable snapshottable e2e test for csi pd driver
- add pd driver manifests
- modify snapshottable test case
2019-11-14 10:27:39 -08:00
Kubernetes Prow Robot
c580a12c8e
Merge pull request #83568 from bertinatto/volume_limits_ga
Promote volume limits to GA
2019-11-12 11:50:22 -08:00
Kubernetes Prow Robot
897ce3073c
Merge pull request #84533 from davidz627/fix/deprecatedPath
Remove plugin watching of deprecated directory and CSI v0 support in accordance with deprecation policy
2019-11-12 04:48:20 -08:00
Fabio Bertinatto
f6de8ab727 Enable volume limits e2e tests for CSI hostpath driver 2019-11-12 09:43:54 +01:00
David Zhu
802fe12803 Remove plugin watching of deprecated directory {kubelet_root_dir}/plugins and support for CSI V0 in accordance with deprecation announcement in https://v1-13.docs.kubernetes.io/docs/setup/release/notes/ 2019-11-11 11:42:58 -08:00
Kubernetes Prow Robot
1d1385af91
Merge pull request #83474 from msau42/topology-ga
CSI Topology ga
2019-11-04 15:28:27 -08: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
Michelle Au
2d467ed9d8 Update tests to use v1.CSINode 2019-10-28 13:41:13 -07:00
David Zhu
d1383aa28f Update GCE PD CSI Driver YAMLS to v0.6.0 for testing. Enable Raw Block tests 2019-10-25 15:18:48 -07:00
Dan Winship
6a040438ea Update test/e2e/storage for new GetReadySchedulableNodes stuff 2019-10-09 08:12:56 -04:00
hoyho
23320c958e feat(e2e): refactor hard-coded provision size
test/e2e/storage/testsuites creates volumes dynamically. Initially, the size of those volumes was
hard-coded in the test, which prevented using the tests with storage backends that couldn't support
that hard-coded size
2019-10-08 01:33:19 +08:00
Michelle Au
95c7b42340 add topology e2es to storage testsuite
Change-Id: I1ec4247cef5d477ae2a76136113a4ed5ce30bf44
2019-09-20 12:26:53 -07:00
Mucahit Kurt
f0aa13cd46 skip e2e tests that run on multi node cluster and require node independent volume for the drivers that does not support node independent volumes, like hostpath
Signed-off-by: Mucahit Kurt <mucahitkurt@gmail.com>
2019-09-13 22:49:53 +03:00
carlory
910bd000ff use log functions of core framework in the 'test/e2e/storage/*' 2019-09-06 10:26:16 +08:00
Kubernetes Prow Robot
c4ccb623e8
Merge pull request #80247 from jsafrane/e2e-volume-limits
Add e2e test for CSI volume limits
2019-08-28 18:25:56 -07:00
Patrick Ohly
5088b2ee2f e2e storage: read/write + read-only ephemeral inline volume test, data sharing
The assumption so far was that all drivers support read/write
volumes. That might not necessarily be true, so we have to let the
test driver specify it and then test accordingly.

Another aspect that is worth testing is whether the driver correctly
creates a new volume for each pod even if the volume attributes are
the same. However, drivers are not required to do that, so again we
have to let the test driver specify that.
2019-08-28 12:20:54 +02: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
Patrick Ohly
6c6930a088 e2e storage: synchronize .yaml files with latest upstream releases
This ensures that the files are in sync with:
   hostpath: v1.2.0-rc3
   external-attacher: v2.0.1
   external-provisioner: v1.3.0
   external-resizer: v0.2.0
   external-snapshotter: v1.2.0

driver-registrar/rbac.yaml is obsolete because only
node-driver-registrar is in use now and does not need RBAC rules.

mock/e2e-test-rbac.yaml was not used anywhere.

The README.md files were updated to indicate that these really are
files copied from elsewhere. To avoid the need to constantly edit
these files on each update, <version> is used as placeholder in the URL.
2019-08-28 12:18:36 +02:00
Jan Safranek
90d09919e8 Add e2e test for volume limits
The test creates as many PVs and pods as the driver/plugin reports to support on a
single node.
2019-08-28 10:39:08 +02:00
Fabio Bertinatto
81572e5254 Enable CSI e2e tests for volume expansion 2019-08-27 17:33:41 +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
j-griffith
47facf91b9 Add e2e tests for CSI PVCDataSources
address unit test comments
2019-08-15 13:25:10 -06: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
David Zhu
0313dc217e Add a field 'RequiredAccessModes' to the driver info object that is propagated to pvc creation 2019-07-26 15:20:47 -07:00
David Zhu
b6a38d7e2b Add supportedMountOptions for GCE PD CSI Driver tests 2019-07-16 16:17:54 -07:00
Patrick Ohly
b86a007057 e2e: avoid mandatory command line flags
Tests should never directly add to the global command line, because
some users of the tests might not want them there. For example,
options might only get set directly from a config file.

To achieve that, e2e/framework/config, e2e/framework/viperconfig, and
e2e/framework/test_context.go avoid using the global flag set and
instead expect to be told by the caller which flag set to use. Tests
that called flag directly either get updated or obsolete flags get
removed.

The exception is framework.HandleFlags, which as before directly
implements global command line handling.

This is a breaking change for test suites which do not use that
function (and only those): they now need to ensure that they copy
individual flags from tests. Because the RegisterCommonFlags prototype
has changed, test suite authors will notice due to the resulting
compilation errors.
2019-07-04 17:15:14 +02:00
SataQiu
332be4b1e3 refactor: replace framework.Failf with e2elog.Failf 2019-06-19 17:52:35 +08:00
SataQiu
b828e570b1 fix golint failures of test/e2e/storage/drivers 2019-05-20 13:12:38 +08:00
danielqsj
1058877fbf remove dot imports in e2e/storage 2019-05-10 13:56:26 +08:00
Michelle Au
80471bf487 remove pd-external from e2e config
Change-Id: I1d734fcc8e8145e586b5df9acd0736c7ba0658d1
2019-04-29 15:25:14 -07:00
Michelle Au
bbf6683e22 Switch PD tests to use delayed binding 2019-03-27 18:30:13 -07:00
Kubernetes Prow Robot
11b9ebf113
Merge pull request #75225 from jingxu97/pd_windows_test
Add bracket to the sig-window tag and other fixes
2019-03-12 13:19:19 -07:00
Jing Xu
3718f4e0ed Add bracket to the sig-window tag
Need to add bracket in the tag for sig-windows. Also fix an issue: for
current testing structure, it first init driver and then set up the
framework. So when initialize the driver, it does not know what OS is
and we can not set up the capabilities correctly. Instead we have to add
all the capabilities and supported fs types including both linux and
windows. Later in the code, we will check the Node OS and decide how to
run the test.
2019-03-11 18:40:45 -07:00
Hemant Kumar
a8f318779b Add CSI volume resizing tests
Add some tests for checking node expansion
Add new tests for expander
2019-03-08 09:23:18 -05:00
Kubernetes Prow Robot
788f24583e
Merge pull request #74990 from jingxu97/pd_windows_test
Add GCE PD tests for windows cluster
2019-03-07 21:20:23 -08:00
Jing Xu
18be0a49e6 Add GCE PD tests for windows cluster
This PR is the first one to add a few GCE PD tests for windows cluster. Will
add more tests in later PRs
2019-03-07 09:13:56 -08:00
Ben Swartzlander
1493e684d3 Promote CSI raw blocks to beta 2019-03-06 13:43:52 -05:00
Michelle Au
afbc8a5056 e2e test updates for beta 2019-03-05 20:24:59 -08:00