Commit Graph

110 Commits

Author SHA1 Message Date
Tim Pepper
91b0ecc006 storage e2e test: remove race when setting up loopback device
CI has shown occasional failures stemming from an -EBUSY when
test/e2e/storage/persistent_volumes-local.go aka "PersistentVolumes-local"
attempts to do losetup.

Looking at the code, it has a clear race between querying the current
free loopback device and later explicitly attempting to loopback setup a
file at the queried device node.  Losetup nowadays includes the logic to
handle this for the user, if the '-f' option is used instead of naming
the desired target loopback device explicitly.  It is safe to presume
a suitable losetup is present as the '-f' option is used elsewhere in
the test, and it is safe to not record the allocated device, as it is
already queried on the fly elsewhere in the test ahead of other commands
which need to know an already created loopback device's node name.

This patch should result in less flakes for this test case.

Signed-off-by: Tim Pepper <tpepper@vmware.com>
2018-08-10 15:28:50 -07:00
Manjunath A Kumatagi
1f7f33aaa4 Update the nginx image from hub.docker.com 2018-08-04 05:19:53 +05:30
stewart-yu
736694e6ad fix wrong output in e2e log 2018-07-28 14:39:12 +08:00
Kubernetes Submit Queue
bb4bdd08a9
Merge pull request #63877 from AdamDang/patch-9
Automatic merge from submit-queue (batch tested with PRs 63877, 64559, 65952). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Typo fix in the returned message: dynamicly->dynamically

Line 541: a typo in the returned message: 
dynamicly->dynamically
2018-07-16 17:00:02 -07:00
Yecheng Fu
c3715da13f Add local volume pod affinity tests. 2018-07-08 02:36:49 +00:00
Yecheng Fu
1fbc5babb5 Prepare local volumes via hostexec pod. 2018-06-26 13:18:55 +08:00
Yecheng Fu
df0f108a02 Fixes fsGroup check in local volume in containerized kubelet. Except
this, it also fixes fsGroup check when volume source is a normal
directory whether kubelet is running on the host or in a container.
2018-05-23 10:41:42 +08:00
AdamDang
cf50026886
Typo fix in the returen message: dynamicly->dynamically
dynamicly->dynamically
2018-05-16 01:18:43 +08:00
Yecheng Fu
a84ebb5193 PR #62903 changed error string GetMountRefs() returned, which broke test
`should fail due to non-existent path`.
Remove error string check to fix test.
2018-05-03 16:33:28 +08:00
Kubernetes Submit Queue
186dd7beb1
Merge pull request #62903 from cofyc/fixfsgroupcheckinlocal
Automatic merge from submit-queue (batch tested with PRs 62657, 63278, 62903, 63375). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add more volume types in e2e and fix part of them.

**What this PR does / why we need it**:

- Add dir-link/dir-bindmounted/dir-link-bindmounted/bockfs volume types for e2e tests.
- Fix fsGroup related e2e tests partially.
- Return error if we cannot resolve volume path.
  - Because we should not fallback to volume path, if it's a symbolic link, we may get wrong results.

To safely set fsGroup on local volume, we need to implement these two methods correctly for all volume types both on the host and in container:

- get volume path kubelet can access
  - paths on the host and in container are different
- get mount references
  - for directories, we cannot use its mount source (device field) to identify mount references, because directories on same filesystem have same mount source (e.g. tmpfs), we need to check filesystem's major:minor and directory root path on it

Here is current status:

| | (A) volume-path (host) | (B) volume-path (container) | (C) mount-refs (host) | (D) mount-refs (container) |
| --- | --- | --- | --- | --- |
| (1) dir | OK | FAIL | FAIL | FAIL |
| (2) dir-link | OK | FAIL | FAIL | FAIL |
| (3) dir-bindmounted | OK | FAIL | FAIL | FAIL |
| (4) dir-link-bindmounted | OK | FAIL | FAIL | FAIL |
| (5) tmpfs| OK | FAIL | FAIL | FAIL |
| (6) blockfs| OK | FAIL | OK | FAIL |
| (7) block| NOTNEEDED | NOTNEEDED | NOTNEEDED | NOTNEEDED |
| (8) gce-localssd-scsi-fs| NOTTESTED | NOTTESTED | NOTTESTED | NOTTESTED |

