k3s/pkg/volume
Kubernetes Submit Queue 6a9a93d469 Merge pull request #32242 from jingxu97/bug-wrongvolume-9-2
Automatic merge from submit-queue

Fix race condition in updating attached volume between master and node

This PR tries to fix issue #29324. The cause of this issue is that a race
condition happens when marking volumes as attached for node status. This
PR tries to clean up the logic of when and where to mark volumes as
attached/detached. Basically the workflow as follows,
1. When volume is attached sucessfully, the volume and node info is
added into nodesToUpdateStatusFor to mark the volume as attached to the
node.
2. When detach request comes in, it will check whether it is safe to
detach now. If the check passes, remove the volume from volumesToReportAsAttached
to indicate the volume is no longer considered as attached now.
Afterwards, reconciler tries to update node status and trigger detach
operation. If any of these operation fails, the volume is added back to
the volumesToReportAsAttached list showing that it is still attached.

These steps should make sure that kubelet get the right (might be
outdated) information about which volume is attached or not. It also
garantees that if detach operation is pending, kubelet should not
trigger any mount operations.
2016-09-12 15:29:38 -07:00
..
aws_ebs add encryption to aws provisioner and cloud provider 2016-08-18 15:42:44 -04:00
azure_dd support Azure data disk volume 2016-08-23 13:23:07 +00:00
azure_file Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
cephfs Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
cinder support storage class in Cinder provisioner 2016-08-22 09:28:29 -04:00
configmap Fix coding style 2016-08-20 14:58:56 -03:00
downwardapi Add spec.nodeName and spec.serviceAccountName to downward env var 2016-08-20 15:50:36 -04:00
empty_dir This change supports robust kubelet volume cleanup 2016-08-15 11:29:15 -07:00
fc Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
flexvolume This change supports robust kubelet volume cleanup 2016-08-15 11:29:15 -07:00
flocker Adds myself to flocker volume plugin owners 2016-08-19 17:01:12 +01:00
gce_pd GCE changes for the new provisioning model 2016-08-18 10:36:50 +02:00
git_repo This change supports robust kubelet volume cleanup 2016-08-15 11:29:15 -07:00
glusterfs Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
host_path Dynamic provisioning V2 controller, provisioners, docs and tests. 2016-08-18 10:36:49 +02:00
iscsi Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
nfs Make rootfs the assignee for various volumes 2016-08-23 14:40:05 -07:00
quobyte Initial Quobyte support 2016-08-18 17:13:50 +02:00
rbd Merge pull request #31251 from rootfs/rbd-prov3 2016-09-10 07:03:14 -07:00
secret Fix coding style 2016-08-20 14:58:56 -03:00
testing Fix default resource limits (node capacities) for downward api volumes 2016-08-16 14:41:17 -04:00
util Merge pull request #32242 from jingxu97/bug-wrongvolume-9-2 2016-09-12 15:29:38 -07:00
vsphere_volume Implements Attacher Plugin Interface for vSphere 2016-08-19 00:28:55 -07:00
OWNERS Move blunderbuss assignees into tree 2016-03-02 20:46:32 -05:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
metrics_cached.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_du.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_du_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_nil.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_nil_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_statfs.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
plugins.go Dynamic provisioning V2 controller, provisioners, docs and tests. 2016-08-18 10:36:49 +02:00
plugins_test.go Print/log pointers of structs with %#v instead of %+v 2016-08-01 22:27:56 +02:00
util.go Merge pull request #29619 from dims/fix-issue-23163 2016-08-06 01:44:15 -07:00
util_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
volume.go Fix typos in volume.go 2016-07-11 12:32:32 +02:00
volume_linux.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
volume_unsupported.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00