Commit Graph

791 Commits

Author SHA1 Message Date
carlory
ae90a69677 volumeattributesclass and core api changes 2023-10-31 11:18:56 +08:00
Chris Henzie
2dbd405583 Graduate ReadWriteOncePod to GA 2023-10-20 10:40:39 -07:00
Kubernetes Prow Robot
7824ac0f3e Merge pull request #114336 from claudiubelu/fixes-test-get-file-type
unittests: Fixes hostutil.GetFileType for Windows
2023-10-17 20:07:39 +02:00
Jan Safranek
7fc11f47ff Mark a volume as uncertain-attached after detach error
Volume that failed Detach() should not be marked as attached, CSI
external-attacher is probably still trying to detach it.

Mark it uncertain instead and wait for Detach() to succeed.
2023-09-13 10:03:28 +02:00
Kubernetes Prow Robot
42357dd257 Merge pull request #120128 from ritazh/format-mount
Use environment variables for parameters in Powershell
2023-08-23 10:40:01 -07:00
James Sturtevant
2bede058f9 Use environment varaibles for parameters in Powershell
As a defense in depth, pass parameters to powershell via environment variables.

Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-08-23 05:57:46 -07:00
James Sturtevant
c761c16562 Use env varaibles for passing path
The subpath could be passed a powershell subexpression which would be executed by kubelet with privilege.  Switching to pass the arguments via environment variables means the subexpression won't be evaluated.

Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-08-23 05:57:11 -07:00
Kubernetes Prow Robot
9aba98ad71 Merge pull request #119948 from liyuerich/storageclass
add UT for storageclass
2023-08-22 10:03:06 -07:00
Patrick Ohly
2472291790 api: introduce separate VolumeResourceRequirements struct
PVC and containers shared the same ResourceRequirements struct to define their
API. When resource claims were added, that struct got extended, which
accidentally also changed the PVC API. To avoid such a mistake from happening
again, PVC now uses its own VolumeResourceRequirements struct.

The `Claims` field gets removed because risk of breaking someone is low:
theoretically, YAML files which have a claims field for volumes now
get rejected when validating against the OpenAPI. Such files
have never made sense and should be fixed.

Code that uses the struct definitions needs to be updated.
2023-08-21 15:31:28 +02:00
liyuerich
a6a1f070e7 Signed-off-by: liyuerich <yue.li@daocloud.io>
add UT for storageclass
2023-08-18 22:18:11 +08:00
Hemant Kumar
2e217e8cea Reduce duplication between helpers for checking featuregate 2023-07-17 15:34:45 -04:00
Hemant Kumar
f01a1faa8c Update comments about allocatedResourceStatus
Update API types with more comments
2023-07-17 15:30:36 -04:00
Hemant Kumar
e011187114 Update code to use new generic allocatedResourceStatus field 2023-07-17 15:30:35 -04:00
Kubernetes Prow Robot
52457842d1 Merge pull request #117055 from cyclinder/csi_migration
remove CSI-migration gate
2023-06-28 04:28:31 -07:00
Kubernetes Prow Robot
a48bcc06fe Merge pull request #117064 from RomanBednar/multiple-defaults
storage class assignment should not ignore errors
2023-06-23 03:09:23 -07:00
Stephen Kitt
ab75e48494 storage: stop using deprecated io/ioutil
This replaces deprecated ioutil variables and functions as follows:

* ioutil.ReadDir -> os.ReadDir
* ioutil.ReadFile -> os.ReadFile
* ioutil.TempDir -> os.MkdirTemp
* ioutil.TempFile -> os.CreateTemp
* ioutil.WriteFile -> os.WriteFile

The ReadDir conversion involves an API change, the replacement
function returns a slice of fs.DirEntry instead of fs.FileInfo.
Where appropriate, the surrounding code has been adjusted; mostly,
that means using DirEntry.Type() instead of FileInfo.Mode().
Applying this change to the IoUtil interface would mean changing its
API, so this is left for later.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2023-06-20 16:49:03 +02:00
cyclinder
8e4228a8c1 remove CSI-migration gate 2023-06-04 18:40:17 +08:00
Claudiu Belu
b4d1440063 unittests: Fixes hostutil.GetFileType for Windows
GetFileType is meant to return the type of the given file by using os.Stat.
However, os.Stat doesn't work on Windows for Unix Sockets, causing an error to occur:

[2-Socket Test] unexpected error :
CreateFile C:\Users\Administrator\AppData\Local\Temp\test-get-filetype-2776877299\mt.sock:
The file cannot be accessed by the system.

This is a known issue and we're already using a workaround for this in
pkg/kubelet/util/util_windows.go.

