Commit Graph

79 Commits

Author SHA1 Message Date
Michelle Au
e132b77ae4 Add stress test to repeatedly restart Pods with PVCs in parallel
Change-Id: I499571cc86b1058d0e16d79e5e998d1dedfd9a4a
2020-04-15 18:10:35 -07: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
Michelle Au
95c7b42340 add topology e2es to storage testsuite
Change-Id: I1ec4247cef5d477ae2a76136113a4ed5ce30bf44
2019-09-20 12:26:53 -07:00
WanLinghao
a6f5d99409 Refactor and clean up e2e framework utils. This patch handles test/e2e/framework/pv_util.go file 2019-09-18 17:57:13 +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
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
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
Kubernetes Prow Robot
dccd28269a
Merge pull request #81467 from bertinatto/e2e_volume_expand
Graduate Volume Expansion to Beta + e2e tests
2019-08-28 01:37:25 -07:00
alejandrox1
7c161d6a5f Refactoring pod related functions from pv_util to pod pkg
Moving pod related functions from e2e/framework/pv_util.go to
e2e/framework/pod in order to allow refactoring of pv_util.go into its
own package.

Signed-off-by: alejandrox1 <alarcj137@gmail.com>
2019-08-27 12:27:45 -04:00
Fabio Bertinatto
81572e5254 Enable CSI e2e tests for volume expansion 2019-08-27 17:33:41 +02:00
Masaki Kimura
f1d2d9d670 Move disruptive tests to testsuites and add ones for block volume 2019-08-01 20:04:10 +00:00
David Zhu
e194cf24cc Dedupe all Make PVC API object functions into the one MakePersistentVolumeClaim to rule them all 2019-07-23 12:59:00 -07:00
Jorge Alarcon Ochoa
4969a05327 Refactored pod-related functions from framework/util.go
This a refactoring of framework/utils.go into framework/pod.

Signed-off-by: Jorge Alarcon Ochoa <alarcj137@gmail.com>
2019-05-30 09:30:26 -04: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
Jan Safranek
fc8b8669d1 Don't run topology tests with GCE CSI driver on non-GCE cloud 2019-04-05 13:26:11 +02:00
Kenichi Omichi
542b07cd6a Use framework.ExpectNoError() for e2e/storage
The e2e test framework has ExpectNoError() for readable test code.
This replaces Expect(err).NotTo(HaveOccurred()) with it for e2e/storage.
2019-04-02 16:20:35 +00:00
Michelle Au
634be030a8 Fix provisioning tests to allow delayed binding 2019-03-29 15:00:26 -07:00
Masaki Kimura
b4c88acec6 Add e2e tests for multiAttach 2019-03-09 00:26:00 +00:00
Michelle Au
8b97e2ab7c make CSI PD tests serial 2019-03-06 15:11:50 -08:00
Michelle Au
afbc8a5056 e2e test updates for beta 2019-03-05 20:24:59 -08:00
Hemant Kumar
2516cbd453 Add e2e for CSI volume limit stuff
Also use privileged for driver registra
2019-02-26 13:04:54 -05:00
Hemant Kumar
abf8df7543 clean up duplication 2019-02-20 15:43:12 -05:00
Patrick Ohly
4643624084 e2e/storage: remove test pattern filtering
The recommended approach for not running unsuitable tests is to skip
them at runtime with an explanation. Filtering out unsuitable test
patters and thus not even defining unsuitable tests was done earlier
because it was faster than skipping tests at runtime.

But now these tests can be skipped efficiently, so this special case
can be removed.
2019-02-15 11:01:08 +01:00
Patrick Ohly
05cc31697f e2e/storage: speed up skipping, simplify APIs and test definition
CreateDriver (now called SetupTest) is a potentially expensive
operation, depending on the driver. Creating and tearing down a
framework instance also takes time (measured at 6 seconds on a fast
machine) and produces quite a bit of log output.

Both can be avoided for tests that skip based on static
information (like for instance the current OS, vendor, driver and test
pattern) by making the test suite responsible for creating framework
and driver.

