kubernetes/pkg/controller
Jing Xu efaceb28cc Fix race condition in updating attached volume between master and node
This PR tries to fix issue #29324. This cause of this issue is 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 13:51:08 -07:00
..
certificates add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
daemon Revert "daemonset controller should respect taints" 2016-09-01 12:54:16 -07:00
deployment add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
disruption add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
endpoint Logging for service restart e2e clarity 2016-09-01 14:49:52 -07:00
framework Collapse duplicate informer creation paths 2016-08-04 09:02:13 +02:00
garbagecollector debugging gc 2016-08-26 15:58:33 -07:00
job add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
namespace Merge pull request #31917 from derekwaynecarr/delete-pods-last 2016-09-02 00:50:02 -07:00
node Remove unused argument to NodeController.Run 2016-08-30 14:24:56 +02:00
petset add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
podautoscaler Use List objects for metrics in kubectl top and HPA 2016-08-19 17:26:50 +02:00
podgc Use Go canonical import paths 2016-07-16 13:48:21 -04:00
replicaset add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
replication add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
resourcequota add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
route Use Go canonical import paths 2016-07-16 13:48:21 -04:00
scheduledjob Fix the bug that SJ sees finished jobs as unexpected 2016-08-25 17:01:22 -07:00
service persist services need to be retried in service controller cache. 2016-08-23 14:49:54 +08:00
serviceaccount add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
volume Fix race condition in updating attached volume between master and node 2016-09-12 13:51:08 -07:00
controller_ref_manager.go fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
controller_utils.go Don't validate selector that is already validated 2016-08-22 09:39:32 +02:00
controller_utils_test.go fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
lookup_cache.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
OWNERS Remove myself from a bunch of OWNERS files, as I am too overloaded 2016-05-11 13:34:51 -07:00