- This PR uses `nsenter ... readlink` to resolve path in container as @msau42  @jsafrane [suggested](https://github.com/kubernetes/kubernetes/pull/61489#pullrequestreview-110032850). This fixes B1:B6 and D6, , the rest will be addressed in https://github.com/kubernetes/kubernetes/pull/62102.
- C5:D5 marked `FAIL` because `tmpfs` filesystems can share same mount source, we cannot rely on it to check mount references. e2e tests passes due to we use unique mount source string in tests.
- A7:D7 marked `NOTNEEDED` because we don't set fsGroup on block devices in local plugin. (TODO: Should we set fsGroup on block device?)
- A8:D8 marked `NOTTESTED` because I didn't test it, I leave it to `pull-kubernetes-e2e-gce`. I think it should be same as `blockfs`.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-05-02 20:13:11 -07:00
Yecheng Fu
3748197876 Add more volume types in e2e and fix part of them.
- Add dir-link/dir-bindmounted/dir-link-bindmounted/blockfs volume types for e2e
tests.
- Return error if we cannot resolve volume path.
- Add GetFSGroup/GetMountRefs methods for mount.Interface.
- Fix fsGroup related e2e tests partially.
2018-05-02 10:31:42 +08:00
Yecheng Fu
27e2e32b00 Use shorter timeout if possible.
- Add PodStartShortTimeout and ClaimProvisionShortTimeout constants.
- Change framework.PodStartTimeout to framework.PodStartShortTimeout in
  persistent_volumes-local.go. Busybox image is very small, no need to
  wait for a long time.
2018-04-19 10:07:59 +08:00
Yecheng Fu
55ef18ad42 Report events to apiserver in local volume plugin.
- Add VolumeHost.GetEventRecorder() method
- Add related e2e tests
2018-04-18 11:19:36 +08:00
Michelle Au
bf70c0af4e Set slave mount propagation for local provisioner 2018-04-11 10:28:06 -07:00
Kubernetes Submit Queue
66ecee9cc0
Merge pull request #61402 from lcfang/test0319
Automatic merge from submit-queue (batch tested with PRs 61402, 61143, 61427, 60592). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

delete some unused code

**What this PR does / why we need it**:

delete some unused code

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-03-27 15:33:07 -07:00
Kubernetes Submit Queue
af22cc80e3
Merge pull request #61019 from ianchakeres/e2e-lv-prov-bind-disc
Automatic merge from submit-queue (batch tested with PRs 61644, 61624, 61743, 61019, 61287). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Added e2e test for local-volume provisioner that does not create PV for discovered non-bind-mounted filesystem.

**What this PR does / why we need it**:

For v2+ of the [local volume provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume) non-bind mounted filesystems in a discovery directory will no longer result in local PVs. This change was put in place to handle the non-atomic nature of other methods of adding directories (e.g. https://github.com/kubernetes-incubator/external-storage/issues/482).

This PR tests this change in behavior, and it validates that non-bind mounted directories within a discovery directory do NOT result in a local PV.

**Which issue(s) this PR fixes**:
Fixes https://github.com/kubernetes/kubernetes/issues/61020

**Special notes for your reviewer**:

This test can be executed using the following commands:
```
KUBE_FEATURE_GATES="BlockVolume=true" NUM_NODES=1 go run hack/e2e.go -- --up

go run hack/e2e.go -- --test --test_args='--ginkgo.focus=PersistentVolumes-local.*Local.*volume.*provisioner'
```

If you get the logs from a local volume provisioner pod, you will see the following log messages:
```
$ kubectl logs local-volume-provisioner-94ddb -n e2e-tests-persistent-local-volumes-test-6ls4z
<snip>
I0311 19:01:30.350504       1 controller.go:73] Controller started
E0311 19:01:30.350849       1 discovery.go:172] Path "/mnt/local-storage/notbindmount" is not an actual mountpoint
```


**Release note**:
```release-note
NONE
```
2018-03-27 06:41:20 -07:00
lcfang
a3c1dfba24 delete some unused code 2018-03-27 09:45:53 +08:00
Ian Chakeres
6e53b1a313 Added e2e test for local-volume provisioner that does not create PV for discovered non-bind-mounted filesystem.
Inspect daemonset provisioner logs for validation.

The logs are examined for the log lines showing that the provisioner discovered the directories and did NOT create a local PV.

This commit also adds SkipUnlessProvider supports SSH, which is required for local PV e2e tests.
2018-03-24 06:22:18 -07:00
Ian Chakeres
42a605510d Updated e2e lv-provisioner image to v2.1.0 2018-03-23 06:32:01 -07:00
Ian Chakeres
06462e91c8 Added e2e test for local volume provisioner discovery of new mountpoints while running. 2018-03-11 16:52:33 -07:00
Michelle Au
c4851c06d7 Cap max number of nodes to use for local PV e2e tests 2018-03-02 11:54:50 -08:00
Kubernetes Submit Queue
a274a7c2ad
Merge pull request #60436 from msau42/local-e2e-stress
Automatic merge from submit-queue (batch tested with PRs 59310, 60424, 60308, 60436, 60020). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Reduce number of pods created for local PV stress test

**What this PR does / why we need it**:
Local PV stress test is flaking.  Failed runs show that test is timing out at 47/50 pods.  Reduce the number of pods created by the test so that it's not so close to the max timeout.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:
I'll need to investigate further to see why processing the pods is so slow and ways to speed it up.  But for now, try to reduce flaking.

**Release note**:

```release-note
NONE
```
2018-02-27 07:11:51 -08:00
Michelle Au
7def517dd3 Reduce number of pods created for local PV stress test 2018-02-26 10:00:59 -08:00
Ian Chakeres
4812f9e5d8 Added local storage e2e test for VolumeMode: block
VolumeMode block requires alpha feature-gate BlockVolume=true

Added VolumeMode to e2e test framework for pv and pvc
Added volumeDevices to e2e test framework for block volumes
2018-02-25 16:39:09 -08:00
Michelle Au
3ce5388128 Add Local PV stress test 2018-02-23 17:43:06 -08:00
Michelle Au
c7884550b2 Add VolumeNodeAffinity to PersistentVolumeSpec 2018-02-16 17:54:10 -08:00
Di Xu
48388fec7e fix all the typos across the project 2018-02-11 11:04:14 +08:00
Michelle Au
64c139ddbb Rename and restructure local PV tests 2018-02-08 17:22:31 -08:00
Michelle Au
95f04eebee Fix local PV node affinity tests and only run once 2018-02-05 15:30:07 -08:00
dhilipkumars
aba725a391 Promote SS to apps/v1 2018-01-18 13:48:52 +05:30
Michelle Au
fc8020fd9e Fix local e2e test with changed error message 2018-01-05 11:29:28 -08:00
Serguei Bezverkhi
fe7a0c5a00 Fixing typo in e2e test variable 2018-01-04 11:45:37 -05:00
Serguei Bezverkhi
916631f8c3 Removing bootstrapper related e2e tests 2018-01-02 15:03:55 -05:00
Ian Chakeres
3087a10b7b Updated local-volume boostrapper/provisioner e2e test for new config format
The local-volume bootstrapper/provisioner configuration format changed in
https://github.com/kubernetes-incubator/external-storage/pull/352

This format is exposed in v2.0.0 of the provisioner and boostratpper images.

This PR updates the e2e test config, so that the existing tests continue
to work.
2017-12-27 11:35:07 -08:00
Rohit Jog
015e20cb15 e2e test layout changes for vsphere (#398) 2017-12-18 10:19:18 -08:00
Kubernetes Submit Queue
5ef385fd1f
Merge pull request #57016 from ianchakeres/lv-prov-bindmounts
Automatic merge from submit-queue (batch tested with PRs 57122, 57142, 57016, 56927, 56678). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Modified local-volume provisioner e2e test to use mounted volumes

**What this PR does / why we need it**: We are changing the local volume provisioner to discover only mount points, https://github.com/kubernetes-incubator/external-storage/pull/499. This PR shifts the volumes from directories to mount points for the provisioner e2e tests.

**Which issue(s) this PR fixes**: 
Fixes https://github.com/kubernetes/kubernetes/issues/57004

**Special notes for your reviewer**:


**Release note**:
```
NONE
```
2017-12-16 23:32:41 -08:00
Ian Chakeres
48684133ec Modified local-volume provisioner e2e tests to use bind mounts 2017-12-13 17:15:30 -08:00
supereagle
1fe05ac29a Use batch client with explicit version 2017-11-23 09:32:13 +08:00
Michelle Au
781b5a99c9 Local e2e tests 2017-11-21 23:19:44 -08:00
David Zhu
f780eefd39 Set up alternate mount point for SCSI/NVMe local SSD by UUID in /mnt/disks/by-uuid/, set up ability to have unformatted disk symlinked in /dev/disk/by-uuid/. Added tests. Preserved backwards compatibility. 2017-11-17 10:56:48 -08:00
Mike Danese
0117006a54
Revert "Add options for mounting SCSI or NVMe local SSD though Block or Filesystem and do all of that with UUID" 2017-11-16 07:51:38 -08:00
David Zhu
028258244c Set up alternate mount point for SCSI/NVMe local SSD by UUID in /mnt/disks/by-uuid/, set up ability to have unformatted disk symlinked in /dev/disk/by-uuid/. Added tests. Preserved backwards compatibility. 2017-11-14 17:14:41 -08:00
Kevin
4c8539cece use core client with explicit version globally 2017-10-27 15:48:32 +08:00
jianglingxia
23fbb70291 in persistent_volumes-local.go has the parentheses of var define 2017-10-25 17:08:03 +08:00
Michelle Au
697e78565c Update search string for failed scheduling 2017-10-09 16:10:31 -07:00
Michelle Au
ce19dda57a Remove local PV tests using TestContainerOutput because it doesn't wait for unmount 2017-10-09 09:50:59 -07:00
Serguei Bezverkhi
f3127fe25c e2e additional tests for local volume
Closes #51418
2017-09-25 16:30:37 -04:00
Serguei Bezverkhi
d904e52570 Adding e2e SELinux test for local storage
Also changing provisioner bootstrapper frpm Pod to Job
2017-08-28 19:12:17 -04:00
Ian Chakeres
f082908ed2 Added logic and tests for creating and using a tmpfs volume in localPV e2e tests
LocalVolumeType tmpfs added
Added checks to ensure tha volume created during setup contains expected testFileContent
Refactored tests out to avoid code duplication
Two different tests are performed with tmpfs:
-serial write and read in two different pods
-write and read in two different pods mounted at the same time

Fixed local storage test failures by integrating https://github.com/kubernetes/kubernetes/pull/50177
Switched NodeExec to SSH
2017-08-14 20:30:32 -07:00
Michelle Au
7778b0dfee Fix local storage test failures 2017-08-04 16:19:45 -07:00
Deyuan Deng
a8b195828c Fix pointer bug in local volume e2e test 2017-08-03 11:10:01 +08:00
Deyuan Deng
59c54805ae Add basic local volume provisioner e2e tests 2017-08-01 09:41:12 +08:00
Jacob Simpson
29c1b81d4c Scripted migration from clientset_generated to client-go. 2017-07-17 15:05:37 -07:00
Ian Chakeres
791970025e Added localPV e2e tests with two pods and refactored existing tests 2017-07-13 08:53:57 -04:00
Ryan Hitchman
cb0f5b8693 Change [Volume] tags to [sig-storage]. 2017-07-12 11:11:16 -07:00
Ryan Hitchman
d4dc49ba90 Make storage e2e tests start with [sig-storage] instead of [k8s.io].
This makes understanding sig ownership from a test name very easy for
tools and humans.
2017-07-12 11:11:16 -07:00
Chao Xu
60604f8818 run hack/update-all 2017-06-22 11:31:03 -07:00
Chao Xu
f4989a45a5 run root-rewrite-v1-..., compile 2017-06-22 10:25:57 -07:00
Michelle Au
f385dfcb3b Address review comments 2017-05-26 11:48:31 -07:00
Michelle Au
1a280993a9 Local persistent volume basic e2e 2017-05-22 14:46:03 -07:00