Commit Graph

735 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
38c659eb9f Merge pull request #111534 from claudiubelu/unittests-7
unittests: Fixes unit tests for Windows
2022-10-24 06:30:25 -07:00
danishprakash
f10f4d372c pv_controller: update tests for multiple storageclasses
Signed-off-by: danishprakash <grafitykoncept@gmail.com>
2022-10-19 09:33:44 +05:30
danishprakash
f12325add3 pkg/admission/storageclass: pick random storageclass if >1 present
Signed-off-by: danishprakash <grafitykoncept@gmail.com>
2022-10-19 09:30:48 +05:30
Kubernetes Prow Robot
b6d89e756a Merge pull request #112571 from claudiubelu/fix-nested-mountpoints
Fixes getNestedMountpoints grouping
2022-10-18 18:57:11 -07:00
Claudiu Belu
6e9f428547 Fixes getNestedMountpoints grouping
Currently, getNestedMountpoints sorts using sort.Strings, which would
sort the following strings in this exact order:

/dir/nested, /dir/nested-vol, /dir/nested.vol, /dir/nested/double, /dir/nested2

Because of this, "nested/double" is returned as well, even though it shouldn't
have been. This issue is worse on Windows, where the path separator is typically
the backslash.

This commit addresses this issue by checking if a nested mount point has been
previously seen or not.
2022-10-18 15:19:17 +03:00
Matthew Cary
3993c23a74 Make mount ref search more robust
Change-Id: Id28c2d1c8e996c10e4ad19a993ebbe75b142c1af
2022-09-20 17:57:39 -07:00
Humble Chirammal
f22a74aa6a various corrections in pkg/volume
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-16 16:42:06 +05:30
Akanksha Kumari
86fa479273 Call SetupDevice only if Volume is not globally Mounted 2022-09-12 23:00:00 +05:30
Claudiu Belu
49ef27009d unittests: Fixes unit tests for Windows
Currently, there are some unit tests that are failing on Windows due to
various reasons:

- Windows file permissions do not work the same way as the Linux ones.
- cp does not exist on Windows, and xcopy should be used instead.
- Get-Item does not work for hidden files / folders like AppData, but
  works if given the -Force flag.
2022-08-26 14:39:56 +03:00
ZhangKe10140699
593f6c9fcc fix nestedPendingOperations mount and umount parallel bug 2022-08-26 09:29:17 +08:00
Kubernetes Prow Robot
69136c0c81 Merge pull request #111894 from wongma7/pvcnpd
Fix PVC nil pointer dereference during migration-enabled volume expand
2022-08-23 20:08:37 -07:00
Kubernetes Prow Robot
07bca2d791 Merge pull request #67782 from dims/yank-in-tree-openstack-cloud-provider
Remove in-tree openstack cloud provider
2022-08-23 18:59:48 -07:00
Kubernetes Prow Robot
71e534c580 Merge pull request #111527 from mengjiao-liu/clean-prometheus-in-volume
Cleanup: remove prometheus dependencies for volume
2022-08-23 16:05:31 -07:00
Davanum Srinivas
9bbf01bae9 Remove references to openstack and cinder
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-08-22 16:43:14 -04:00
Matthew Wong
a322a708f3 Fix PVC nil pointer dereference during migration-enabled volume expand 2022-08-17 11:32:22 -07:00
Kubernetes Prow Robot
64ed914545 Merge pull request #111258 from dobsonj/kep-596-ga-feature-flag
KEP-596: Move CSIInlineVolume feature to GA
2022-08-05 13:54:30 -07:00
Kubernetes Prow Robot
11d4cb52f2 Merge pull request #111693 from kinvolk/rata/userns-support-2022
volume: FeatureGate access to GetHostIDsForPod()
2022-08-05 09:37:48 -07:00
Jonathan Dobson
5f774832a5 Move CSIInlineVolume feature to GA 2022-08-04 13:06:30 -06:00
Rodrigo Campos
4267f2ee0c volume: FeatureGate access to GetHostIDsForPod()
After the userns PR got merged:
	https://github.com/kubernetes/kubernetes/pull/111090

