Commit Graph

45 Commits (529785e35564d52b08b3ce303df5faf4055d6d31)

Author SHA1 Message Date
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
Michelle Au 45ee18a1f1 Update pd csi e2e yamls with latest driver 2018-11-02 13:35:39 -07:00
Patrick Ohly 1449353067 e2e: live streaming of pod events and stdout for CSI volume tests
Debugging the CSI driver tests depends a lot on the output of the CSI
sidecar containers and the CSI driver, but that information was not
captured automatically and thus unavailable after a test run. This is
particularly bad when running in a remote CI system, but also manually
watching the cluster during a test was cumbersome.

Now pod events and log messages get copied to the test's output at the
time that they happen (when running without report directory) or get
written to individual log files (when running with report directory in
the CI).
2018-10-30 09:18:48 +01:00
Patrick Ohly a56c518292 e2e CSI: bump all containers to v0.4.1 2018-10-27 00:39:44 +02:00
Patrick Ohly 38efff564c e2e: deploy from manifest files + enhance CSI volume output
Ensuring that CSI drivers get deployed for testing exactly as intended
was problematic because the original .yaml files had to be converted
into code. e2e/manifest helped a bit, but not enough:
- could not load all entities
- didn't handle loading .yaml files with multiple entities
- actually creating and deleting entities still had to be done in tests

The new framework utility code handles all of that, including the
tricky cleanup operation that tests got wrong (AfterEach does not get
called after test failures!).

In addition, it is ensuring that each test gets its own instance of the
entities.

The PSP role binding for hostpath is now necessary because we switch
from creating a pod directly to creation via the StatefulSet
controller, which runs with less privileges.

Without this, the hostpath test runs into these errors in the
kubernetes-e2e-gce job:

Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpath-attacher: {statefulset-controller } FailedCreate: create Pod csi-hostpath-attacher-0 in StatefulSet csi-hostpath-attacher failed error: pods "csi-hostpath-attacher-0" is forbidden: unable to validate against any pod security policy: []
Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpath-provisioner: {statefulset-controller } FailedCreate: create Pod csi-hostpath-provisioner-0 in StatefulSet csi-hostpath-provisioner failed error: pods "csi-hostpath-provisioner-0" is forbidden: unable to validate against any pod security policy: []
Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpathplugin: {daemonset-controller } FailedCreate: Error creating: pods "csi-hostpathplugin-" is forbidden: unable to validate against any pod security policy: []

The extra role binding is silently ignored on clusters which don't
have this particular role.
2018-10-26 22:07:34 +02:00
Michelle Au 9acb8bca6d Add new driver config for testing PD CSI driver out of tree 2018-10-25 16:42:51 -07:00
Masaki Kimura 4fcb36e205 Move minimum set of dynamic provisioning e2e test to testsuites 2018-10-22 16:04:43 +00:00
k8s-ci-robot 16256296d2
Merge pull request #69353 from davidz627/fix/provisionerName
Update provisioner name and don't supply zone in GCE PD CSI test
2018-10-03 15:21:59 -07:00
David Zhu fa41fa9acd Update provisioner name and don't supply zone in GCE PD CSI test 2018-10-02 16:52:14 -07:00
David Zhu fd18fc548d Remove redundant [Serial] tags and dont delete CRD's at the end of test 2018-10-02 16:01:38 -07:00
David Zhu e7af381538 Add Pod Security Policy back in to GCE PD Cluster Role 2018-10-02 14:42:14 -07:00
k8s-ci-robot 860d3cb32c
Merge pull request #68887 from jsafrane/csi-roles
Add controller roles to CSI e2e tests
2018-10-01 08:18:36 -07:00
Jan Safranek 60f736ed3d Add controller roles to CSI e2e tests
External attacher + provisioner need extra role for leader election.
2018-10-01 10:31:31 +02:00
SataQiu 94a653f100 fix typo 2018-09-28 23:41:24 +08:00
David Zhu f33f850ff1 Update GCE PD CSI Driver to run by default and automatically set up secrets with GCP Service Account Key 2018-09-26 10:10:48 -07:00
Cheng Xing 4ff1e32974 Updating CSI e2e test to create CSI CRDs; storing CRD spec in a common location 2018-09-18 14:25:00 -07:00
Jan Safranek f1cef9bde4 Add e2e test for skipping attach 2018-09-05 10:35:54 -04:00
Matthew Wong c968beceb1 Re-enable write-read pv check in volume provisioning tests 2018-07-10 16:20:58 -04:00
David Zhu 77df3ff525 Added attach/mount/check steps to CSI Driver E2E tests 2018-06-19 13:43:36 -07:00
Luis Pabón a0b9219c4c e2e: Remove flaky from CSI E2E test
The tests have been passing consistently and now we can remove
the Flaky tag.
2018-05-22 02:39:34 -04:00
David Zhu 4d11dab272 CSI test refactor to be more easily extensible for more plugins when there are more tests 2018-04-18 11:24:36 -07:00
David Zhu 01d916167b Add GCE-PD CSI Driver test to E2E test suite 2018-04-13 15:31:33 -07:00
David Zhu fbbccbf92d Added CSI External Components ClusterRole to bootstrapped roles and removed creation from failing e2e test 2018-04-09 14:16:48 -07:00
Luis Pabón 6970de0ece e2e:Enable CSI tests 2018-03-22 13:19:42 -07:00
Patrick Ohly 17d9a0c5ab Fixing e2e CSI test, II
The fix for #60803 in commit 2ae33cc324 had a typo, so the "Server
rejected event" error still showed up in the external-provisioner log
of the "Sanity CSI plugin test using hostPath CSI driver" e2e test.
2018-03-06 11:43:25 +01:00
Serguei Bezverkhi 2ae33cc324 Fixing e2e CSI test 2018-03-05 14:20:18 -05:00
Ryan Hitchman e04b91facf Remove unused variables (only assigned to) from test code.
This is revealed by the go/types package, which is stricter than
the Go compiler about unused variables. See also: golang/go#8560
2018-02-27 13:45:31 -08:00
Serguei Bezverkhi 348a02395d Fixing CSI E2E test 2018-02-17 18:13:06 -05:00
Serguei Bezverkhi ea4df51b3b Refactor k8s core csi bits for CSI Spec 0.2.0 2018-02-16 13:29:34 -05:00
Luis Pabón d1eb8a6163 e2e: CSI Volume tests
This e2e test tests the CSI volume plugin in kubernetes with
a CSI hostPath driver. It is also setup to be able to be
tested with more drivers in the future.
2017-12-18 22:04:52 -05:00