kubernetes/staging/src/k8s.io
Kubernetes Submit Queue a062782524 Merge pull request #44258 from wlan0/master
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

cloud initialize node in external cloud controller

@thockin This PR adds support in the `cloud-controller-manager` to initialize nodes (instead of kubelet, which did it previously)

This also adds support in the kubelet to skip node cloud initialization when `--cloud-provider=external`

Specifically,

Kubelet

1. The kubelet has a new flag called `--provider-id` which uniquely identifies a node in an external DB
2. The kubelet sets a node taint - called "ExternalCloudProvider=true:NoSchedule" if cloudprovider == "external"

Cloud-Controller-Manager

1. The cloud-controller-manager listens on "AddNode" events, and then processes nodes that starts with that above taint. It performs the cloud node initialization steps that were previously being done by the kubelet.
2. On addition of node, it figures out the zone, region, instance-type, removes the above taint and updates the node.
3. Then periodically queries the cloudprovider for node addresses (which was previously done by the kubelet) and updates the node if there are new addresses

```release-note
NONE  
```
2017-05-08 16:34:43 -07:00
..
apimachinery Merge pull request #44258 from wlan0/master 2017-05-08 16:34:43 -07:00
apiserver Merge pull request #45370 from deads2k/server-23-handlers 2017-05-08 07:06:27 -07:00
client-go Merge pull request #39713 from k82cn/init_container_defaults 2017-05-06 23:03:48 -07:00
kube-aggregator refactor names for the apiserver handling chain 2017-05-08 07:55:31 -04:00
kube-apiextensions-server refactor names for the apiserver handling chain 2017-05-08 07:55:31 -04:00
metrics generated clientset changes 2017-05-04 11:30:51 -07:00
sample-apiserver refactor names for the apiserver handling chain 2017-05-08 07:55:31 -04:00