kubernetes/pkg/kubelet/volumemanager
Kubernetes Submit Queue aacc9729f1 Merge pull request #44781 from wongma7/outervolumespec
Automatic merge from submit-queue (batch tested with PRs 45382, 45384, 44781, 45333, 45543)

Ensure desired state of world populator runs before volume reconstructor

If the kubelet's volumemanager reconstructor for actual state of world runs before the desired state of world has been populated, the pods in the actual state of world will have some incorrect volume information: namely outerVolumeSpecName, which if incorrect leads to part of the issue here https://github.com/kubernetes/kubernetes/issues/43515, because WaitForVolumeAttachAndMount searches the actual state of world with the correct outerVolumeSpecName and won't find it so reports 'timeout waiting....', etc. forever for existing pods. The comments acknowledge that this is a known issue

The all sources ready check doesn't work because the sources being ready doesn't necessarily mean the desired state of world populator added pods from the sources. So instead let's put the all sources ready check in the *populator*, and when the sources are ready, it will be able to populate the desired state of world and make "HasAddedPods()" return true. THEN, the reconstructor may run.

@jingxu97 PTAL, you wrote all of the reconstruction stuff

```release-note
NONE
```
2017-05-10 17:47:43 -07:00
..
cache autogenerated 2017-04-14 10:40:57 -07:00
populator Ensure desired state of world populator runs before volume reconstructor 2017-05-09 18:25:59 -04:00
reconciler Ensure desired state of world populator runs before volume reconstructor 2017-05-09 18:25:59 -04:00
BUILD Use dedicated Unix User and Group ID types 2017-05-05 14:07:38 +02:00
OWNERS Update OWNERS approvers and reviewers: pkg/kubelet 2017-01-18 10:27:11 -08:00
volume_manager_test.go Use dedicated Unix User and Group ID types 2017-05-05 14:07:38 +02:00
volume_manager.go Merge pull request #44781 from wongma7/outervolumespec 2017-05-10 17:47:43 -07:00