gnufied decided it might be safer if we feature gate this part of the
code, due to the kubelet volume host type assertion.

That is a great catch and this patch just moves the code inside the
feature gate if.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2022-08-04 14:08:29 +02:00
Jan Safranek
f9c7ce5b9c Add unit tests for DesiredStateOfWorldPopulator 2022-08-04 10:51:59 +02:00
Jan Safranek
39f0d78714 Add unit tests for GetPodVolumeNames 2022-08-04 10:51:57 +02:00
Jan Safranek
a01e720a1a Rename IsRWOP
To be able to update content of the function to other access modes when we
implement SELinux mount for more of them.
2022-08-04 10:51:54 +02:00
Jan Safranek
17d850ee0e Add interface for SELinuxOptionsToFileLabel
github.com/opencontainers/selinux/go-selinux needs OS that supports SELinux
and SELinux enabled in it to return useful data, therefore add an interface
in front of it, so we can mock its behavior in unit tests.
2022-08-04 10:51:51 +02:00
Jan Safranek
de7f5b66ed Fix existing unit tests 2022-08-04 10:51:44 +02:00
Jan Safranek
48b0751269 Add SELinux context tracking to volume manager
Both ActualStateOfWorld and DesiredStateOfWorld must track SELinux context
of volume mounts.
2022-08-04 10:51:41 +02:00
Jan Safranek
4cfb277e8b Implement mounting with -o context= in iSCSI volume plugin 2022-08-04 10:51:31 +02:00
Kubernetes Prow Robot
4b6134b6dc Merge pull request #111090 from kinvolk/rata/userns-support-2022
Add support for user namespaces phase 1 (KEP 127)
2022-08-03 13:05:47 -07:00
Rodrigo Campos
695b30e91c volume: use GetHostIDsForPod()
This commit only changes the UID/GID if user namespaces is enabled. When
it is enabled, it changes it so the hostUID and hostGID that are mapped
to the currently used UID/GID. This is needed so volumes are created
with the hostUID/hostGID and the user inside the container can read
them.

If user namespaces are disabled for this pod, this is a no-op: there is
no user namespace mapping, so the hostUID/hostGID are the same as inside
the container.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2022-08-03 19:53:22 +02:00
Roman Bednar
42b24b7baf move storage class helpers to utils 2022-08-02 20:52:04 +02:00
Kubernetes Prow Robot
c396744a6a Merge pull request #110688 from jsafrane/test-iscsi
Fix iSCSI over ipv6
2022-08-02 09:15:56 -07:00
Kubernetes Prow Robot
cf2800b812 Merge pull request #111402 from verb/111030-ec-ga
Promote EphemeralContainers feature to GA
2022-07-29 19:29:20 -07:00
Mengjiao Liu
b449b44856 Cleanup: remove prometheus dependencies for volume
Co-authored-by: gavinfish <drfish.me@gmail.com>
2022-07-29 13:11:45 +08:00
Kubernetes Prow Robot
9ad4c5c0a0 Merge pull request #110670 from gnufied/fix-pod-deletion-terminating
Fix pod stuck in termination state when mount fails or gets skipped after kubelet restart
2022-07-27 06:31:29 -07:00
Davanum Srinivas
a9593d634c Generate and format files
- Run hack/update-codegen.sh
- Run hack/update-generated-device-plugin.sh
- Run hack/update-generated-protobuf.sh
- Run hack/update-generated-runtime.sh
- Run hack/update-generated-swagger-docs.sh
- Run hack/update-openapi-spec.sh
- Run hack/update-gofmt.sh

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-07-26 13:14:05 -04:00
Lee Verberne
d238e67ba6 Remove EphemeralContainers feature-gate checks 2022-07-26 02:55:30 +02:00
Hemant Kumar
835e8ccc76 Use CheckAndMarkAsUncertainViaReconstruction for uncertain volumes
Also only remove volumes from skippedDuringReconstruction only if
volume was marked as attached.
2022-07-22 20:11:37 -04:00
Hemant Kumar
b8257e8c01 Address review comments 2022-07-22 20:04:51 -04:00
Hemant Kumar
eb071c2755 Fix code to process volumes which were skipped during reconstruction 2022-07-22 20:04:51 -04:00
Yubao Liu
834ce75f88 Make sure auto-mounted subpath mount source is already mounted
For example, we have two filesystems, one is embedded into another:

/a/test		# first filesystem with a directory "/a/test/b2"
/a/test/b2	# not auto mounted yet second filesystem, notice "/a/test/b2" is
	        # a new directory on this filesystem after this filesystem is mounted

For subpath mount "/a/test/b2",  `openat("/a/test", "b2")` gets directory "b2" on the first
filesystem, then "mount -c" will use this wrong directory as source directory.

`fstatat("/a/test", "b2/")` forces triggering auto mount of second filesystem, so
`openat("/a/test", "b2")` gets correct source directory for "mount -c".

This fixes issue https://github.com/kubernetes/kubernetes/issues/110818#issuecomment-1175736550

References:

1. https://man7.org/linux/man-pages/man2/openat.2.html

   If pathname refers to an automount point that has not yet
   been triggered, so no other filesystem is mounted on it,
   then the call returns a file descriptor referring to the
   automount directory without triggering a mount.

2. https://man7.org/linux/man-pages/man2/open_by_handle_at.2.html

   name_to_handle_at() does not trigger a mount when the final
   component of the pathname is an automount point.  When a
   filesystem supports both file handles and automount points, a
   name_to_handle_at() call on an automount point will return with
   error EOVERFLOW without having increased handle_bytes.  This can
   happen since Linux 4.13 with NFS when accessing a directory which
   is on a separate filesystem on the server.  In this case, the
   automount can be triggered by adding a "/" to the end of the
   pathname.
2022-07-12 22:09:11 +08:00
Jan Safranek
2efe67e3a9 Fix iSCSI over ipv6
Addresses in the Kubernetes API objects (PV, Pod) have `[]` around IPv6
addresses, while addresses in /dev/ and /sys/ have addresses without them.

Add/remove `[]` as needed.
2022-06-22 14:53:01 +02:00
Jonathan Dobson
daa181d92e kubelet: fix volume reconstruction for CSI ephemeral volumes
This resolves a couple of issues for CSI volume reconstruction.
1. IsLikelyNotMountPoint is known not to work for bind mounts and was
   causing problems for subpaths and hostpath volumes.
2. Inline volumes were failing reconstruction due to calling
   GetVolumeName, which only works when there is a PV spec.
2022-06-01 14:22:57 -06:00
Davanum Srinivas
50bea1dad8 Move from k8s.gcr.io to registry.k8s.io
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-05-31 10:16:53 -04:00
Kubernetes Prow Robot
3c5cc15686 Merge pull request #103911 from swiftslee/log-format
Cleanup: use klog.Info in pkg/volume/util/operationexecutor/operation_generator.go
2022-05-03 17:17:32 -07:00
Hemant Kumar
5da524d973 Fix error for inline migrated volumes
Inline migrated volumes report a PV, even though they are not backed
by PV.
2022-04-04 13:14:29 -04:00
Hemant Kumar
6bc8275677 Add node name to NodeExpand events 2022-03-28 12:58:59 -04:00
Hemant Kumar
dee48d3c36 Add more tests for volume recovery cases 2022-03-28 11:59:43 -04:00
Hemant Kumar
a99466ca86 check existing size before querying new size from api-server 2022-03-28 11:32:49 -04:00
Hemant Kumar
ed217f4140 rename SetVolumeSize to InitializeVolumeSize 2022-03-28 11:32:49 -04:00
Hemant Kumar
4d52dbb9f8 Remove legacyCallNodeExpandOnPlugin when RecoverVolumeExpansionFailure 2022-03-28 11:32:49 -04:00
Hemant Kumar
7a43406138 Do not update PVC if it already has updated size 2022-03-28 11:32:49 -04:00