kubernetes/pkg/kubelet
Kubernetes Submit Queue 486a1ad3e4 Merge pull request #31707 from apprenda/windows_infra_container
Automatic merge from submit-queue

Initial work on running windows containers on Kubernetes

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

This is the first stab at getting the Kubelet running on Windows (fixes #30279), and getting it to deploy network-accessible pods that consist of Windows containers. Thanks @csrwng, @jbhurat for helping out.

The main challenge with Windows containers at this point is that container networking is not supported. In other words, each container in the pod will get it's own IP address. For this reason, we had to make a couple of changes to the kubelet when it comes to setting the pod's IP in the Pod Status. Instead of using the infra-container's IP, we use the IP address of the first container.

Other approaches we investigated involved "disabling" the infra container, either conditionally on `runtime.GOOS` or having a separate windows-docker container runtime that re-implemented some of the methods (would require some refactoring to avoid maintainability nightmare). 

Other changes:
- The default docker endpoint was removed. This results in the docker client using the default for the specific underlying OS.

More detailed documentation on how to setup the Windows kubelet can be found at https://docs.google.com/document/d/1IjwqpwuRdwcuWXuPSxP-uIz0eoJNfAJ9MWwfY20uH3Q. 

cc: @ikester @brendandburns @jstarks
2016-11-06 01:30:11 -07:00
..
api Run hack/update-generated-runtime.sh 2016-11-02 15:22:39 +08:00
cadvisor Fixed kubelet build. 2016-11-01 16:34:47 -04:00
client Allow apiserver to choose preferred kubelet address type 2016-10-31 16:02:38 -04:00
cm Merge pull request #31707 from apprenda/windows_infra_container 2016-11-06 01:30:11 -07:00
config Replace negotiation with a new method that can extract info 2016-10-28 11:30:11 -04:00
container Separate Direct and Indirect streaming paths, implement indirect path with CRI 2016-11-03 13:26:33 -07:00
custommetrics autogenerated 2016-10-21 17:32:32 -07:00
dockershim Merge pull request #36100 from timstclair/cris-leak 2016-11-05 16:52:46 -07:00
dockertools Merge pull request #31707 from apprenda/windows_infra_container 2016-11-06 01:30:11 -07:00
envvars autogenerated 2016-10-21 17:32:32 -07:00
events autogenerated 2016-10-21 17:32:32 -07:00
eviction eviction manager ecivts pod using the most inodes. 2016-10-31 11:32:49 -07:00
images autogenerated 2016-10-21 17:32:32 -07:00
kuberuntime Merge pull request #36020 from timstclair/klet-stream 2016-11-04 11:52:06 -07:00
leaky autogenerated 2016-10-21 17:32:32 -07:00
lifecycle Merge pull request #35342 from timstclair/rejected 2016-11-05 22:52:26 -07:00
metrics Add instrumented CRI service which is enabled for both grpc and non-grpc 2016-10-25 10:59:27 -07:00
network Unittests 2016-10-31 13:05:20 -07:00
pleg autogenerated 2016-10-21 17:32:32 -07:00
pod autogenerated 2016-10-21 17:32:32 -07:00
prober Separate Direct and Indirect streaming paths, implement indirect path with CRI 2016-11-03 13:26:33 -07:00
qos autogenerated 2016-10-21 17:32:32 -07:00
remote Split network.Host into LegacyHost and NamespaceGetter 2016-10-31 13:05:19 -07:00
rkt Separate Direct and Indirect streaming paths, implement indirect path with CRI 2016-11-03 13:26:33 -07:00
rktshim CRI: Rename container/sandbox states 2016-11-01 13:18:21 -07:00
server Merge pull request #35132 from dashpole/per_volume_inode 2016-11-05 23:45:44 -07:00
status autogenerated 2016-10-21 17:32:32 -07:00
sysctl autogenerated 2016-10-21 17:32:32 -07:00
types autogenerated 2016-10-21 17:32:32 -07:00
util Separate Direct and Indirect streaming paths, implement indirect path with CRI 2016-11-03 13:26:33 -07:00
volumemanager Fix volume states out of sync problem after kubelet restarts 2016-10-25 12:29:12 -07:00
active_deadline_test.go Refactor util clock into it's own pkg 2016-07-28 02:29:04 -04:00
active_deadline.go Refactor util clock into it's own pkg 2016-07-28 02:29:04 -04:00
BUILD Separate Direct and Indirect streaming paths, implement indirect path with CRI 2016-11-03 13:26:33 -07:00
disk_manager_test.go Revert "Declare out of disk when there is no free inodes" 2016-07-06 08:19:09 -07:00
disk_manager.go Revert "Declare out of disk when there is no free inodes" 2016-07-06 08:19:09 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
kubelet_cadvisor_test.go Print/log pointers of structs with %#v instead of %+v 2016-08-01 22:27:56 +02:00
kubelet_cadvisor.go Eviction manager needs to start as runtime dependent module 2016-07-22 10:19:40 -04:00
kubelet_getters_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
kubelet_getters.go Fix volume states out of sync problem after kubelet restarts 2016-10-25 12:29:12 -07:00
kubelet_network_test.go Revert "Revert "syncNetworkUtil in kubelet and fix loadbalancerSourceRange on GCE"" 2016-08-18 10:19:48 -07:00
kubelet_network.go Use podCIDR as a proxy for kubenet.Status 2016-10-31 18:05:30 -07:00
kubelet_node_status_test.go Populate NodeHostName status. 2016-11-01 01:09:50 +01:00
kubelet_node_status.go Don't add duplicate Hostname address 2016-11-04 10:00:23 -04:00
kubelet_pods_test.go Merge pull request #36020 from timstclair/klet-stream 2016-11-04 11:52:06 -07:00
kubelet_pods.go Merge pull request #31707 from apprenda/windows_infra_container 2016-11-06 01:30:11 -07:00
kubelet_resources_test.go Fix default resource limits (node capacities) for downward api volumes 2016-08-16 14:41:17 -04:00
kubelet_resources.go Fix default resource limits (node capacities) for downward api volumes 2016-08-16 14:41:17 -04:00
kubelet_test.go Hold bad AppArmor pods in pending rather than rejecting 2016-11-02 11:05:16 -07:00
kubelet_volumes_test.go Move Kubelet pod-management code into kubelet_pods.go 2016-09-26 17:16:59 -04:00
kubelet_volumes.go Remove volume SELinux relabeling when pod uses host IPC or PID ns 2016-10-26 10:39:46 -04:00
kubelet.go Merge pull request #35342 from timstclair/rejected 2016-11-05 22:52:26 -07:00
networks.go Unittests 2016-10-31 13:05:20 -07:00
oom_watcher_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
oom_watcher.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
OWNERS Move blunderbuss assignees into tree 2016-03-02 20:46:32 -05:00
pod_container_deletor_test.go Delete all dead containers only after pod syncing is done. 2016-08-15 14:36:51 -07:00
pod_container_deletor.go Delete all dead containers only after pod syncing is done. 2016-08-15 14:36:51 -07:00
pod_workers_test.go Log an event when container runtime exceeds grace-period during eviction 2016-09-07 13:28:08 -04:00
pod_workers.go Log an event when container runtime exceeds grace-period during eviction 2016-09-07 13:28:08 -04:00
reason_cache_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
reason_cache.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
root_context_linux.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
root_context_unsupported.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
runonce_test.go Hold bad AppArmor pods in pending rather than rejecting 2016-11-02 11:05:16 -07:00
runonce.go pods can not admitted should return directly 2016-07-30 11:47:50 +08:00
runtime.go Revert "bootstrap: Start hostNetwork pods even if network plugin not ready" 2016-10-25 08:38:59 -07:00
util.go Kubelet code move: volume / util 2016-08-22 23:35:11 -04:00
volume_host.go Fix default resource limits (node capacities) for downward api volumes 2016-08-16 14:41:17 -04:00