This commit fixes this issue for GetFileType on Windows.
2023-06-01 16:02:07 +00:00
Kubernetes Prow Robot
189fe3f3e6 Merge pull request #114806 from qingwave/fix-volume-util
fix typo in volume util
2023-05-18 08:32:34 -07:00
Kubernetes Prow Robot
347480b0c6 Merge pull request #117099 from UiPath/fix-qos-limit
kubelet: fix setup of emptyDir with sizeLimit (fsquota)
2023-04-11 20:21:10 -07:00
Kubernetes Prow Robot
4893c66a48 Merge pull request #116134 from cvvz/fix-111933
fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully.
2023-04-11 15:35:41 -07:00
Alexandru Matei
c77ad3116f kubelet: fix setup of emptyDir with sizeLimit (fsquota)
When size limit is specified subsequent invocations will fail because
ibytes is changed to -1 and stored internally in quotaSizeMap during the
first call.  Later invocation will see that the requested size doesn't
match the actual stored value and it will fail.

Signed-off-by: Alexandru Matei <alexandru.matei@uipath.com>
2023-04-07 11:07:51 +03:00
Roman Bednar
731068288e correct storage class selection message
The function does not necessarily choose class based on the creation
timestamp but can also pick alphabetically first if the timestamps are
equal. The info message should not say it's choosing the newest because
it is misleading.
2023-04-03 11:27:59 +02:00
Kubernetes Prow Robot
f7bcff44cd Merge pull request #116425 from jsafrane/flip-selinux
Flip SELinuxMountReadWriteOncePod to Beta
2023-03-14 16:34:41 -07:00
Kubernetes Prow Robot
6a111bebe2 Merge pull request #116377 from kinvolk/rata/userns
KEP-127: user namespace support for stateless pods
2023-03-14 10:40:43 -07:00
Jan Safranek
a84dc2d5c5 Flip SELinuxMountReadWriteOncePod to Beta
And enable all e2e tests by default. They're still behind
`[Feature:SELinux]` tag to ensure the underlying OS supports SELinux.
2023-03-14 14:32:38 +01:00
杨军10092085
361e4ff0fa volume: use contextual logging 2023-03-14 08:37:30 +08:00
Rodrigo Campos
8af3cce7fe kubelet: remove GetHostIDsForPod()
Now KEP-127 relies on idmap mounts to do the ID translation and we won't
do any chowns in the kubelet.

This patch just removes the usage of GetHostIDsForPod() in
operationexecutor to do the chown, and also removes the
GetHostIDsForPod() method from the kubelet volume interface.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2023-03-13 22:28:03 +01:00
Kubernetes Prow Robot
ba7f4e2fee Merge pull request #115314 from UiPath/fix-quota-monitoring
kubelet: Fix fs quota monitoring on volumes
2023-03-09 22:42:39 -08:00
weizhichen
a6ffbb41f8 Squashed commit of the following:
commit 1b3ae27e7af577372d5aaaf28ea401eb33d1c4df
Author: weizhichen <weizhichen@microsoft.com>
Date:   Thu Mar 9 08:39:04 2023 +0000

    fix

commit 566e139308e3cec4c9d4765eb4ccc3a735346c2e
Author: weizhichen <weizhichen@microsoft.com>
Date:   Thu Mar 9 08:36:32 2023 +0000

    fix unit test

commit 13a58ebd25b824dcf854a132e9ac474c8296f0bf
Author: weizhichen <weizhichen@microsoft.com>
Date:   Thu Mar 2 03:32:39 2023 +0000

    add unit test

commit c984e36e37c41bbef8aec46fe3fe81ab1c6a2521
Author: weizhichen <weizhichen@microsoft.com>
Date:   Tue Feb 28 15:25:56 2023 +0000

    fix imports

commit 58ec617e0ff1fbd209ca0af3237017679c3c0ad7
Author: weizhichen <weizhichen@microsoft.com>
Date:   Tue Feb 28 15:24:21 2023 +0000

    delete CheckVolumeExistenceOperation

commit 0d8cf0caa78bdf1f1f84ce011c4cc0e0de0e8707
Author: weizhichen <weizhichen@microsoft.com>
Date:   Tue Feb 28 14:29:37 2023 +0000

    fix 111933
2023-03-09 09:53:38 +00:00
torredil
6aebda9b1e Remove AWS legacy cloud provider + EBS in-tree storage plugin
Signed-off-by: torredil <torredil@amazon.com>
2023-03-06 14:01:15 +00:00
Alexandru Matei
b225d6c7ac kubelet: Fix fs quota monitoring on volumes
File system quota monitoring setup fails on subsequent invocations,
each time quota setup is invoked a new random UID is generated for
each pod and compared with the previously stored UID for the folder.
Fix it by keeping track of mapping between internal uid generated
for a pod and actual external pod uid.

