Commit Graph

28 Commits

Author SHA1 Message Date
Yecheng Fu
0961891a7a report UnschedulableAndUnresolvable status instead of an error when PVCs can't find bound
persistent volumes

This is an user error. We should't report an error.
2020-11-05 10:28:40 +08:00
Aldo Culquicondor
7fb40fc03c Wrap errors on VolumeBinding plugin
Signed-off-by: Aldo Culquicondor <acondor@google.com>
Change-Id: I23053528ac6857124fddd7f9fa26e122202ff4bd
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-09-10 16:22:16 -04:00
Patrick Ohly
ff3e5e06a7 GenericEphemeralVolume: initial implementation
The implementation consists of
- identifying all places where VolumeSource.PersistentVolumeClaim has
  a special meaning and then ensuring that the same code path is taken
  for an ephemeral volume, with the ownership check
- adding a controller that produces the PVCs for each embedded
  VolumeSource.EphemeralVolume
- relaxing the PVC protection controller such that it removes
  the finalizer already before the pod is deleted (only
  if the GenericEphemeralVolume feature is enabled): this is
  needed to break a cycle where foreground deletion of the pod
  blocks on removing the PVC, which waits for deletion of the pod

The controller was derived from the endpointslices controller.
2020-07-09 23:29:24 +02:00
Patrick Ohly
0efbbe8555 CSIStorageCapacity: check for sufficient storage in volume binder
This uses the information provided by a CSI driver deployment for
checking whether a node has access to enough storage to create the
currently unbound volumes, if the CSI driver opts into that checking
with CSIDriver.Spec.VolumeCapacity != false.

This resolves a TODO from commit 95b530366a.
2020-07-06 19:20:10 +02:00
Yecheng Fu
2cdc63aeaa cleanup in volume scheduling pkg
- remove duplicated function claimToClaimKey
- cache Lister
- don't add indexer for PVCAssumeCache
2020-07-01 15:01:10 +08:00
Yecheng Fu
ee4d7410be Share pod volume binding cache via framework.CycleState 2020-06-23 22:18:33 +08:00
Kubernetes Prow Robot
9c3f648300
Merge pull request #91705 from mrkm4ntr/revert-assumed-in-unreserve
Revert assumed PVs and PVCs in unreserve extension point
2020-06-19 21:50:54 -07:00
Shintaro Murakami
79ab958996 Revert assumed PVs and PVCs in unreserve extension point 2020-06-19 17:39:42 +09:00
Yecheng Fu
814a6f2acd remove FakeVolumeBinderConfig and test new statues and states 2020-06-12 10:00:19 +08:00
Yecheng Fu
c4138361e4 Fail fast in PreFilter phase and return UnschedulableAndUnresolvable if immediate PVCs are not bound 2020-06-12 10:00:19 +08:00
Kubernetes Prow Robot
d94acda5ee
Merge pull request #91296 from cofyc/fix90962-cleanup-volumescheduling
volumescheduling: update comments to reflect latest change
2020-05-20 19:42:10 -07:00
Yecheng Fu
36d1365af5 update comments in volumescheduling pkg to reflect latest change 2020-05-20 22:23:08 +08:00
Yecheng Fu
f685af32e2 SchedulerVolumeBinder: don't modify assumed pod in AssumePodVolumes 2020-05-20 21:18:43 +08:00
Davanum Srinivas
442a69c3bd
switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
louisgong
c6b94e4606 refactor volume binder 2020-02-29 12:03:39 +08:00
Patrick Ohly
6329b17d2f volume scheduler: introduce special string type
This makes it possible to search for the special strings more easily
(https://github.com/kubernetes/kubernetes/pull/88230#discussion_r382367043).
2020-02-28 10:09:19 +01:00
Patrick Ohly
6eb0b034ac volume scheduler: move reason strings into volume code
The scheduler doesn't really need to know in detail which reasons
rendered a node unusable for a node. All it needs from the volume
binder is a list of reasons that it then can present to the user.

This seems a bit cleaner. But the main reason for the change is that
it simplifies the checking of CSI inline volumes and perhaps later
capacity checking. Both will lead to new failure reasons, which then
can be added without changing the interface.
2020-02-28 10:09:18 +01:00
Mike Danese
25651408ae generated: run refactor 2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08:00
Fabio Bertinatto
bbfc6ef450 Convert volume binder to use CSINode GA 2019-11-13 14:01:01 +01:00
Fabio Bertinatto
7cba40fb09 Use CSI translation lib in VolumeBinderPredicate 2019-11-13 14:01:01 +01:00
Yecheng Fu
b5889ee82c update internal error message 2019-10-06 14:37:31 +08:00
Ted Yu
94d4bf1287 Return proper error message when BindPodVolumes fails 2019-10-04 04:36:48 -07:00
Yecheng Fu
8a7607a308 volume scheduling: move metrics code into a separate pkg 2019-09-03 14:38:26 +08:00
Shintaro Murakami
c94e800008 Use v1helper.GetPersistentVolumeClaimClass for compatibility 2019-07-24 10:35:00 +09:00
wojtekt
fd819f8fdc Move APIObjectVersioner 2019-06-28 21:16:49 +02:00
Yecheng Fu
3315474f55 Fix go lint failures in a few packages
- pkg/controller/volume/persistentvolume/testing
- pkg/controller/volume/scheduling
2019-05-05 09:45:25 +08:00
Yecheng Fu
842fed658c Refactor PV scheduling library into separate package 2019-05-02 14:45:52 +08:00