The lifecycle of the TestConfig instance was confusing because it was
stored inside the DriverInfo, a struct which conceptually is static,
while the TestConfig is dynamic. It is cleaner to separate the two,
even if that means that an additional pointer must be passed into some
functions. Now CreateDriver is responsible for initializing the
PerTestConfig that is to be used by the test.

To make this approach simpler to implement (= less functions which
need the pointer) and the tests easier to read, the entire setup and
test definition is now contained in a single function. This is how it
is normally done in Ginkgo. This is easier to read because one can see
at a glance where variables are set, instead of having to trace values
though two additional structs (TestResource and TestInput).

Because we are changing the API already, also other changes are made:
- some function prototypes get simplified
- the naming of functions is changed to match their purpose
  (tests aren't executed by the test suite, they only get defined
  for later execution)
- unused methods get removed (TestSuite.skipUnsupportedTest is redundant)
2019-02-15 11:01:05 +01:00
Jose A. Rivera
a33acd2ba6 CSIDriverRegistry e2e: Use framework.Poll when waiting for PVC delete
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-02-14 11:25:15 -06:00
Jose A. Rivera
86c71472df CSIDriverRegistry e2e: Wait for CSIDriver creation
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-02-14 11:25:15 -06:00
Jose A. Rivera
81bc0e5ec8 CRIDriverRegistry e2e: Clarify variable name
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-02-14 06:59:43 -06:00
Jose A. Rivera
1ac3b37848 CSIDriverRegistry e2e: Always clean up driver
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-02-14 06:56:17 -06:00
Jose A. Rivera
6115fc49a6 Use cluster-driver-registrar for CSIDriverRegistry tests
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-02-13 15:06:58 -06:00
Patrick Ohly
54d8f1648f e2e/storage: improve PV checking
TestDynamicProvisioning had multiple ways of choosing additional
checks:
- the PvCheck callback
- the builtin write/read check controlled by a boolean
- the snapshot testing