Signed-off-by: Alexandru Matei <alexandru.matei@uipath.com>
2023-02-27 13:00:06 +02:00
Kubernetes Prow Robot
58dec1fa4e Merge pull request #112624 from pacoxu/fix-fsquota-bug
fsquota: only generate pod uuid is nil
2023-01-31 12:06:49 -08:00
Kubernetes Prow Robot
f9a3fd2810 Merge pull request #115346 from gnufied/set-staging-path-expansion
Set node_stage_path whenever available
2023-01-30 21:38:47 -08:00
Kubernetes Prow Robot
ad2a9f2f33 Merge pull request #113863 from msau42/owners
update sig-storage owners
2023-01-30 10:10:50 -08:00
Paco Xu
894d4b4aaf fsquota: only generate pod uuid is nil 2023-01-28 14:09:31 +08:00
Fabio Bertinatto
b382148915 Trim out suffix added to backing file path of loopback device
When a block device, say /dev/sdc, is unexpectedly disconnected from a node,
the corresponding backing file path found at /sys/block/loop*/backing_file gets
a "(deleted)" suffix. This patch trims that suffix out, allowing the Kubelet to
unmount the volume correctly.
2023-01-27 10:53:00 -03:00
Kubernetes Prow Robot
4d9e8f7695 Merge pull request #115304 from gnufied/fix-version-skew-for-older-expansion-controller
Use expansion without recovery if allocatedResource/resizeStatus unset
2023-01-27 02:36:25 -08:00
Hemant Kumar
f052ea3ec3 Set node_stage whenever available 2023-01-26 15:27:20 -05:00
Hemant Kumar
402fe4ec9b use expansion without recovery if allocatedResource is not unset 2023-01-26 14:25:00 -05:00
Jurj Andrei George
8f6fa99b49 Skip failing Windows unit tests (volume)
As discussed during the SIG Testing meeting on January 10, 2023, failing
Windows unit tests are now skipped.
These changes should be reverted when the unit tests wil get fixed.
Mentioned SIG Testing meeting:
https://docs.google.com/document/d/1z8MQpr_jTwhmjLMUaqQyBk1EYG_Y_3D4y4YdMJ7V1Kk/edit#heading=h.qwblxf2uhgoo
2023-01-24 11:02:44 +02:00
HirazawaUi
79b799a0f3 delete unused functions in pkg/volume directory 2023-01-16 21:19:11 +08:00
qingwave
26f0325734 fix typo in volume util
Signed-off-by: qingwave <isguory@gmail.com>
2023-01-13 02:37:14 +00:00
Kubernetes Prow Robot
cf272cf2c6 Merge pull request #110931 from claudiubelu/adds-unittests-3
tests: Ports volume unit tests to Windows
2023-01-05 05:31:58 -08:00
Claudiu Belu
96e99f564a tests: Ports volume unit tests to Windows (part 2)
Ports the metrics_du unit tests to Windows.
Ports the hostutil unit tests to Windows.
2023-01-01 00:18:31 +00:00
Kubernetes Prow Robot
685d639cb5 Merge pull request #114464 from Nordix/issue-114461
Set permissions for timestamp directory before publishing update to avoid permission denied
2022-12-24 16:11:26 -08:00
Tero Saarni
96306f144a Set permissions on volume before publishing update
This change fixes a race condition that was caused by setting the file owner,
group and mode non-atomically, after the updated files had been published.

Users who were running non-root containers, without GID 0 permissions, and
had removed read permissions from other users by setting defaultMode: 0440 or
similar, were getting intermittent permission denied errors when accessing
files on secret or configmap volumes or service account tokens on projected
volumes during update.
2022-12-24 07:59:41 +02:00
Kubernetes Prow Robot
94fd106a17 Merge pull request #110453 from claudiubelu/unittests-4
unittests: Fixes unit tests for Windows (part 4)
2022-12-16 06:16:16 -08:00
Claudiu Belu
4dc7a260ec unittests: Fixes unit tests for Windows (part 4)
Currently, there are some unit tests that are failing on Windows due to
various reasons:

- paths not properly joined (filepath.Join should be used).
- files not closed, which means that they cannot be removed / renamed.
- time.Now() is not as precise on Windows, which means that 2
  consecutive calls may return the same timestamp.
2022-11-29 16:32:26 +00:00
Yibo Zhuang
380c7f248e scheduler volumebinding: leverage PreFilterResult
This change will leverage the new PreFilterResult
to reduce down the list of eligible nodes for pod
using Bound Local PVs during PreFilter stage so
that only the node(s) which local PV node affinity
matches will be cosnidered in subsequent scheduling
stages.

Today, the NodeAffinity check is done during Filter
which means all nodes will be considered even though
there may be a large number of nodes that are not
eligible due to not matching the pod's bound local
PV(s)' node affinity requirement. Here we can
reduce down the node list in PreFilter to ensure that
during Filter we are only considering the reduced
list and thus can provide a more clear message to
users when node(s) are not available for scheduling
since the list only contains relevant nodes.

If error is encountered (e.g. PV cache read error) or
if node list reduction cannot be done (e.g. pod uses
no local PVs), then we will still proceed to consider
all nodes for the rest of scheduling stages.

Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
2022-11-17 21:37:24 -08:00