Complicating matters further, that builtin write/read test had been
more customizable with new fields `NodeSelector` and
`ExpectUnschedulable` which were only set by one particular test (see
https://github.com/kubernetes/kubernetes/pull/70941).

That is confusing and will only get more confusing when adding more
checks in the future. Therefore the write/read check is now a separate
function that must be enabled explicitly by tests that want to run it.
The snapshot checking is also defined only for the snapshot test.

The test that expects unschedulable pods now also checks for that
particular situation itself. Instead of testing it with two pods (the
behavior from the write/read check) that both fail to start, only a
single unschedulable pod is created.

Because node name, node selector and the `ExpectUnschedulable` were
only used for checking, it is possible to simplify `StorageClassTest`
by removing all of these fields.

Expect(err).NotTo(HaveOccurred()) is an anti-pattern in Ginkgo testing
because a test failure doesn't explain what failed (see
https://github.com/kubernetes/kubernetes/issues/34059). We avoid it
now by making the check function itself responsible for checking
errors and including more information in those checks.
2019-02-09 14:20:17 +01:00
Kubernetes Prow Robot
8f7ccf8d4c
Merge pull request #69036 from wackxu/snapshottest
add e2e test for snapshot
2019-02-08 13:14:04 -08:00
Davanum Srinivas
b975573385
move pkg/kubelet/apis/well_known_labels.go to staging/src/k8s.io/api/core/v1/
Co-Authored-By: Weibin Lin <linweibin1@huawei.com>

Change-Id: I163b2f2833e6b8767f72e2c815dcacd0f4e504ea
2019-02-05 13:39:07 -05:00
xushiwei
3410d435ed add snapshot e2e 2019-01-30 19:04:45 +08:00
Cheng Xing
9864628c76 CSI topology e2e - fix space in Feature tag 2019-01-15 10:47:14 -08:00
Cheng Xing
12ece9dacb CSI topology e2e tests 2019-01-11 18:36:06 -08:00
Kubernetes Prow Robot
5acac9b3e2
Merge pull request #70439 from jsafrane/worlload-test
CSI: Add test for passing Pod information in NodePublish call
2019-01-07 12:08:51 -08:00
Jan Safranek
d617dcb1e0 CSI: Add test for passing Pod information in NodePublish call 2019-01-02 16:11:41 +01:00
Patrick Ohly
98ba1d8519 e2e/storage: reset driver config in the test suite
PR #70862 made each driver responsible for resetting its config, but
as it turned out, one place was missed in that PR: the in-tree gcepd
sets a node selector. Not resetting that caused other tests to fail
randomly depending on test execution order.

Now the test suite resets the config by taking a copy after setting up
the driver and restoring that copy before each test.

Long term the intention is to separate the entire test config from the
static driver info (https://github.com/kubernetes/kubernetes/issues/72288),
but for now resetting the config is the fastest way to fix the test flake.

Fixes: #72378
2018-12-28 22:44:09 +01:00
Patrick Ohly
3253e9ab6b e2e/storage: refactor test config
Exposing framework.VolumeTestConfig as part of the testsuite package
API was confusing because it was unclear which of the values in it
really have an effect. How it was set also was a bit awkward: a test
driver had a copy that had to be overwritten at test runtime and then
might have been updated and/or overwritten again by the driver.

Now testsuites has its own test config structure. It contains the
values that might have to be set dynamically at runtime. Instead of
overwriting a copy of that struct inside the test driver, the test
driver takes some common defaults (specifically, the framework pointer
and the prefix) when it gets initialized and then manages its own
copy. For example, the hostpath driver has to lock the pods to a
single node.

framework.VolumeTestConfig is still used internally and test drivers
can decide to run tests with a fully populated instance if needed (for
example, after setting up an NFS server).
2018-12-21 10:30:06 +01:00
Patrick Ohly
dfcf2ca345 e2e/storage: separate generic testsuites from specific drivers
This makes it possible to use the testsuites package out-of-tree
without pulling in unnecessary dependencies and code (in
test/e2e/storage/vsphere) that defines tests that are not wanted in a
custom test suite.
2018-12-20 13:41:48 +01:00
Patrick Ohly
5349ce75fa e2e/storage: remove code duplication
The setup of the V0 hostpath driver was done with copy-and-paste and
then changing just the driver name and the manifests. The same can be
achieved by making the base struct a bit more configurable, which
simplifies future changes (less code).

Renaming the provisioner container was unnecessary and was reverted to
make it possible to use the same patch configuration.

While at it, also fix the InitHostV0PathCSIDriver typo.
2018-12-20 13:41:48 +01:00
Michelle Au
b02cada150
Revert "CSI: enhance driver tests to update the drivers." 2018-11-28 17:10:13 -08:00
Jan Safranek
51fc7930d6 CSI: enhance driver tests to update the drivers.
We want to check that kubelet correctly handles driver update
on a node.
2018-11-26 12:45:01 +01:00
saad-ali
aa8244beb5 Modify CSI to handle both 0.3 and 1.0
Modify the CSI volume plugin to handle CSI version 0.x as well as 1.x
2018-11-21 18:37:31 -08:00
Jan Safranek
6fee3688a0 Rename tag for CSI skip attach tests
So it has the same name as alpha feature
2018-11-15 15:42:00 +01:00
Patrick Ohly
89193ac0fd e2e/storage: avoid fmt.Sprintf for single string
The fmt.Sprintf call is either redundant (if the format string
contains no format characters) or broken (if it does, because there
are no parameters).
2018-11-13 10:43:19 +01:00
Masaki Kimura
d33211dc44 Fix test driver's unique name consistent
Fixes: #70760
2018-11-07 22:24:48 +00:00
Masaki Kimura
b89b367247 Make csi drivers and in-tree drivers share e2e tests 2018-11-07 15:42:58 +00:00
saad-ali
a679486a5e Register CSI CRDs as addon 2018-11-06 10:58:09 -08:00