Commit Graph

4870 Commits

Author SHA1 Message Date
k8s-merge-robot
98af443209 Merge pull request #26398 from euank/various-kubenet-fixes
Automatic merge from submit-queue

Various kubenet fixes (panics and bugs and cidrs, oh my)

This PR fixes the following issues:

1. Corrects an inverse error-check that prevented `shaper.Reset` from ever being called with a correct ip address
2. Fix an issue where `parseCIDR` would fail after a kubelet restart due to an IP being stored instead of a CIDR being stored in the cache.
3. Fix an issue where kubenet could panic in TearDownPod if it was called before SetUpPod (e.g. after a kubelet restart).. because of bug number 1, this didn't happen except in rare situations (see 2 for why such a rare situation might happen)

This adds a test, but more would definitely be useful.
The commits are also granular enough I could split this up more if desired.

I'm also not super-familiar with this code, so review and feedback would be welcome.

Testing done:
```
$ cat examples/egress/egress.yml
 apiVersion: v1
kind: Pod
metadata:
  labels:
    name: egress
  name: egress-output
  annotations: {"kubernetes.io/ingress-bandwidth": "300k"}
spec:
  restartPolicy: Never
  containers:
    - name: egress
      image: busybox
      command: ["sh", "-c", "sleep 60"]
$ cat kubelet.log
...
Running: tc filter add dev cbr0 protocol ip parent 1:0 prio 1 u32 match ip dst 10.0.0.5/32 flowid 1:1
# setup
...
Running: tc filter del dev cbr0 parent 1:proto ip prio 1 handle 800::800 u32
# teardown
```

I also did various other bits of manual testing and logging to hunt down the panic and other issues, but don't have anything to paste for that 

cc @dcbw @kubernetes/sig-network
2016-05-29 04:04:22 -07:00
k8s-merge-robot
577cdf937d Merge pull request #26415 from wojtek-t/network_not_ready
Automatic merge from submit-queue

Add a NodeCondition "NetworkUnavaiable" to prevent scheduling onto a node until the routes have been created 

This is new version of #26267 (based on top of that one).

The new workflow is:
- we have an "NetworkNotReady" condition
- Kubelet when it creates a node, it sets it to "true"
- RouteController will set it to "false" when the route is created
- Scheduler is scheduling only on nodes that doesn't have "NetworkNotReady ==true" condition

@gmarek @bgrant0607 @zmerlynn @cjcullen @derekwaynecarr @danwinship @dcbw @lavalamp @vishh
2016-05-29 03:06:59 -07:00
k8s-merge-robot
d00dec7825 Merge pull request #26397 from euank/fixReadOnlyRootfsPanic
Automatic merge from submit-queue

rkt: Fix panic in setting ReadOnlyRootFS

What the title says. I wish this method were broken out in a reasonably unit testable way. fixing this panic is more important for the second though, testing will come in a later commit.

I observed the panic in a `./hack/local-up-cluster.sh` run with rkt as the container runtime.

This is also the panic that's failing our jenkins against master ([recent run](https://console.cloud.google.com/m/cloudstorage/b/rktnetes-jenkins/o/logs/kubernetes-e2e-gce/1946/artifacts/jenkins-e2e-minion-group-qjh3/kubelet.log for the log output of a recent run))

cc @tmrts @yifan-gu
2016-05-29 02:17:09 -07:00
k8s-merge-robot
344f26ae69 Merge pull request #26145 from Random-Liu/image-pulling-progress
Automatic merge from submit-queue

Kubelet: Periodically reporting image pulling progress in log

Addresses https://github.com/kubernetes/kubernetes/issues/26075#issuecomment-221129896 and https://github.com/kubernetes/kubernetes/pull/26122#issuecomment-221128397.

This PR changes kube_docker_client to log pulling progress every *10* seconds. We can't print all progress messages into the log, because there are too many. So I make it report newest progress every 10 seconds to reduce log spam.
If the image pulling is too slow or stuck, we'll see image pulling progress unchanged or changed little overtime.

The following is the result if I set the reporting interval to *1* second.
```
I0524 00:53:26.189086  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "17b6a9e179d7: Pulling fs layer "
I0524 00:53:27.189082  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "202e40f8bb3a: Download complete "
I0524 00:53:28.189160  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Downloading [=>                                                 ] 1.474 MB/48.35 MB"
I0524 00:53:29.189156  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Downloading [====>                                              ] 3.931 MB/48.35 MB"
I0524 00:53:30.189089  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Downloading [=========>                                         ] 8.847 MB/48.35 MB"
I0524 00:53:31.189089  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Downloading [==================>                                ] 18.19 MB/48.35 MB"
I0524 00:53:32.189076  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Downloading [=======================================>           ] 38.34 MB/48.35 MB"
I0524 00:53:33.189106  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Extracting [=============>                                     ] 12.78 MB/48.35 MB"
I0524 00:53:34.189067  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Extracting [==================================>                ] 33.42 MB/48.35 MB"
I0524 00:53:35.189083  145099 kube_docker_client.go:252] Pulling image "ubuntu:latest": "487bffc61de6: Extracting [==================================================>] 48.35 MB/48.35 MB"
I0524 00:53:35.376667  145099 kube_docker_client.go:254] Finish pulling image "ubuntu:latest": "Status: Downloaded newer image for ubuntu:latest"
```

Ref image pulling related issue #19077.

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()

@yujuhong @dchen1107 
/cc @kubernetes/sig-node
2016-05-28 13:34:28 -07:00
k8s-merge-robot
350efaf13d Merge pull request #26096 from euank/set-pod-ip
Automatic merge from submit-queue

rkt: Pass through podIP

This is needed for the /etc/hosts mount and the downward API to work.
Furthermore, this is required for the reported `PodStatus` to be
correct.

The `Status` bit mostly worked prior to #25062, and this restores that
functionality in addition to the new functionality.

In retrospect, the regression in status is large enough the prior PR should have included at least some of this; my bad for not realizing the full implications there.

#25902 is needed for downwards api stuff, but either merge order is fine as neither will break badly by itself.

cc @yifan-gu @dcbw
2016-05-28 12:40:39 -07:00
k8s-merge-robot
03fc51f74f Merge pull request #26046 from timoreimann/stabilize-map-order-in-kubectl-describe
Automatic merge from submit-queue

Stabilize map order in kubectl describe

Refs #25251.

Add `SortedResourceNames()` methods to map type aliases in order to achieve stable output order for `kubectl` descriptors.

This affects QoS classes, resource limits, and resource requests.

A few remarks:

1. I couldn't find map usages for described fields other than the ones mentioned above. Then again, I failed to identify those programmatically/systematically. Pointers given, I'd be happy to cover any gaps within this PR or along additional ones.
1. It's somewhat difficult to deterministically test a function that brings reliable ordering to Go maps due to its randomizing nature. None of the possibilities I came up with (rely a "probabilistic testing" against repeatedly created maps, add complexity through additional interfaces) seemed very appealing to me, so I went with testing my `sort.Interface` implementation and the changed logic in `kubectl.describeContainers()`.
1. It's apparently not possible to implement a single function that sorts any map's keys generically in Go without producing lots of boilerplate: a `map[<key type>]interface{}` is different from any other map type and thus requires explicit iteration on the caller site to convert back and forth. Unfortunately, this makes it hard to completely avoid code/test duplication.

Please let me know what you think.
2016-05-28 10:49:57 -07:00
Wojciech Tyczynski
fcfaf1a3bd Revert "Fix system container detection in kubelet on systemd" 2016-05-28 16:11:53 +02:00
k8s-merge-robot
c730198aad Merge pull request #25982 from derekwaynecarr/fix_stats
Automatic merge from submit-queue

Fix system container detection in kubelet on systemd

```release-note
Fix system container detection in kubelet on systemd.

This fixed environments where CPU and Memory Accounting were not enabled on the unit 
that launched the kubelet or docker from reporting the root cgroup when 
monitoring usage stats for those components.
```

Fixes https://github.com/kubernetes/kubernetes/issues/25909

/cc @kubernetes/sig-node @kubernetes/rh-cluster-infra @vishh @dchen1107
2016-05-28 05:38:15 -07:00
k8s-merge-robot
e7a13ac2ad Merge pull request #25902 from euank/changeVolumeMounts
Automatic merge from submit-queue

rkt: Use volumes from RunContainerOptions

This replaces the previous creation of mounts from the `volumeGetter`
with mounts provided via RunContainerOptions.

This is motivated by the fact that the latter has a more complete set of
mounts (e.g. the `/etc/hosts` one created in kubelet.go in the case an IP is available).

This does not induce further e2e failures as far as I can tell.

cc @yifan-gu
2016-05-28 03:58:14 -07:00
k8s-merge-robot
74b20cccc6 Merge pull request #25813 from rrati/kubelet-pods-per-core
Automatic merge from submit-queue

Added pods-per-core to kubelet. #25762

Added --pods-per-core to kubelet

#25762
2016-05-28 03:08:28 -07:00
k8s-merge-robot
f32b2582df Merge pull request #26391 from timstclair/containerd
Automatic merge from submit-queue

Move containerd process into docker cgroup for versions >= v1.11

Addresses https://github.com/kubernetes/kubernetes/issues/23397#issuecomment-209583923

/cc @vishh @kubernetes/sig-node
2016-05-27 19:42:48 -07:00
Euan Kemp
c83ad19ae9 kubenet: Fix ipv4 validity check
The length of an IP can be 4 or 16, and even if 16 it can be a valid
ipv4 address. This check is the more-correct way to handle this, and it
also provides more granular error messages.
2016-05-27 16:25:14 -07:00
Alex Robinson
91f8c784a0 Merge pull request #21373 from enoodle/read_cadvisor_cloudinfo_in_kubelet
kubelet: reading cloudinfo from cadvisor
2016-05-27 16:14:24 -07:00
Alex Robinson
cddf564f3c Merge pull request #24771 from timstclair/event-store
Disable cAdvisor event storage by default
2016-05-27 15:56:13 -07:00
Random-Liu
52a3d8a19d Add unit test for image history cache 2016-05-27 14:49:48 -07:00
Random-Liu
56bde2df9f Cache image history 2016-05-27 14:49:48 -07:00
Alex Robinson
1cca499e92 Merge pull request #26225 from yujuhong/less_noise
Reduce noise in kubelet.log
2016-05-27 14:28:53 -07:00
Euan Kemp
abbd0321b2 rkt: Use volumes from RunContainerOptions
This replaces the previous creation of mounts from the `volumeGetter`
with mounts provided via RunContainerOptions.

This is motivated by the fact that the latter has a more complete set of
mounts (e.g. the `/etc/hosts` one created in kubelet.go).
2016-05-27 13:11:47 -07:00
Timothy St. Clair
199e15ab64 Update client connections to try to use http2, except attach, exec, and
port-forward which are customized
2016-05-27 15:08:42 -05:00
Alex Robinson
bd0b94efe2 Merge pull request #26029 from luxas/mkdir_all
kubelet: Use MkdirAll instead of Mkdir
2016-05-27 11:40:01 -07:00
Alex Robinson
789b69758e Merge pull request #25688 from sjpotter/rkt_annotations
kubelet: Move common labels out of dockertools package
2016-05-27 11:26:31 -07:00
Euan Kemp
93487867ac kubenet: Update empty ip check
The previous check was incorrect because the `IP.String` method returns
`<nil>` and other non-empty-strings on error conditions.
2016-05-27 10:47:13 -07:00
Euan Kemp
c4b8959a75 kubenet: Reduce loglevel of spammy message
When no shaping is enabled, that warning would always be printed.
2016-05-27 10:47:12 -07:00
Euan Kemp
7e0b9bfa66 kubenet: Fix panic when teardown run before setup
Teardown can run before Setup when the kubelet is restarted... in that
case, the shaper was nil and thus calling the shaper resulted in a panic

This fixes that by ensuring the shaper is always set... +1 level of
indirection and all that.
2016-05-27 10:47:12 -07:00
Euan Kemp
2f5e738dc1 kubenet: Fix inconsistent cidr usage/parsing
Before this change, the podCIDRs map contained both cidrs and ips
depending on which code path entered a container into it.

Specifically, SetUpPod would enter a CIDR while GetPodNetworkStatus
would enter an IP.

This normalizes both of them to always enter just IP addresses.

This also removes the now-redundant cidr parsing that was used to get
the ip before
2016-05-27 10:47:12 -07:00
Wojciech Tyczynski
be1b57100d Change to NotReadyNetworking and use in scheduler 2016-05-27 19:32:49 +02:00
gmarek
7bdf480340 Node is NotReady until the Route is created 2016-05-27 19:29:51 +02:00
Euan Kemp
766eb6f0f7 kubenet: Fix bug where shaper.Reset wasn't called
The error check was inverse what it should have been, causing
shaper.Reset to only get called with invalid cidrs.
2016-05-27 10:20:43 -07:00
Alex Robinson
07d9dff83c Merge pull request #26208 from freehan/kubenetteardownfix
do not return error if TearDownPod is called twice
2016-05-27 09:59:03 -07:00
Robert Rati
2d487f7c06 Added pods-per-core to kubelet. #25762 2016-05-27 07:10:13 -04:00
Euan Kemp
ecfd8f723f rkt: Fix panic in setting ReadOnlyRootFS 2016-05-26 20:43:26 -07:00
Tim St. Clair
e4d8dea0d7 Move containerd process into docker cgroup for versions >= v1.11 2016-05-26 17:27:00 -07:00
Alex Mohr
aab6c43a33 Merge pull request #25604 from freehan/kubenethostport
Kubenet host-port support through iptables
2016-05-26 15:49:12 -07:00
Alex Mohr
5b1653ec39 Merge pull request #25681 from vishh/lifecycle-probe-logs
Log output of lifecycle hooks on failure
2016-05-26 12:37:02 -07:00
Minhan Xia
0834dc489a do not return error if TearDownPod is called twice 2016-05-26 11:57:22 -07:00
Alex Mohr
4357b8a0a6 Merge pull request #25324 from jfrazelle/add-seccomp
Add Seccomp to Annotations
2016-05-26 10:50:06 -07:00
k8s-merge-robot
98766f4548 Merge pull request #26301 from zmerlynn/wait_proper
Automatic merge from submit-queue

routecontroller: Add wait.NonSlidingUntil, use it

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]() Make sure the reconciliation loop kicks in again immediately if it
takes a loooooong time.
2016-05-26 03:29:21 -07:00
Shaya Potter
9dd9f2ad65 move common lables used outside of containr runtime out of dockertools
moved labels and their Get functions to types

aliases kubernetes/types import to kubetypes to use kubelet/types as types
2016-05-25 23:10:19 -07:00
k8s-merge-robot
e7022106ff Merge pull request #25719 from tmrts/rk8s/read-only-rootfs
Automatic merge from submit-queue

Use read-only root filesystem capabilities of rkt

Propagates `api.Container.SecurityContext.ReadOnlyRootFileSystem` flag to rkt container runtime.

cc @yifan-gu 

Fixes #23837
2016-05-25 17:58:03 -07:00
k8s-merge-robot
f4122477c2 Merge pull request #25712 from asalkeld/docker-logpath
Automatic merge from submit-queue

Use docker containerInfo.LogPath and not manually constructed path

## Pull Request Guidelines

Since the containerInfo has the LogPath in it, let's use that and
not manually construct the path ourselves. This also makes the code
less prone to breaking if docker change this path.

Fixes #23695
2016-05-25 17:57:59 -07:00
k8s-merge-robot
69b90028cf Merge pull request #26086 from smarterclayton/init_ordering
Automatic merge from submit-queue

Ensure that init containers are preserved during pruning

Pods with multiple init containers were getting the wrong containers
pruned. Fix an error message and add a test.

Fixes #26131
2016-05-25 15:38:39 -07:00
Timo Reimann
32aa740fd3 Show resources in pod descriptions by sorted names.
Includes container and QoS resources.
2016-05-25 23:51:37 +02:00
Zach Loafman
3ec25c5425 routecontroller: Add wait.NonSlidingUntil, use it
Make sure the reconciliation loop kicks in again immediately if it
takes a loooooong time.
2016-05-25 13:58:35 -07:00
Euan Kemp
8a2895d88f rkt: Pass through podIP
This is needed for the /etc/hosts mount and the downward API to work.
Furthermore, this is required for the reported `PodStatus` to be
correct.

The `Status` bit mostly worked prior to #25062, and this restores that
functionality in addition to the new functionality.
2016-05-25 11:16:39 -07:00
Euan Kemp
be0ccab5c5 networkplugins: Add mock network plugin 2016-05-25 10:07:54 -07:00
k8s-merge-robot
025b017277 Merge pull request #25177 from euank/rkt-alternate-stage1
Automatic merge from submit-queue

rkt: Support alternate stage1's via annotation

This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation.

This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation. See discussion here for how this approach was arrived at: https://github.com/kubernetes/kubernetes/issues/23944#issuecomment-212653776

It's possible this feature should be gated behind additional knobs, such
as a kubelet flag to filter allowed stage1s, or a check akin to what
priviliged gets in the apiserver.
Currently, it checks `AllowPrivileged`, as a means to let people disable
this feature, though overloading it as stage1 and privileged isn't
ideal.

Fixes #23944

Testing done (note, unfortunately done with some additional ./cluster changes merged in):

```
$ cat examples/stage1-fly/fly-me-to-the-moon.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: exit
  name: exit-fast
  annotations: {"rkt.alpha.kubernetes.io/stage1-name-override": "coreos.com/rkt/stage1-fly:1.3.0"}
spec:
  restartPolicy: Never
  containers:
    - name: exit
      image: busybox
      command: ["sh", "-c", "ps aux"]
$ kubectl create -f examples/stage1-fly
$ ssh core@minion systemctl status -l --no-pager k8s_2f169b2e-c32a-49e9-a5fb-29ae1f6b4783.service
...
failed
...
May 04 23:33:03 minion rkt[2525]: stage0: error writing /etc/rkt-resolv.conf: open /var/lib/rkt/pods/run/2f169b2e-c32a-49e9-a5fb-29ae1f6b4783/stage1/rootfs/etc/rkt-resolv.conf: no such file or directory
...
# Restart kubelet with allow-privileged=false
$ kubectl create -f examples/stage1-fly
$ kubectl describe exit-fast
...
  1m		19s		5	{kubelet euank-e2e-test-minion-dv3u}	spec.containers{exit}	Warning		Failed		Failed to create rkt container with error: cannot make "exit-fast_default(17050ce9-1252-11e6-a52a-42010af00002)": running a custom stage1 requires a privileged security context
....
```

Note as well that the "success" here is rkt spitting out an [error message](https://github.com/coreos/rkt/issues/2141) which indicates that the right stage1 was being used at least.

cc @yifan-gu @aaronlevy
2016-05-25 07:52:17 -07:00
Lucas Käldström
fdff659ced Do not call NewFlannelServer() unless flannel overlay is enabled 2016-05-25 16:09:39 +03:00
k8s-merge-robot
83c78fdcaa Merge pull request #24179 from aveshagarwal/master-downward-api-resources-limits-requests-implementation
Automatic merge from submit-queue

Downward API implementation for resources limits and requests

This is an implementation of Downward API for resources limits and requests, and it works with environment variables and volume plugin.

This is based on proposal https://github.com/kubernetes/kubernetes/pull/24051. This implementation follows API with magic keys approach as discussed in the proposal.

@kubernetes/rh-cluster-infra

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/24179)
<!-- Reviewable:end -->
2016-05-25 03:38:49 -07:00
Yu-Ju Hong
bc69cca778 Reduce noise in kubelet.log 2016-05-24 16:03:01 -07:00
Jess Frazelle
aa8c72adaa
seccomp: add annotations and test for docker runtime
Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-05-24 12:25:21 -07:00
Vishnu kannan
e7721ea8cf Expose errors from libecycle hooks as events for the pod.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-05-24 11:12:53 -07:00
Clayton Coleman
223542690a
Ensure that init containers are preserved during pruning
Pods with multiple init containers were getting the wrong containers
pruned. Fix an error message and add a test.
2016-05-24 14:05:55 -04:00
Random-Liu
151d0ab0c1 Periodically reporing image pulling progress in log 2016-05-24 09:58:36 -07:00
Avesh Agarwal
1931931494 Downward API implementation for resources limits and requests 2016-05-24 12:22:35 -04:00
xiangpengzhao
3caebba6d8 Add assert.NotNil for test case 2016-05-24 10:04:36 -04:00
Yu-Ju Hong
77dba962db docker: don't set timeout for image pulling requests 2016-05-23 16:17:49 -07:00
Euan Kemp
136da158c5 rkt: Support alternate stage1's via annotation
This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation.

It's possible this feature should be gated behind additional knobs, such
as a kubelet flag to filter allowed stage1s, or a check akin to what
priviliged gets in the apiserver.
Currently, it checks `AllowPrivileged`, as a means to let people disable
this feature, though overloading it as stage1 and privileged isn't
ideal.
2016-05-23 13:47:16 -07:00
Euan Kemp
dc236d926d rkt: Add VolumeGetter mock 2016-05-23 13:43:55 -07:00
derekwaynecarr
5a8851d436 Fix container detection on systemd in kubelet 2016-05-23 14:22:32 -04:00
Vishnu kannan
3905179fd7 Log output of lifecycle probes on failure
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-05-23 09:53:21 -07:00
Minhan Xia
6a3ad1d66d add hostport support for kubenet 2016-05-22 22:18:58 -07:00
Angus Salkeld
2970f2220f Use docker containerInfo.LogPath and not manually constructed path
Since the containerInfo has the LogPath in it, let's use that and
not manually construct the path ourselves. This also makes the code
less prone to breaking if docker change this path.

Fixes #23695
2016-05-23 10:25:37 +10:00
Erez Freiberger
7fb82d543f kubelet: reading cloudinfo from cadvisor
When no --cloud-provider flag is given, try to use data from cadvisor to
determine the current cloud provider.
2016-05-22 18:41:39 +03:00
Sami Wagiaalla
4858d0ab6f Detangle Attach/Detach from GCE PD 2016-05-22 08:28:29 -04:00
k8s-merge-robot
f1e528eab6 Merge pull request #25933 from timstclair/subcontainers
Automatic merge from submit-queue

Handle cAdvisor partial failures

Kubernetes side of https://github.com/google/cadvisor/issues/1286

Partially fixes https://github.com/kubernetes/kubernetes/issues/25131

(Depends on cAdvisor Godeps bump https://github.com/kubernetes/kubernetes/pull/25914)

/cc @kubernetes/sig-node
2016-05-22 04:50:01 -07:00
k8s-merge-robot
6224f44717 Merge pull request #25771 from sjpotter/fs-info
Automatic merge from submit-queue

kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces.

basically

1) cadvisor struct will know what runtime the kubelet is, passed in via additional argument to New()

2) rename cadvisor wrapper function to DockerImagesFsInfo() to ImagesFsInfo() and have linux implementation choose a label based on the runtime inside the cadvisor struct

2a) mock/fake/unsupported modified to take the same additional argument in New()

3) kubelet's wrapper for the cadvisor wrapper is renamed in parallel

4) make all tests use new interface
2016-05-22 03:08:59 -07:00
k8s-merge-robot
5d8e797a14 Merge pull request #25907 from ncdc/check-docker-pidfile
Automatic merge from submit-queue

Fix detection of docker cgroup on RHEL

Check docker's pid file, then fallback to pidof when trying to determine the pid for docker. The
latest docker RPM for RHEL changes /usr/bin/docker from an executable to a shell script (to support
/usr/bin/docker-current and /usr/bin/docker-latest). The pidof check for docker fails in this case,
so we check /var/run/docker.pid first (the default location), and fallback to pidof if that fails.

@kubernetes/sig-node @kubernetes/rh-cluster-infra
2016-05-21 16:50:00 -07:00
Lucas Käldström
2022c44409 kubelet: Use MkdirAll instead of Mkdir 2016-05-22 00:23:18 +03:00
k8s-merge-robot
4bb085c927 Merge pull request #25772 from derekwaynecarr/eviction-max-grace
Automatic merge from submit-queue

Add support for limiting grace period during soft eviction

Adds eviction manager support in kubelet for max pod graceful termination period when a soft eviction is met.

```release-note
Kubelet evicts pods when available memory falls below configured eviction thresholds
```

/cc @vishh
2016-05-21 12:43:45 -07:00
Tamer Tas
239c04d60d Use read-only root filesystem capabilities of appc & rkt 2016-05-21 20:01:00 +03:00
k8s-merge-robot
d6d0a6eb83 Merge pull request #25656 from tmrts/godep-update/rkt-1.6.0
Automatic merge from submit-queue

Update rkt API version to 1.6.0

Updates coreos/rkt container runtime dependency to `1.6.0`

Fixes #25430
2016-05-21 09:56:52 -07:00
k8s-merge-robot
9c9bdb2494 Merge pull request #25502 from swagiaal/attach-interface-pvc
Automatic merge from submit-queue

Add support for PersistentVolumeClaim in Attacher/Detacher interface

The attach detach interface does not support volumes which are referenced through PVCs. This PR adds that support
2016-05-21 06:25:34 -07:00
k8s-merge-robot
68ab865e75 Merge pull request #25328 from resouer/sort-images
Automatic merge from submit-queue

Only expose top N images in `NodeStatus`

Fix #25209

Sorted the image and only pick set top 50 sized images in node status.

cc @vishh
2016-05-21 04:43:30 -07:00
k8s-merge-robot
423a4154be Merge pull request #25062 from dcbw/kubenet-rkt
Automatic merge from submit-queue

Hook rkt kubelet runtime up to network plugins
2016-05-21 00:45:19 -07:00
k8s-merge-robot
46504c2042 Merge pull request #14943 from vishh/qos
Automatic merge from submit-queue

Updaing QoS policy to be at the pod level

Quality of Service will be derived from an entire Pod Spec, instead of being derived from resource specifications of individual resources per-container.
A Pod is `Guaranteed` iff all its containers have limits == requests for all the first-class resources (cpu, memory as of now).
A Pod is `BestEffort` iff requests & limits are not specified for any resource across all containers.
A Pod is `Burstable` otherwise. 

Note: Existing pods might be more susceptible to OOM Kills on the node due to this PR! To protect pods from being OOM killed on the node, set `limits` for all resources across all containers in a pod.

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/14943)
<!-- Reviewable:end -->
2016-05-20 22:58:04 -07:00
Mike Danese
fbf6bbc49a Merge pull request #25596 from derekparker/inotify
kubelet: Optionally, have kubelet exit if lock file contention is observed, using --exit-on-lock-contention flag
2016-05-20 16:40:10 -07:00
Mike Danese
63b7c05bc4 Merge pull request #24743 from pmorie/kill-pod-errs
Clearly identify errors killing pods in events and logs
2016-05-20 16:38:51 -07:00
Mike Danese
ae7809d71a Merge pull request #25698 from euank/update-log-stuff
rkt: Don't warn on empty pod logs
2016-05-20 15:03:20 -07:00
Vishnu kannan
f884180deb Update kubelet to use per-pod QoS policy.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-05-20 11:52:17 -07:00
Vishnu kannan
f48c83600c Updating QoS policy to be per-pod instead of per-resource.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-05-20 11:52:16 -07:00
derekwaynecarr
2a1d3faf08 kubelet support for max grace period during soft eviction 2016-05-20 11:30:08 -04:00
k8s-merge-robot
4ea034c284 Merge pull request #25896 from yujuhong/inspect_error
Automatic merge from submit-queue

kubelet: Don't attempt to apply the oom score if container exited already

Containers could terminate before kubelet applies the oom score. This is normal
and the function should not error out.

This addresses #25844 partially.

/cc @smarterclayton @Random-Liu
2016-05-20 06:22:57 -07:00
Tim St. Clair
b05b419c25 Handle cAdvisor partial failures 2016-05-19 19:29:31 -07:00
Random-Liu
f9203e6813 Add unit test for generateAPIPodStatus for normal containers and init containers 2016-05-19 17:12:29 -07:00
Random-Liu
38b188aa94 Properly handle init containers in convertToAPIContainerStatuses 2016-05-19 17:03:25 -07:00
Daniel Smith
5448400b1c Merge pull request #25243 from smarterclayton/explore_quantity
Provide an int64 version of Quantity that is much faster
2016-05-19 16:56:48 -07:00
Andy Goldstein
6744a7417a Fix detection of docker cgroup on RHEL
Check docker's pid file, then fallback to pidof when trying to determine the pid for docker. The
latest docker RPM for RHEL changes /usr/bin/docker from an executable to a shell script (to support
/usr/bin/docker-current and /usr/bin/docker-latest). The pidof check for docker fails in this case,
so we check /var/run/docker.pid first (the default location), and fallback to pidof if that fails.
2016-05-19 16:42:52 -04:00
Yu-Ju Hong
b57fbee557 check pid in oomscoreadj 2016-05-19 12:21:27 -07:00
Yu-Ju Hong
e3e1c7a6a1 kubelet: Don't attempt to apply the oom score if the container is not running
Containers could terminate before kubelet applies the oom score. This is normal
and the function should not error out.
2016-05-19 11:32:36 -07:00
Shaya Potter
ae08ef38d7 kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
Tim Hockin
77eff06a53 Make IsDNS1123Label return error strings 2016-05-19 08:57:49 -07:00
Clayton Coleman
e3c8c4c22b
Handle resource.Quantity changes in eviction thresholds 2016-05-19 08:41:43 -04:00
Clayton Coleman
5e4308f91d
Update use of Quantity in other classes 2016-05-19 08:41:43 -04:00
k8s-merge-robot
4f09f51486 Merge pull request #24800 from thockin/validation_pt8-3
Automatic merge from submit-queue

Make name validators return string slices

Part of the larger validation PR, broken out for easier review and merge.  Builds on previous PRs in the series.
2016-05-19 02:15:27 -07:00
Paul Morie
451c7f28b2 Clearly identify errors killing pods in events and logs 2016-05-19 03:21:39 -04:00
Derek Parker
f307e97f87 kubelet: Add --exit-on-lock-contention flag
This patch adds the --exit-on-lock-contention flag, which must be used
in conjunction with the --lock-file flag. When provided, it causes the
kubelet to wait for inotify events for that lock file. When an 'open'
event is received, the kubelet will exit.
2016-05-18 16:21:47 -07:00
Dan Williams
552b648caf kubenet: implement fake execer for testcases
When the IP isn't in the internal map, GetPodNetworkStatus() needs
to call the execer for the 'nsenter' program.  That  means the execer
needs to be !nil, which it wasn't before.
2016-05-18 11:28:05 -05:00
Dan Williams
3dbbe26316 kubenet: fix log message text 2016-05-18 11:28:05 -05:00
Dan Williams
5de7b561e3 kubenet: ensure loopback interface is up and consolidate CNI setup 2016-05-18 11:28:05 -05:00
Dan Williams
62e4635cfb rkt: set up network namespace with plugins 2016-05-18 11:28:05 -05:00
Dan Williams
9b85d20c73 kubelet/runtime: add method to return pod network namespace path
Some runtimes (eg, Hypernetes) don't create network namespaces for pods,
so network plugins must correctly handle any error returned from the
runtime.
2016-05-18 09:26:01 -05:00
Dan Williams
55e6eb2ce3 Allow using netns path instead of container PID to change hairpin mode 2016-05-18 09:25:42 -05:00
k8s-merge-robot
e4e6e46197 Merge pull request #24799 from thockin/validation_pt8-2
Automatic merge from submit-queue

Make IsValidLabelValue return error strings

Part of the larger validation PR, broken out for easier review and merge.  Builds on previous PRs in the series.
2016-05-18 04:08:15 -07:00
k8s-merge-robot
bf4f84167f Merge pull request #23567 from smarterclayton/init_containers
Automatic merge from submit-queue

Add init containers to pods

This implements #1589 as per proposal #23666

Incorporates feedback on #1589, creates parallel structure for InitContainers and Containers, adds validation for InitContainers that requires name uniqueness, and comments on a number of implications of init containers.

This is a complete alpha implementation.

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/23567)
<!-- Reviewable:end -->
2016-05-18 00:53:30 -07:00
Tim Hockin
152c86ab06 Make name validators return string slices 2016-05-18 00:48:01 -07:00
Tim Hockin
66d0d87829 Make IsValidLabelValue return error strings 2016-05-17 21:36:10 -07:00
k8s-merge-robot
7b4851b9ae Merge pull request #21274 from derekwaynecarr/kubelet_eviction
Automatic merge from submit-queue

out of resource killing (memory)

Adds the core framework for low-resource killing in the kubelet.

Implements support for out of memory killing.

Related:
https://github.com/kubernetes/kubernetes/pull/18724

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/21274)
<!-- Reviewable:end -->
2016-05-17 10:15:32 -07:00
Clayton Coleman
205a8b4574
Add init container loading to the kubelet 2016-05-17 00:29:53 -04:00
Euan Kemp
3e00e0cd71 rkt: Don't warn on empty pod logs
If a pod has not printed anything to stdout/stderr, it's expected
behaviour to get `-- No entries --`, even when requesting json output.
Prior to this change, a warning would be printed in such an occasion.
2016-05-16 16:47:35 -07:00
Tamer Tas
7d40332ca8 Update rkt container runtime min versions 2016-05-17 00:03:25 +03:00
Harry Zhang
d917ed2638 Add test for image in node status 2016-05-16 15:58:12 -04:00
Harry Zhang
032a886320 Only store top N images in status 2016-05-16 15:58:11 -04:00
Random-Liu
10b0e0f3de Fix downward api for pod using host network. 2016-05-15 23:59:39 -07:00
k8s-merge-robot
59b7b1c550 Merge pull request #24921 from feiskyer/merge-exec
Automatic merge from submit-queue

Remove RunInContainer interface in Kubelet Runtime interface

According to #24689, we should merge RunInContainer and ExecInContainer in the container runtime interface. 

@yujuhong  @kubernetes/sig-node
2016-05-15 02:58:15 -07:00
k8s-merge-robot
4ac32179bf Merge pull request #24798 from thockin/validation_pt8-1
Automatic merge from submit-queue

Make IsQualifiedName return error strings

Part of the larger validation PR, broken out for easier review and merge.

@lavalamp FYI, but I know you're swamped, too.
2016-05-14 22:14:17 -07:00
derekwaynecarr
edc76f6d4f out of resource killing (memory) 2016-05-14 11:34:45 -04:00
Yifan Gu
9d5bcf4251 rkt: Add tests for GarbageCollect(). 2016-05-13 15:13:52 -07:00
Yifan Gu
06b1955c4a rkt: Refactor GarbageCollect() to enforce GCPolicy.MaxContainers. 2016-05-13 15:12:36 -07:00
Jeff Lowdermilk
095e262461 Merge pull request #25361 from yifan-gu/imagestates
rkt: Implement ImageStats() for rkt.
2016-05-13 15:05:48 -07:00
k8s-merge-robot
399b086620 Merge pull request #23684 from luxas/auto_label_arch
Automatic merge from submit-queue

Automatically add node labels beta.kubernetes.io/{os,arch}

Proposal: #17981
As discussed in #22623:
> @davidopp: #9044 says cloud provider but can also cover platform stuff.

Adds a label `beta.kubernetes.io/platform` to `kubelet` that informs about the os/arch it's running on.
Makes it easy to specify `nodeSelectors` for different arches in multi-arch clusters.

```console
$ kubectl get no --show-labels
NAME        STATUS    AGE       LABELS
127.0.0.1   Ready     1m        beta.kubernetes.io/platform=linux-amd64,kubernetes.io/hostname=127.0.0.1
$ kubectl describe no
Name:			127.0.0.1
Labels:			beta.kubernetes.io/platform=linux-amd64,kubernetes.io/hostname=127.0.0.1
CreationTimestamp:	Thu, 31 Mar 2016 20:39:15 +0300
```
@davidopp @vishh @fgrzadkowski @thockin @wojtek-t @ixdy @bgrant0607 @dchen1107 @preillyme
2016-05-13 13:25:34 -07:00
Jeff Lowdermilk
1fe0e0778f Merge pull request #24080 from tyangliu/fix-infra-network-cfg
Pass dockerOpts by reference to setInfraContainerNetworkConfig
2016-05-13 09:53:39 -07:00
k8s-merge-robot
bb3f5b1768 Merge pull request #23090 from tgraf/ipv6
Automatic merge from submit-queue

Add IPv6 address support for pods - does NOT include services

This allows a container to have an IPv6 address only and extracts the address via nsenter and iproute2 or the docker client directly. An IPv6 address is now correctly reported when describing a pod.

@thockin @kubernetes/sig-network

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/23090)
<!-- Reviewable:end -->
2016-05-13 06:32:00 -07:00
k8s-merge-robot
17345bf857 Merge pull request #25372 from derekwaynecarr/more-eviction-flags
Automatic merge from submit-queue

Add eviction-pressure-transitition-period flag to kubelet

This PR does the following:
* add the new flag to control how often a node will go out of memory pressure or disk pressure conditions see: https://github.com/kubernetes/kubernetes/pull/25282
* pass an `eviction.Config` into `kubelet` so we can group config

/cc @vishh
2016-05-13 05:46:15 -07:00
k8s-merge-robot
a503bcd78e Merge pull request #25065 from derekwaynecarr/pod_worker_updates
Automatic merge from submit-queue

PodWorkers UpdatePod takes options struct

First commit from https://github.com/kubernetes/kubernetes/pull/24843 

Second commit:
The `PodWorkers.UpdatePod` operation is updated as follows:
* use options struct to pass arguments
* add a pod status func to allow override status
* add pod termination grace period if sync operation requires a kill pod
* add a call-back that is error aware

Third commit:
Add a `killPodNow` to kubelet that does a blocking kill pod call that properly integrates with pod workers.

The plan is to pass `killPodNow` as a function pointer into the out of resource killer.

```
// KillPodFunc kills a pod.
// The pod status is updated, and then it is killed with the specified grace period.
// This function must block until either the pod is killed or an error is encountered.
// Arguments:
// pod - the pod to kill
// status - the desired status to associate with the pod (i.e. why its killed)
// gracePeriodOverride - the grace period override to use instead of what is on the pod spec
type KillPodFunc func(pod *api.Pod, status api.PodStatus, gracePeriodOverride *int64) error
```

You can see it being used here in the WIP out of resource killer PR.

1344f858fb (diff-92ff0f643237f29824b4929574f84609R277)

/cc @vishh @yujuhong @pmorie
2016-05-12 19:50:26 -07:00
k8s-merge-robot
4dc0b8780c Merge pull request #24742 from derekwaynecarr/format_resources
Automatic merge from submit-queue

Add utility for kubelet to log resource lists consistently

This is a simple utility for logging resource lists with standardized output.

I find it useful when logging work in node eviction, similar to kubelet logging convention for pods in same package.

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/24742)
<!-- Reviewable:end -->
2016-05-12 16:27:02 -07:00
derekwaynecarr
6fefb428c1 Add killPodNow to kubelet 2016-05-12 19:17:08 -04:00
Saad Ali
4aa332e8f2 Merge pull request #25523 from saad-ali/modifyDetachToUseSpec
Modify Detach method to take disk name
2016-05-12 15:53:18 -07:00
Saad Ali
25f37007aa Merge pull request #24846 from pmorie/kubelet-test-loc
Reduce LOC in kubelet tests
2016-05-12 15:52:27 -07:00
Saad Ali
870a1634b1 Merge pull request #24722 from derekwaynecarr/kubelet_testing
Code cleanups in kubelet_test.go
2016-05-12 15:51:00 -07:00
Sami Wagiaalla
56ccd98db8 Add support for PersistentVolumeClaim in Attacher/Detacher interface
- Dereference PVCs in kubelet.
- Add getPersistentVolumebySpec to kubelet.
- Call getPersistentVolumebySpec from mount External volumes
- Add applyPVAnnotations to kubelet.
- Delete persistent_claim plugin.
2016-05-12 17:46:39 -04:00
derekwaynecarr
2c01edf9ea Add eviction-pressure-transition-period flag to kubelet 2016-05-12 17:33:00 -04:00
k8s-merge-robot
08440b5dcc Merge pull request #24836 from Clarifai/gpu-impl
Automatic merge from submit-queue

WIP v0 NVIDIA GPU support

```release-note
* Alpha support for scheduling pods on machines with NVIDIA GPUs whose kubelets use the `--experimental-nvidia-gpus` flag, using the alpha.kubernetes.io/nvidia-gpu resource 
```

Implements part of #24071 for  #23587

I am not familiar with the scheduler enough to know what to do with the scores. Mostly punting for now.

Missing items from the implementation plan: limitranger, rkt support, kubectl
support and docs

cc @erictune @davidopp @dchen1107 @vishh @Hui-Zhi @gopinatht
2016-05-12 14:04:15 -07:00
saadali
bce708c22f Modify Detach method to take disk name 2016-05-12 12:19:24 -07:00
k8s-merge-robot
fd3ef234de Merge pull request #23711 from dcbw/kubenet-promiscuous
Automatic merge from submit-queue

kubenet: set bridge promiscuous mode based on hairpinMode

Closes: https://github.com/kubernetes/kubernetes/issues/23657
Closes: https://github.com/kubernetes/kubernetes/issues/20475

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/23711)
<!-- Reviewable:end -->
2016-05-12 10:33:18 -07:00
Dan Williams
b749902b42 kubenet: set bridge promiscuous mode based on hairpinMode
Closes: https://github.com/kubernetes/kubernetes/issues/23657
Closes: https://github.com/kubernetes/kubernetes/issues/20475
2016-05-12 10:02:33 -05:00
k8s-merge-robot
132ebb091a Merge pull request #24459 from fgrzadkowski/unschedulable_pod
Automatic merge from submit-queue

Add pod condition PodScheduled to detect situation when scheduler tried to schedule a Pod, but failed

Set `PodSchedule` condition to `ConditionFalse` in `scheduleOne()` if scheduling failed and to `ConditionTrue` in `/bind` subresource.

Ref #24404

@mml (as it seems to be related to "why pending" effort)

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/24459)
<!-- Reviewable:end -->
2016-05-12 05:54:06 -07:00
Filip Grzadkowski
a80b1798c4 Add pod condition PodScheduled to detect situation
when scheduler tried to schedule a Pod, but failed.

Ref #24404
2016-05-12 10:21:21 +02:00
k8s-merge-robot
ac50a70992 Merge pull request #25459 from errm/misspell
Automatic merge from submit-queue

Corrects some misspellings in comments

This should help to make
https://goreportcard.com/report/k8s.io/kubernetes#misspell
look a little nicer.
2016-05-11 19:18:30 -07:00
Saad Ali
4b564c95d7 Merge pull request #25325 from swagiaal/attacher-interface-update
Update Attacher/Detacher interfaces.
2016-05-11 11:36:19 -07:00
Ed Robinson
afdbad078a
Corrects some misspellings in comments
This should help to make
https://goreportcard.com/report/k8s.io/kubernetes#misspell
look a little nicer.
2016-05-11 08:16:13 +01:00
k8s-merge-robot
9f00ed6075 Merge pull request #25377 from freehan/kubenetmutex
Automatic merge from submit-queue

modify kubenet mutex and add timer
2016-05-10 17:22:15 -07:00
k8s-merge-robot
3894c7972c Merge pull request #25185 from freehan/kubenetgetpodstatus
Automatic merge from submit-queue

kubenet try to retrieve ip inside pod net namespace

Kubenet currently stores the ips of pods inside a map. Kubelet gets pod ip from kubenet during syncpod. If Kubelet restarts, all pods on the node lost their ips in podStatus. This PR adds logic to retrieve pod IP from pod netns. 

cc: @yujuhong
2016-05-10 16:08:45 -07:00
Tim Hockin
72955770f3 Make IsQualifiedName return error strings 2016-05-10 11:23:23 -07:00
Lucas Käldström
c28524fbab Add operatingsystem/architecture as node labels. Also, display that in status 2016-05-10 20:38:57 +03:00
k8s-merge-robot
f9b8fd0c96 Merge pull request #25011 from zhouhaibing089/addclose
Automatic merge from submit-queue

followup to add http server close method

Fixes #25009, a follow up of https://github.com/kubernetes/kubernetes/pull/24595.
2016-05-09 22:32:02 -07:00
k8s-merge-robot
c4214f743f Merge pull request #24918 from Random-Liu/add-docker-operation-timeout
Automatic merge from submit-queue

Kubelet: Add docker operation timeout

For #23563.
Based on #24748, only the last 2 commits are new.

This PR:
1) Add timeout for all docker operations.
2) Add docker operation timeout metrics
3) Cleanup kubelet stats and add runtime operation error and timeout rate monitoring.
4) Monitor runtime operation error and timeout rate in kubelet perf.

@yujuhong 
/cc @gmarek Because of the metrics change.
/cc @kubernetes/sig-node
2016-05-09 21:51:52 -07:00
k8s-merge-robot
def7639457 Merge pull request #25245 from pmorie/kubelet/cadvisor
Automatic merge from submit-queue

Reduce kubelet LOC: extract cadvisor

Step 2 of #25028 

@yujuhong @kubernetes/sig-node
2016-05-09 21:09:42 -07:00
Rudi Chiarito
362c763fca WIP v0 NVIDIA GPU support
Implements part of #24071

I am not familiar with the scheduler enough to know what to do with the scores. Punting for now.

Missing items from the implementation plan: limitranger, rkt support, kubectl
support and user docs
2016-05-09 19:20:05 -04:00
Minhan Xia
3573903a8d modify kubenet mutex and add timer 2016-05-09 14:54:15 -07:00
Sami Wagiaalla
5258392e6a Update Attacher/Detacher interfaces.
- Expand arguments for Attach/Detach interfaces
- Run waitForDetach asynchronously
2016-05-09 17:18:08 -04:00
derekwaynecarr
a7dfdeb63e Few cleanups in kubelet_test.go 2016-05-09 16:25:50 -04:00
Yifan Gu
5351602f7d rkt: Implement ImageStats() for rkt. 2016-05-09 11:26:40 -07:00
k8s-merge-robot
545d56a63b Merge pull request #24810 from derekwaynecarr/sources_cleanup
Automatic merge from submit-queue

Clean-up sources ready tracking in kubelet

moved sources ready tracking behind an interface, made it thread-safe.
2016-05-09 05:48:09 -07:00
k8s-merge-robot
2cf511b1f5 Merge pull request #24750 from derekwaynecarr/kubelet_eviction_flag_parsing
Automatic merge from submit-queue

Kubelet eviction flag parsers and tests

The first two commits are from https://github.com/kubernetes/kubernetes/pull/24559 that have achieved LGTM.  

The last commit is only part that is interesting, it adds the parsing logic to handle the flags, and reserves `pkg/kubelet/eviction` for eviction manager logic.
2016-05-09 04:15:04 -07:00
Tim Hockin
817abc3213 Kill our atomic pkg, now that 1.6 is req'd 2016-05-08 20:30:37 -07:00
k8s-merge-robot
fe135fc251 Merge pull request #24630 from euank/redundant-created
Automatic merge from submit-queue

kubelet: Remove redundant `Container.Created`

As far as I can tell, this has been supplanted by a) the `DockerJSON.CreatedAt` field and b) the
`ContainerStatus.CreatedAt`, where the first is used for creating the
second.

The `.Created` field was only written to as far as I can see.

cc @yifan-gu & @Random-Liu 

Is there any reason we might want to keep this around?
2016-05-08 16:21:05 -07:00
k8s-merge-robot
d4b1b6776a Merge pull request #24557 from swagiaal/attacher-interface
Automatic merge from submit-queue

 Abstract node side functionality of attachable plugins

- Create PhysicalAttacher interface to abstract MountDevice and
  WaitForAttach.
- Create PhysicalDetacher interface to abstract WaitForDetach and
  UnmountDevice.
- Expand unit tests to check that Attach, Detach, WaitForAttach,
  WaitForDetach, MountDevice, and UnmountDevice get call where
  appropriet.

Physical{Attacher,Detacher} are working titles suggestions welcome. Some other thoughts:
- NodeSideAttacher or NodeAttacher.
- AttachWatcher
- Call this Attacher and call the Current Attacher CloudAttacher.
- DeviceMounter (although there are way too many things called Mounter right now :/)

This is to address: https://github.com/kubernetes/kubernetes/pull/21709#issuecomment-192035382

@saad-ali
2016-05-08 14:04:44 -07:00
k8s-merge-robot
f2f3b49f58 Merge pull request #22575 from MikaelCluseau/wip-issue-20466
Automatic merge from submit-queue

Add subPath to mount a child dir or file of a volumeMount

Allow users to specify a subPath in Container.volumeMounts so they can use a single volume for many mounts instead of creating many volumes. For instance, a user can now use a single PersistentVolume to store the Mysql database and the document root of an Apache server of a LAMP stack pod by mapping them to different subPaths in this single volume.

Also solves https://github.com/kubernetes/kubernetes/issues/20466.
2016-05-08 08:45:15 -07:00
k8s-merge-robot
8217172cd4 Merge pull request #19025 from aveshagarwal/master-imagepull-messages
Automatic merge from submit-queue

Fix parallel image pullers event messages with reasons constants.
2016-05-08 07:31:49 -07:00
Thomas Liu
019efef8f4 Pass dockerOpts by reference to setInfraContainerNetworkConfig 2016-05-07 14:06:06 -07:00
Andy Goldstein
f091ea5eda Handle image digests in node status and image GC
Start including Docker image digests in the node status and consider image digests during image
garbage collection.
2016-05-07 06:50:51 -04:00
k8s-merge-robot
660050631e Merge pull request #25077 from ncdc/pleg-retry
Automatic merge from submit-queue

PLEG: reinspect pods that failed prior inspections

Fix the following sequence of events:

1. relist call 1 successfully inspects a pod (just has infra container)
1. relist call 2 gets an error inspecting the same pod (has infra container and a transient
container that failed to create) and doesn't update the old/new pod records
1. relist calls 3+ don't inspect the pod any more (just has infra container so it doesn't look like
anything changed)

This change adds a new list that keeps track of pods that failed inspection and retries them the
next time relist is called. Without this change, a pod in this state would never be inspected again,
its entry in the status cache would never be updated, and the pod worker would never call syncPod
again because the most recent entry in the status cache has an error associated with it. Without
this change, pods in this state would be stuck Terminating forever, unless the user issued a
deletion with a grace period value of 0.

Fixes #24819 

cc @kubernetes/rh-cluster-infra @kubernetes/sig-node
2016-05-06 22:14:08 -07:00
Robert Bailey
a2d8b0af13 Merge pull request #25027 from xiangpengzhao/fix_funcname
Rename a func in manager.go
2016-05-06 20:41:26 -07:00
Robert Bailey
b274c5b7de Merge pull request #24843 from derekwaynecarr/graceperiod_override
Allow KillPod to take a gracePeriodOverride
2016-05-06 15:17:56 -07:00
Robert Bailey
2493a9de62 Merge pull request #24959 from Random-Liu/fix-flaky-unit-test
Use fake clock in TestGetPodsToSync.
2016-05-06 14:14:02 -07:00
Robert Bailey
2c678f1ec1 Merge pull request #25053 from yujuhong/rm_cahce_update
kubelet: do not force update the runtime cache
2016-05-06 14:11:38 -07:00
Robert Bailey
d9a4e9b49c Merge pull request #25071 from zhouhaibing089/clock-fix
allow equality to avoid flaky on clock
2016-05-06 14:10:43 -07:00
Robert Bailey
303f059efa Merge pull request #24817 from pmorie/clarify-orphaned-cleanup
Clarify orphaned volume cleanup
2016-05-06 13:52:33 -07:00
Robert Bailey
71706e0ad5 Merge pull request #25206 from yifan-gu/fix_hostport
rkt: When host port is zero, we should not forward the port.
2016-05-06 13:43:56 -07:00
Robert Bailey
1474145db1 Merge pull request #24823 from derekwaynecarr/fix-kubelet-typo
Fix function name typo in kubelet
2016-05-06 13:28:45 -07:00
Minhan Xia
1252f5695b add unit tests for kubenet 2016-05-06 12:10:45 -07:00
Random-Liu
148588e6a1 1) Add docker operation timeout metrics.
2) Cleanup kubelet stats and add runtime operation error and timeout
rate monitoring.
3) Monitor runtime operation error and timeout rate in
kubelet perf.
2016-05-06 10:53:13 -07:00
Random-Liu
66678354a0 Add timeout for all docker operation. 2016-05-06 10:53:13 -07:00
derekwaynecarr
7bab6999d4 Allow KillPod to take a gracePeriodOverride 2016-05-06 12:14:43 -04:00
derekwaynecarr
582e662581 Clean-up sources ready tracking 2016-05-06 12:11:29 -04:00
derekwaynecarr
725af223aa Add parsers for eviction thresholds 2016-05-06 12:06:03 -04:00
k8s-merge-robot
16159b8bd0 Merge pull request #24344 from derekwaynecarr/kubelet-lifecycle-callouts
Automatic merge from submit-queue

Define interfaces for kubelet pod admission and eviction

There is too much code and logic in `kubelet.go` that makes it hard to test functions in discrete pieces.

I propose an interface that an internal module can implement that will let it make an admission decision for a pod.  If folks are ok with the pattern, I want to move the a) predicate checking, b) out of disk, c) eviction preventing best-effort pods being admitted into their own dedicated handlers that would be easier for us to mock test.  We can then just write tests to ensure that the `Kubelet` calls a call-out, and we can write easier unit tests to ensure that dedicated handlers do the right thing.

The second interface I propose was a `PodEvictor` that is invoked in the main kubelet sync loop to know if pods should be pro-actively evicted from the machine.  The current active deadline check should move into a simple evictor implementation, and I want to plug the out of resource killer code path as an implementation of the same interface.

 @vishh @timothysc - if you guys can ack on this, I will add some unit testing to ensure we do the call-outs.

/cc @kubernetes/sig-node @kubernetes/rh-cluster-infra
2016-05-06 08:53:35 -07:00
k8s-merge-robot
32256d53aa Merge pull request #25136 from dcbw/kubenet-fixup-txqueuelen
Automatic merge from submit-queue

kubenet: fix up CNI bridge TX queue length if needed

CNI's bridge plugin mis-handles the TxQLen when creating the bridge,
leading to a zero-length TX queue.  This doesn't typically cause
problems (since virtual interfaces don't have hard queue limits)
but when adding traffic shaping, some qdiscs pull their packet
limits from the TX queue length, leading to a packet limit of 0
in some cases.  Until we can depend on a new enough version of
CNI, fix up the TX queue length internally.

Closes: https://github.com/kubernetes/kubernetes/issues/25092
2016-05-06 06:29:31 -07:00
k8s-merge-robot
66ef87347e Merge pull request #24968 from wojtek-t/remove_node_name
Automatic merge from submit-queue

Remove nodeName from predicate signature.

With this approach, I'm getting the initial throughput (in empty cluster) in 1000-node cluster of ~95pods/s.
Which is ~30% improvement.

@kubernetes/sig-scalability
2016-05-06 04:09:13 -07:00
k8s-merge-robot
346ddc52c2 Merge pull request #24748 from Random-Liu/cleanup-with-new-engine-api
Automatic merge from submit-queue

Kubelet: Cleanup with new engine api

Finish step 2 of #23563

This PR:
1) Cleanup go-dockerclient reference in the code.
2) Bump up the engine-api version.
3) Cleanup the code with new engine-api.

Fixes #24076.
Fixes #23809.

/cc @yujuhong
2016-05-06 03:16:53 -07:00
Wojciech Tyczynski
a51f266ebf Remove nodeName from predicate signature. 2016-05-06 11:23:37 +02:00
k8s-merge-robot
4a00266f40 Merge pull request #25224 from Random-Liu/delete-pod-with-uid
Automatic merge from submit-queue

Delete pod with uid as precondition.

Addressed https://github.com/kubernetes/kubernetes/issues/25169#issuecomment-217033202.

Fix #25169 
Fix #24937

This PR change status manager to delete pods with uid as a precondition, so that kubelet won't delete pods with different uid but the same name and namespace accidentally.

/cc @yujuhong
2016-05-05 22:02:14 -07:00
Paul Morie
bc5d7a1bca Reduce kubelet LOC: extract cadvisor 2016-05-06 00:26:48 -04:00
Mikaël Cluseau
06900a934d Introduce subPath in VolumeMount 2016-05-06 15:08:41 +11:00
Minhan Xia
ae6f9ab970 kubenet try to retrieve ip inside pod net namespace 2016-05-05 17:57:32 -07:00
k8s-merge-robot
03e7e08e70 Merge pull request #25124 from pmorie/kubelet-getters
Automatic merge from submit-queue

Reduce kubelet LOC: extract getters

Step 1 of #25028 as discussed in @kubernetes/sig-node meeting
2016-05-05 16:52:09 -07:00
Random-Liu
cb6fe9e7ef Delete pod with uid as precondition. 2016-05-05 14:34:49 -07:00
zhouhaibing089
5923fd352e followup to add http server close method 2016-05-05 12:04:41 +08:00
Yifan Gu
36f3185223 rkt: When host port is zero, we should not forward the port. 2016-05-04 19:02:39 -07:00
Minhan Xia
04b80f7fb8 rename Status interface to GetPodNetworkStatus 2016-05-04 13:46:31 -07:00
Minhan Xia
265fdd9344 add NetworkStatus in NetworkPlugin interface for kubelet to consume 2016-05-04 13:46:31 -07:00
Dan Williams
aad6535a00 kubenet: fix up CNI bridge TX queue length if needed
CNI's bridge plugin mis-handles the TxQLen when creating the bridge,
leading to a zero-length TX queue.  This doesn't typically cause
problems (since virtual interfaces don't have hard queue limits)
but when adding traffic shaping, some qdiscs pull their packet
limits from the TX queue length, leading to a packet limit of 0
in some cases.  Until we can depend on a new enough version of
CNI, fix up the TX queue length internally.
2016-05-04 10:14:40 -05:00
Sami Wagiaalla
71e7dba845 Abstract node side functionality of attachable plugins
- Expand Attacher/Detacher interfaces to break up work more
  explicitly.
- Add arguments to all functions to avoid having implementers store
  the data needed for operations.
- Expand unit tests to check that Attach, Detach, WaitForAttach,
  WaitForDetach, MountDevice, and UnmountDevice get call where
  appropriet.
2016-05-04 10:18:39 -04:00
Paul Morie
7521503ab9 Reduce kubelet LOC: extract getters 2016-05-04 02:25:22 -04:00
Paul Morie
d1e0e726f2 Reduce LOC in kubelet tests 2016-05-03 22:45:08 -04:00
zhouhaibing089
67747ca08f allow equality to avoid flaky on clock 2016-05-04 09:11:22 +08:00
Andy Goldstein
3a87bfb6f7 PLEG: reinspect pods that failed prior inspections
Fix the following sequence of events:

1. relist call 1 successfully inspects a pod (just has infra container)
1. relist call 2 gets an error inspecting the same pod (has infra container and a transient
container that failed to create) and doesn't update the old/new pod records
1. relist calls 3+ don't inspect the pod any more (just has infra container so it doesn't look like
anything changed)

This change adds a new list that keeps track of pods that failed inspection and retries them the
next time relist is called. Without this change, a pod in this state would never be inspected again,
its entry in the status cache would never be updated, and the pod worker would never call syncPod
again because the most recent entry in the status cache has an error associated with it. Without
this change, pods in this state would be stuck Terminating forever, unless the user issued a
deletion with a grace period value of 0.
2016-05-03 11:06:35 -04:00
Rudi Chiarito
a2051b2d47 Preserve query strings in HTTP probes instead of escaping them
This might also preserve fragments, for those crazy enough to pass them.

I am using url.Parse() on the path in order to get path/query/fragment
and also deliberately avoiding the addition of more fields to the API.
2016-05-02 20:53:19 -04:00
Random-Liu
4cca5b2290 Use fake clock in TestGetPodsToSync to fix flake. 2016-05-02 16:05:36 -07:00
Yu-Ju Hong
43fc67a5f6 kubelet: do not force update the runtime cache
Pod workers don't rely on the old runtime cache to sync pods anymore. There is
no need to force update the cache on every container event.
2016-05-02 15:10:00 -07:00
k8s-merge-robot
879c1807c8 Merge pull request #24821 from freehan/kubenetmutex
Automatic merge from submit-queue

add mutex for kubenet

I saw a bunch of weird cases in kubenet suite. For instance, SetUpPod return successfully, but right after that, kubelet cannot retrieve podIP from podCIDR map.


cc: @dcbw @thockin 

ref: #24211
2016-05-02 13:16:23 -07:00
Xiangpeng Zhao
d27127aaf8 Rename a func in order to be difference with variable
Rename `defaultSecurityOpt` to `getDefaultSecurityOpt`
2016-05-02 03:02:49 +08:00
feisky
831203c19b Remove RunInContainer interface in Kuberlete Runtime interface 2016-05-01 20:21:15 +08:00
Clayton Coleman
fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
Random-Liu
7796b619fd Cleanup the code with new engine-api 2016-04-29 13:34:38 -07:00
Random-Liu
3876972d3f Clean up go-dockerclient reference. 2016-04-29 13:32:19 -07:00
Arvinderpal
dede4d507c Sets IgnoreUnknown=1 in CNI_ARGS
K8 uses CNI_ARGS to pass pod namespace, name and infra container
id to the CNI network plugin. CNI logic will throw an error
if these args are not known to it, unless the user specifies
IgnoreUnknown as part of CNI_ARGS. This PR sets IgnoreUnknown=1
to prevent the CNI logic from erroring and blocking pod setup.
https://github.com/appc/cni/pull/158
https://github.com/appc/cni/issues/126
2016-04-29 07:40:15 -07:00
derekwaynecarr
033ae3e37e Define interfaces for kubelet observing admission, sync loop, sync pod 2016-04-29 10:16:03 -04:00
k8s-merge-robot
ad67363c12 Merge pull request #24362 from ArtfulCoder/hostname-field
Automatic merge from submit-queue

Promote Pod Hostname & Subdomain to fields (were annotations)

Deprecating the podHostName, subdomain and PodHostnames annotations and created corresponding new fields for them on PodSpec and Endpoints types.

Annotation doc: #22564
Annotation code: #20688
2016-04-29 01:06:45 -07:00
k8s-merge-robot
492762d394 Merge pull request #24911 from pmorie/kubelet-godoc
Automatic merge from submit-queue

Add godoc for some kubelet funcs

Chipping away at that old boulder

@kubernetes/sig-node
2016-04-28 14:52:45 -07:00
Paul Morie
b9f0e8c610 Add godoc for some kubelet funcs 2016-04-28 17:03:37 -04:00
Abhishek Shah
8a3ed48808 Added Hostname and Subdomain field to Pod.Spec 2016-04-28 10:56:56 -07:00
k8s-merge-robot
7a725418af Merge pull request #24622 from derekwaynecarr/pod_qos_util
Automatic merge from submit-queue

Add utility for determining qos of a pod

@vishh - per slack chat.
2016-04-28 07:26:50 -07:00
k8s-merge-robot
00308f7a9f Merge pull request #24598 from wojtek-t/improve_scheduler_predicates
Automatic merge from submit-queue

Store node information in NodeInfo

This is significantly improving scheduler throughput.

On 1000-node cluster:
- empty cluster: ~70pods/s
- full cluster: ~45pods/s
Drop in throughput is mostly related to priority functions, which I will be looking into next (I already have some PR #24095, but we need for more things before).

This is roughly ~40% increase.
However, we still need better understanding of predicate function, because in my opinion it should be even faster as it is now. I'm going to look into it next week.

@gmarek @hongchaodeng @xiang90
2016-04-28 02:17:59 -07:00
k8s-merge-robot
d0b887e4e0 Merge pull request #24595 from zhouhaibing089/httpserverclose
Automatic merge from submit-queue

Uncomment the code that caused by #19254

Fix https://github.com/kubernetes/kubernetes/issues/24546.

@lavalamp
2016-04-28 01:41:16 -07:00
k8s-merge-robot
04b70bc6c7 Merge pull request #24376 from resouer/fix-cache
Automatic merge from submit-queue

Do not update cache with so much effort

Fixes: #24298
1. Remove automatic update
2. Every time we check if we can get valid value from cache, if not, get the value directly from api

cc @Random-Liu
2016-04-28 01:00:33 -07:00
k8s-merge-robot
4c7abddc1c Merge pull request #24567 from yifan-gu/post_start_hook
Automatic merge from submit-queue

rkt: Add post-start hook support.

This adds a poll-and-timeout procedure after the pod is
started, to make sure the post-start hooks execute when the
container is actually running.

This is a temporal workaround for implementing post-hooks,
a long term solution is to use lifecycle event to trigger
those hooks, see https://github.com/kubernetes/kubernetes/issues/23084.

Also this fixes a bug of getting container ID for a non-running
container when running pre-stop hook.


cc @sjpotter @euank @kubernetes/sig-node
2016-04-27 11:14:35 -07:00
Paul Morie
11113a00d7 Clarify log messages for orphaned volume cleanup 2016-04-27 13:20:43 -04:00
k8s-merge-robot
7e430f543b Merge pull request #24545 from swagiaal/rename-cleaner-tuple
Automatic merge from submit-queue

Rename cleanerTuple to cleaner

Rename cleanerTuple to cleaner.
This is a follow up to address: https://github.com/kubernetes/kubernetes/pull/19503#discussion_r49538769

@saad-ali
2016-04-27 09:51:26 -07:00
Harry Zhang
d6f26b68bc Use expiration cache for version check 2016-04-27 05:42:50 -04:00
derekwaynecarr
ec5670fd73 Fix function name typo in kubelet 2016-04-26 17:29:44 -04:00
Minhan Xia
c8470c49ac add mutex for kubenet 2016-04-26 13:58:10 -07:00
k8s-merge-robot
55cb7cceb3 Merge pull request #23632 from stefwalter/parse-repository-tag-removed
Automatic merge from submit-queue

Fix use of docker removed ParseRepositoryTag() function

Docker has removed the ParseRepositoryTag() function in
leading to failures using the kubernetes Go client API.

Failure:

```
../k8s.io/kubernetes/pkg/util/parsers/parsers.go:30: undefined: parsers.ParseRepositoryTag
```
2016-04-26 09:49:25 -07:00
k8s-merge-robot
a586177360 Merge pull request #23740 from dcbw/kubenet-shaper
Automatic merge from submit-queue

kubenet: hook pod bandwidth resources up to shaper

@bprashanth @thockin Last bit for shaping.
2016-04-25 22:15:42 -07:00
k8s-merge-robot
cf38d68734 Merge pull request #23595 from vishh/image-accounting
Automatic merge from submit-queue

Collect and expose runtime's image storage usage via Kubelet's /stats/summary endpoint

This information is useful to users since docker images are typically not stored on the root filesystem.

Kubelet will also consume this feature in the future to decide is evicting images will help with disk usage on the nodes.

cc @kubernetes/sig-node
2016-04-25 21:34:30 -07:00
Tim St. Clair
2201554b3f Disable cAdvisor event storage by default 2016-04-25 17:32:16 -07:00
Vishnu kannan
e566948a75 Track image storage usage for docker containers
add image fs info to summary stats API.
Adding node e2e test for image stats.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-04-25 16:00:34 -07:00
Euan Kemp
941caa1372 rkt: Pass through os argument
This was lost in a rebase in #24496 and, while not required to build, is
required to function correctly.
2016-04-25 12:56:25 -07:00
Euan Kemp
7d34b0b09d kubelet: Remove redundant Container.Created
This has been supplanted by a) the DockerJSON.CreatedAt field and b) the
ContainerStatus.CreatedAt, where the first is used for creating the
second.

The `.Created` field was only written to as far as I can see.
2016-04-25 12:19:24 -07:00
derekwaynecarr
80bf8cb0e4 Add utility for kubelet to log resources consistently 2016-04-25 14:46:56 -04:00
zhouhaibing089
bf1a3f99c0 Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
Stef Walter
481dbca8bc Fix use of docker removed ParseRepositoryTag() function
Docker has removed the ParseRepositoryTag() function in
leading to failures using the kubernetes Go client API.

Lets use github.com/docker/distribution reference.ParseNamed()
instead.

Failure:

../k8s.io/kubernetes/pkg/util/parsers/parsers.go:30: undefined: parsers.ParseRepositoryTag
2016-04-25 11:37:10 +02:00
Wojciech Tyczynski
1835c8528d Store node information in NodeInfo 2016-04-25 10:08:05 +02:00
k8s-merge-robot
4f9e8729bf Merge pull request #23800 from resouer/image-refactor
Automatic merge from submit-queue

Refactor image related functions to use docker engine-api

ref #23563 

Hopes can do some help, cc @Random-Liu 

If it's ok, will add more work here.
2016-04-23 20:01:41 -07:00
k8s-merge-robot
30891c7f3f Merge pull request #24496 from euank/rkt-finished-at
Automatic merge from submit-queue

rkt: Return `FinishedAt` for pod

This is implemented via touching a file on stop as a hook in the systemd
unit. The ctime of this file is then used to get the `finishedAt` time
in the future.
In addition, this changes the `startedAt` and `createdAt` to use the api
server's results rather than the annotations it previously used.

It's possible we might want to move this into the api in the future.

Fixes #23887


I did the following manual testing:
```
$ cat ./examples/output/exit-output.yml 
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: exit
  name: exit-output
spec:
  restartPolicy: Never
  containers:
    - name: exit
      image: busybox
      command: ["sh", "-c", "echo Exiting in 60; sleep 60; echo goodbye"]
$ kubectl create -f ./examples/exit/exit-output.yaml
$ # wait
$ kubectl describe pod exit-output | grep State -A 4
    State:		Terminated
      Reason:		Completed
      Exit Code:	0
      Started:		Tue, 19 Apr 2016 13:23:13 -0700
      Finished:		Tue, 19 Apr 2016 13:24:13 -0700
$ kubectl logs exit-output
Exiting in 60
goodbye
```

I double checked as well that the file at `/var/lib/kubelet/pods/$id/finished-$id` existed and looked as expected.

This is related to https://github.com/coreos/rkt/issues/1789#issuecomment-207111814 and follows https://github.com/kubernetes/kubernetes/pull/24367 + https://github.com/coreos/rkt/issues/2445

cc @jonboulle @iaguis @yifan-gu @kubernetes/sig-node
2016-04-23 18:29:07 -07:00
Harry Zhang
a3939473d3 Refactor PullImage RemoveImage methods
Refactor image remove
2016-04-23 10:33:47 -04:00
Harry Zhang
3918eee5bf Refactor InspectImage method 2016-04-23 16:37:15 +08:00
Harry Zhang
7ecb44fe16 Refactor list image to use new api 2016-04-23 16:37:15 +08:00
Yifan Gu
a12a7c2a2c rkt: Add post-start hook support.
This adds a poll-and-timeout procedure after the pod is
started, to make sure the post-start hooks execute when the
container is actually running.

This is a temporal workaround for implementing post-hooks,
a long term solution is to use lifecycle event to trigger
those hooks, see https://github.com/kubernetes/kubernetes/issues/23084.

Also this fixes a bug of getting container ID for a non-running
container when running pre-stop hook.
2016-04-22 15:38:05 -07:00
Euan Kemp
a6718f5969 rkt: Implement pod FinishedAt
This is implemented via touching a file on stop as a hook in the systemd
unit. The ctime of this file is then used to get the `finishedAt` time
in the future.
In addition, this changes the `startedAt` and `createdAt` to use the api
server's results rather than the annotations it previously used.

It's possible we might want to move this into the api in the future.

Fixes #23887
2016-04-22 15:34:55 -07:00
gmarek
e0712f7e57 Fix MaxPods feature in scheduler 2016-04-22 22:49:50 +02:00
k8s-merge-robot
06c2db4fe2 Merge pull request #23907 from Random-Liu/all-but-image-related-functions
Automatic merge from submit-queue

Kubelet: Refactor all but image related functions in DockerInterface

For #23563.
Based on #23699 and #23844.

Only last 3 commits are new. This PR refactored all functions except image related functions, including:
* CreateExec
* StartExec
* InspectExec
* AttachToContainer
* Logs
* Info
* Version

@kubernetes/sig-node
2016-04-21 20:57:38 -07:00
derekwaynecarr
2b9cfd414d Add utility for determining qos of a pod 2016-04-21 17:15:17 -04:00
k8s-merge-robot
9d4eee63ab Merge pull request #24589 from derekwaynecarr/fix_shm
Automatic merge from submit-queue

docker daemon complains SHM size must be greater than 0

Fixes https://github.com/kubernetes/kubernetes/issues/24588

I am hitting this on Fedora 23 w/ docker 1.9.1 using systemd cgroup-driver.

```
$ docker version
Client:
 Version:         1.9.1
 API version:     1.21
 Package version: docker-1.9.1-9.gitee06d03.fc23.x86_64
 Go version:      go1.5.3
 Git commit:      ee06d03/1.9.1
 Built:           
 OS/Arch:         linux/amd64

Server:
 Version:         1.9.1
 API version:     1.21
 Package version: docker-1.9.1-9.gitee06d03.fc23.x86_64
 Go version:      go1.5.3
 Git commit:      ee06d03/1.9.1
 Built:           
 OS/Arch:         linux/amd64
```

Not sure why I am on the only one hitting it right now, but putting this out here for comment.

/cc @kubernetes/sig-node @kubernetes/rh-cluster-infra @smarterclayton
2016-04-21 12:11:03 -07:00
Random-Liu
d981fee2ee Refactor Info and Version. 2016-04-21 12:02:50 -07:00
derekwaynecarr
cbf1cb81a9 SHM size must be greater than 0 2016-04-21 11:45:28 -04:00
Chao Xu
8537095415 use fully qualified resource in fake clients actions 2016-04-20 19:44:40 -07:00
Sami Wagiaalla
234d599763 Rename cleanerTuple to cleaner 2016-04-20 14:38:40 -04:00
goltermann
3fa6c6f6d9 Enable vet 2016-04-20 09:48:24 -07:00
Minhan Xia
a7783e5334 add log line before invoking network plugin 2016-04-19 15:34:06 -07:00
Dan Williams
8086d64131 kubenet: hook pod bandwidth resources up to shaper 2016-04-19 15:32:46 -05:00
k8s-merge-robot
d37e6ad332 Merge pull request #24126 from Random-Liu/fix-pull-image
Automatic merge from submit-queue

Fix PullImage and add corresponding node e2e test

Fixes #24101. This is a bug introduced by #23506, since ref #23563.

The root cause of #24101 is described [here](https://github.com/kubernetes/kubernetes/issues/24101#issuecomment-208547623).

This PR
1) Fixes #24101 by decoding the messages returned during pulling image, and return error if any of the messages contains error.
2) Add the node e2e test to detect this kind of failure.
3) Get present check out of `ConformanceImage.Remove()` and `ConformanceImage.Pull()`. Because sometimes we may expect error to occur in `PullImage()` and `RemoveImage()`, but even that doesn't happen, the `Present()` check will still return error and let the test pass.

@yujuhong @freehan @liangchenye 

Also /cc @resouer, because he is doing the image related functions refactoring.
2016-04-18 07:05:44 -07:00
k8s-merge-robot
d0b52dd8b3 Merge pull request #24107 from yifan-gu/load_bridge
Automatic merge from submit-queue

kubenet: Load bridge netfilter module in Init().

This lets the kubenet loads the bridge netfilter module and set bridge-nf-call-iptables=1

Fix #24018 

Follow up PRs would be appreciate if we also load the module in the bridge plugin binary itself. Ref https://github.com/kubernetes/kubernetes/issues/24018#issuecomment-207682514

cc @kubernetes/sig-node @sjpotter @euank
2016-04-18 00:08:25 -07:00
k8s-merge-robot
9637b09f69 Merge pull request #24047 from derekwaynecarr/reuse_summary_provider
Automatic merge from submit-queue

Expose SummaryProvider for reuse by other parts of kubelet

To support out of resource killing in the kubelet, we will introduce a new top-level module that will ensure node stability by checking if eviction thresholds have been met for memory and file-system usage on the node.  In addition, it will then need information about pod memory and disk usage in order to make an eviction selection.  Currently, this information is collected in `SummaryProvider` but it's hidden away and not available for re-use by other top-level modules of the kubelet.  This initial refactor adds the ability to get summary stat information from the `ResourceAnalyzer` so it can be reused by other top-level modules.

I suspect we will further re-factor this area as code evolves, but this unblocks further progress on out-of-resource killing.

/cc @vishh @timothysc @kubernetes/sig-node @kubernetes/rh-cluster-infra
2016-04-17 20:22:57 -07:00
Random-Liu
d33b69a0de Refactor AttachToContainer and Logs. 2016-04-17 13:00:52 -07:00
Random-Liu
de5f407058 Refactor CreateExec, StartExec and InspectExec. 2016-04-17 12:58:47 -07:00
k8s-merge-robot
75b49f591a Merge pull request #23948 from derekwaynecarr/memory_available
Automatic merge from submit-queue

Add memory available to summary stats provider

To support out of resource killing when low on memory, we want to let operators specify eviction thresholds based on available memory instead of memory usage for ease of use when working with heterogeneous nodes.  

So for example, a valid eviction threshold would be the following: 
* If node.memory.available < 200Mi for 30s, then evict pod(s)

For the node, `memory.availableBytes` is always known since the `memory.limit_in_bytes` is always known for root cgroup.  For individual containers in pods, we only populate the `availableBytes` if the container was launched with a memory limit specified.  When no memory limit is specified, the cgroupfs sets a value of 1 << 63 in the `memory.limit_in_bytes` so we look for a similar max value to handle unbounded limits, and ignore setting `memory.availableBytes`.

FYI @vishh @timstclair - as discussed on Slack.

/cc @kubernetes/sig-node @kubernetes/rh-cluster-infra
2016-04-17 06:32:36 -07:00
Wojciech Tyczynski
495e274500 Merge pull request #24384 from Random-Liu/disable-version-cache
Disable the version cache to fix #24298.
2016-04-17 04:48:07 -07:00
Random-Liu
19249a8cbc Disable the version cache to fix #24298. 2016-04-17 03:14:03 -07:00
k8s-merge-robot
8990897ce6 Merge pull request #23940 from freehan/netinterface
Automatic merge from submit-queue

switch to use ContainerID instead of DockerID in network plugin interface

fix: #15663
2016-04-17 01:12:51 -07:00
k8s-merge-robot
2e87b0e363 Merge pull request #23699 from Random-Liu/container-related-functions
Automatic merge from submit-queue

Kubelet: Refactor container related functions in DockerInterface

For #23563.
Based on #23506, will rebase after #23506 is merged.

The last 4 commits of this PR are new.
This PR refactors all container lifecycle related functions in DockerInterface, including:
* ListContainers
* InspectContainer
* CreateContainer
* StartContainer
* StopContainer
* RemoveContainer

@kubernetes/sig-node
2016-04-16 21:41:19 -07:00
k8s-merge-robot
bf69b2a862 Merge pull request #24302 from therc/patch-1
Automatic merge from submit-queue

Remove dead code in kubelet.go
2016-04-16 00:00:29 -07:00
k8s-merge-robot
61c0424b27 Merge pull request #24301 from yifan-gu/host_net
Automatic merge from submit-queue

rkt: Fix hostnetwork.

Mount hosts' /etc/hosts, /etc/resolv.conf, set host's hostname
when running the pod in the host's network.

Fix #24235 

cc @kubernetes/sig-node
2016-04-15 13:59:27 -07:00
k8s-merge-robot
f83c0aef4a Merge pull request #23852 from yifan-gu/previous_log
Automatic merge from submit-queue

rkt: Use rkt pod's uuid as the systemd service file's name.

Previously, the service file's name is 'k8s_${POD_UID}.service',
which means we need to `systemctl daemon-reload` if the we replace
the content of the service file (e.g. pod is restarted).

However this makes the journal in the previous pod get disconnected.

This PR solves the issue by using the unique rkt uuid as the service
file's name. After the change, the service file's name will be:
'k8s_${rkt_uuid}.service'.


Fix #23691
2016-04-15 12:04:06 -07:00
k8s-merge-robot
d56ec66e7c Merge pull request #23667 from yifan-gu/config
Automatic merge from submit-queue

rkt: Update the directory path for saving auth config.

Since #23308 is merged, now we have more stable way to determine where to store the auth configs.

cc @yujuhong @sjpotter
2016-04-15 03:22:44 -07:00
k8s-merge-robot
8f3c623287 Merge pull request #23594 from Clarifai/ecr
Automatic merge from submit-queue

Allow lazy binding in credential providers; don't use it in AWS yet

This is step one for cross-region ECR support and has no visible effects yet.
I'm not crazy about the name LazyProvide. Perhaps the interface method could
remain like that and the package method of the same name could become
LateBind(). I still don't understand why the credential provider has a
DockerConfigEntry that has the same fields but is distinct from
docker.AuthConfiguration. I had to write a converter now that we do that in
more than one place.

In step two, I'll add another intermediate, lazy provider for each AWS region,
whose empty LazyAuthConfiguration will have a refresh time of months or years.
Behind the scenes, it'll use an actual ecrProvider with the usual ~12 hour
credentials, that will get created (and later refreshed) only when kubelet is
attempting to pull an image. If we simply turned ecrProvider directly into a
lazy provider, we would bypass all the caching and get new credentials for
each image pulled.
2016-04-14 23:42:07 -07:00
k8s-merge-robot
ea932c0956 Merge pull request #21224 from Random-Liu/add-unit-test-for-convert-function
Automatic merge from submit-queue

Kubelet: Better-defined Container Waiting state

For issue #20478 and #21125.

This PR corrected logic and add unit test for `ShouldContainerBeRestarted()`, cleaned up `Waiting` state related code and added unit test for `generateAPIPodStatus()`.

Fixes #20478
Fixes #17971

@yujuhong
2016-04-14 23:05:55 -07:00
Yifan Gu
dfb6dd010f rkt: Fix hostnetwork.
Mount hosts' /etc/hosts, /etc/resolv.conf, set host's hostname
when running the pod in the host's network.

Besides, do not set the DNS flags when running in host's network.
2016-04-14 18:44:09 -07:00
Yifan Gu
02c0f41c88 kubenet: Load bridge netfilter module in Init().
Also set 'bridge-nf-call-iptables' to true.
2016-04-14 18:43:22 -07:00
Yifan Gu
f64c47ef80 rkt: Use rkt pod's uuid as the systemd service file's name.
Previously, the service file's name is 'k8s_${POD_UID}.service',
which means we need to `systemctl daemon-reload` if the we replace
the content of the service file (e.g. pod is restarted).

However this makes the journal in the previous pod get disconnected.

This PR solves the issue by using the unique rkt uuid as the service
file's name. After the change, the service file's name will be:
'k8s_${rkt_uuid}.service'.
2016-04-14 18:42:44 -07:00
Yifan Gu
e803f55e20 rkt: Update the directory path for saving auth config. 2016-04-14 18:40:14 -07:00
Rudi C
43d2b572ef Remove dead code in kubelet.go
The only call to this was removed in #20204 by @HaiyangDING

cc @vishh
2016-04-14 20:17:22 -04:00
Random-Liu
d3d98b372b Refactor StartContainer, StopContainer and RemoveContainer. 2016-04-14 17:05:46 -07:00
Random-Liu
ba4a5ed39e Refactor CreateContainer. 2016-04-14 17:05:46 -07:00
Random-Liu
da07fa9dd5 Refactor InspectContainer. 2016-04-14 17:05:46 -07:00
Random-Liu
b348e7d1c9 Refactr ListContainers. 2016-04-14 17:05:05 -07:00
Daniel Smith
86b7dbb2c6 Merge pull request #23844 from Random-Liu/proper-fake-docker-version
Set fake docker client to minimum required version.
2016-04-14 16:55:47 -07:00
k8s-merge-robot
9c0a0833b3 Merge pull request #23532 from yifan-gu/lifecycle
Automatic merge from submit-queue

rkt: Add pre-stop lifecycle hooks for rkt.

When a pod is being terminated, the pre-stop hooks of all the containers
will be run before the containers are stopped.


cc @yujuhong @Random-Liu @sjpotter
2016-04-14 06:34:10 -07:00
k8s-merge-robot
df21974730 Merge pull request #21741 from resouer/oomscore
Automatic merge from submit-queue

Use OomScoreAdj in kubelet for newer docker api

fixes: #20121

Related: client side PR [pull 454](https://github.com/fsouza/go-dockerclient/pull/454)

Godeps has already been updated to `0099401a7342ad77e71ca9f9a57c5e72fb80f6b2`, which included client side's modification. But it seems too aggressive to upgrade the docker api version of kubelet.
2016-04-14 03:07:41 -07:00
Daniel Smith
498dc418ed Merge pull request #23122 from screeley44/volmount_errors
Return more useful error information when a persistent volume fails to mount
2016-04-13 14:20:51 -07:00
k8s-merge-robot
9c5680bac3 Merge pull request #23904 from pmorie/kubelet-volumes-comments
Automatic merge from submit-queue

Add godoc to kubelet/volumes.go

Noticed that `mountExternalVolumes`, of all things, was missing Godoc while working w/ @screeley44.  Decided to add some tonight since I have been making noise about grokkability of the kubelet lately.

@kubernetes/sig-storage
2016-04-13 03:01:32 -07:00
Harry Zhang
c31ec5607a Refactor version cache into kubelet util 2016-04-13 00:42:22 -04:00
harry
f9e2f522b4 Add cache for api version
Expose runtime interface
2016-04-12 22:34:59 -04:00
Harry Zhang
b4244a079f Implement OomScoreAdj in kubelet 2016-04-12 22:34:58 -04:00
Lantao Liu
41953bae49 Add unit test for generateAPIPodStatus 2016-04-12 16:37:26 -07:00
Lantao Liu
b49357be22 Cleanup the waiting state related code 2016-04-12 16:37:26 -07:00
Yifan Gu
cc4336829d rkt: Add pre-stop lifecycle hooks for rkt.
When a pod is being terminated, the pre-stop hooks of all the containers
will be run before the containers are stopped.
2016-04-12 13:10:51 -07:00
Random-Liu
2b9f6bea18 Fix PullImage and corresponding node e2e test. 2016-04-12 10:42:25 -07:00
k8s-merge-robot
e93c0d727f Merge pull request #20204 from HaiyangDING/predlib
Automatic merge from submit-queue

Move predicates into library

This PR tries to implement #12744 

Any suggestions/ideas are welcome. @davidopp 

current state: integration test fails if including podCount check in Kubelet.
    
DONE:
    1. refactor all predicates: predicates return fitOrNot(bool) and error(Error) in which the latter is of type PredicateFailureError or InsufficientResourceError
    2. GeneralPredicates() is a predicate function, which includes serveral other predicate functions (PodFitsResource, PodFitsHost, PodFitsHostPort). It is registered as one of the predicates in DefaultAlgorithmProvider, and is also called in canAdmitPod() in Kubelet and should be called by other components (like rescheduler, etc if necessary. See discussion in issue #12744
TODO:
    1. determine which predicates should be included in GeneralPredicates()
    2. separate GeneralPredicates() into: a.) GeneralPredicatesEvictPod() and b.) GeneralPredicatesNotEvictPod()
    3. DaemonSet should use GeneralPredicates()
2016-04-12 07:44:45 -07:00
k8s-merge-robot
fda8ec2f5d Merge pull request #24015 from yujuhong/rss_memory
Automatic merge from submit-queue

kubele: add RSS memroy to the summary API
2016-04-12 05:51:35 -07:00
k8s-merge-robot
6a87dba0b8 Merge pull request #22733 from resouer/flow-control
Automatic merge from submit-queue

Add flow control pkg

minor fix ref #15634
Refactor pkg names in back off related files
2016-04-11 06:18:51 -07:00
HaiyangDING
41ed85479a move predicates into library (address #12744)
DONE:
1. refactor all predicates: predicates return fitOrNot(bool) and error(Error) in which the latter is of type
	PredicateFailureError or InsufficientResourceError. (For violation of either MaxEBSVolumeCount or
        MaxGCEPDVolumeCount, returns one same error type as ErrMaxVolumeCountExceeded)
2. GeneralPredicates() is a predicate function, which includes serveral other predicate functions (PodFitsResource,
        PodFitsHost, PodFitsHostPort). It is registered as one of the predicates in DefaultAlgorithmProvider, and
        is also called in canAdmitPod() in Kubelet and should be called by other components (like rescheduler, etc)
        if necessary. See discussion in issue #12744
3. remove podNumber check from GeneralPredicates
4. HostName is now verified in Kubelet's canAdminPod(). add TestHostNameConflicts in kubelet_test.go
5. add getNodeAnyWay() method in Kubelet to get node information in standaloneMode

TODO:
1. determine which predicates should be included in GeneralPredicates()
2. separate GeneralPredicates() into:
	a. GeneralPredicatesEvictPod() and
	b. GeneralPredicatesNotEvictPod()
3. DaemonSet should use GeneralPredicates()
2016-04-11 00:57:03 +08:00
Jeff Lowdermilk
1a9cb97bdd Merge pull request #23658 from Random-Liu/fix-termination-message-path
Fix TerminationMessagePath
2016-04-08 20:54:14 -07:00
Jeff Lowdermilk
2dd9bf535f Merge pull request #23723 from intelsdi-x/stage1_image_rkt_deprecated_flag
keep deprecated flag stage1-image with rkt
2016-04-08 20:53:09 -07:00
derekwaynecarr
22fc4340a7 Expose SummaryProvider for reuse by other parts of kubelet 2016-04-08 14:25:39 -04:00
Yu-Ju Hong
388b4ff569 kubele: add RSS memroy to the summary API 2016-04-08 11:05:20 -07:00
derekwaynecarr
a9e362d70c Add memory available to summary stats provider 2016-04-08 12:30:41 -04:00
Scott Creeley
36970deeca reword volume mount errUnsupportedVolume error and surface true error to describe event 2016-04-07 09:55:01 -04:00
Minhan Xia
3c58d1ffd3 switch to use ContainerID instead of DockerID in network plugin interface 2016-04-06 16:04:52 -07:00
Minhan Xia
f690220b5c Merge pull request #23704 from freehan/kubenet
Update cni binary

#23712 is depending on this. Not sure why this one gets in first. Hand merging this
2016-04-06 15:47:42 -07:00
Paul Morie
b98ff213a9 Add godoc to kubelet/volumes.go 2016-04-06 02:16:36 -04:00
Random-Liu
8fb7ee38b0 Set fake docker client to minimum required version. 2016-04-04 17:41:01 -07:00
k8s-merge-robot
a2145d7b1c Merge pull request #23613 from Random-Liu/remove-out-of-date-code
Automatic merge from submit-queue

Kubelet: Remove nsinit related code and bump up minimum docker apiversion

Docker has native exec support after 1.3.x. We never need this code now.

As for the apiversion, because Kubernetes supports 1.8.x - 1.10.x now, we should bump up the minimum docker apiversion.
@yujuhong I checked the [changes](https://github.com/docker/engine-api/blob/master/types/versions/v1p20/types.go), we are not relying on any of those changes. So #23506 should work with docker 1.8.x+
2016-04-03 07:34:26 -07:00
harry
5fe773d37c Add flow control pkg
Refactor pkg names in flow control related files
2016-04-03 11:28:03 +08:00
k8s-merge-robot
b43ccd6e2b Merge pull request #23506 from Random-Liu/new-docker-client
Automatic merge from submit-queue

Kubelet: Start using the official docker engine-api

For #23563.

This is the **first step** in the roadmap of switching to docker [engine-api](https://github.com/docker/engine-api).
In this PR, I keep the old `DockerInterface` and implement it with the new engine-api.
With this approach, we could switch to engine-api with minimum change, so that we could:
* Test the engine-api without huge refactoring.
* Send following PRs to refactor functions in `DockerInterface` separately so as to avoid a huge change in one PR.

I've tested this PR locally, it passed all the node conformance test:
```
make test_e2e_node

Ran 19 of 19 Specs in 823.395 seconds
SUCCESS! -- 19 Passed | 0 Failed | 0 Pending | 0 Skipped PASS

Ginkgo ran 1 suite in 13m49.429979585s
Test Suite Passed
```
And it also passed the jenkins gce e2e test:
```
go run hack/e2e.go -test -v --test_args="--ginkgo.skip=\[Slow\]|\[Serial\]|\[Disruptive\]|\[Flaky\]|\[Feature:.+\]"

Ran 161 of 268 Specs in 4570.214 seconds
SUCCESS! -- 161 Passed | 0 Failed | 0 Pending | 107 Skipped PASS

Ginkgo ran 1 suite in 1h16m16.325934558s
Test Suite Passed
2016/03/25 15:12:42 e2e.go:196: Step 'Ginkgo tests' finished in 1h16m18.918754301s
```

I'm writing the design document, and will post the switching roadmap in an umbrella issue soon.

@kubernetes/sig-node
2016-04-02 04:51:33 -07:00
k8s-merge-robot
3b65927050 Merge pull request #16451 from ncdc/exec-interop-testing
Automatic merge from submit-queue

Refactor streaming code to support interop testing

Refactor exec/attach/port forward client and server code to better
support interop testing of different client and server subprotocol
versions.

Fixes #16119
2016-04-01 17:11:26 -07:00
derekwaynecarr
eeeccd0a67 A pod never terminated if a container image registry was unavailable 2016-04-01 13:42:23 -04:00
Andy Goldstein
4551ba6b53 Refactor exec code to support version skew testing
Refactor exec/attach client and server code to better support interoperability testing of different
client and server subprotocol versions.
2016-04-01 13:05:50 -04:00
Wlodzimierz Borkowski
378ef9746e keep deprecated flag stage1-image with rkt 2016-04-01 09:32:10 +02:00
Minhan Xia
d026d7ecbc Update cni binary 2016-03-31 13:57:51 -07:00
Random-Liu
5dbac3a8b8 Fix TerminationMessagePath 2016-03-30 16:03:49 -07:00
Dan Williams
fb97b8cdaa Implement network plugin capabilities hook and shaping capability
Allow network plugins to declare that they handle shaping and that
Kuberenetes should not.  Will be first used by openshift-sdn which
handles shaping through OVS, but this triggers a warning when
kubelet notices the bandwidth annotations.
2016-03-30 11:51:21 -05:00
Dan Williams
f1323103db Embed NoopNetworkPlugin into other network plugins
Let Noop handle common functions.
2016-03-30 11:51:21 -05:00
k8s-merge-robot
6226cbe6ca Merge pull request #23308 from yifan-gu/rkt_bump
Automatic merge from submit-queue

rkt: bump rkt version to 1.2.1

Upon bumping the rkt version, `--hostname` is supported. Also we now gets the configs from the rkt api service, so `stage1-image` is deprecated. 

cc @yujuhong @Random-Liu
2016-03-30 05:42:58 -07:00
k8s-merge-robot
2a690cc5e2 Merge pull request #23059 from luxas/auto_arch_pause
Automatic merge from submit-queue

Make kubelet use an arch-specific pause image depending on GOARCH

Related to: #22876, #22683 and #15140
@ixdy @pwittrock @brendandburns @mikedanese @yujuhong @thockin @zmerlynn
2016-03-29 23:27:42 -07:00
Random-Liu
1459a17dbe Remove nsinit related code and bump up minimum docker apiversion 2016-03-29 18:21:50 -07:00
Rudi Chiarito
ca6bdba014 Allow lazy binding in credential providers; don't use it in AWS yet
This is step one for cross-region ECR support and has no visible effects yet.
I'm not crazy about the name LazyProvide. Perhaps the interface method could
remain like that and the package method of the same name could become
LateBind(). I still don't understand why the credential provider has a
DockerConfigEntry that has the same fields but is distinct from
docker.AuthConfiguration. I had to write a converter now that we do that in
more than one place.

In step two, I'll add another intermediate, lazy provider for each AWS region,
whose empty LazyAuthConfiguration will have a refresh time of months or years.
Behind the scenes, it'll use an actual ecrProvider with the usual ~12 hour
credentials, that will get created (and later refreshed) only when kubelet is
attempting to pull an image. If we simply turned ecrProvider directly into a
lazy provider, we would bypass all the caching and get new credentials for
each image pulled.
2016-03-29 15:39:30 -04:00
Yifan Gu
d4dc037bf7 rkt: Add '--hostname' support for rkt.
Add GeneratePodHostNameAndDomain() to RuntimeHelper to
get the hostname of the pod from kubelet.

Also update the logging flag to change the journal match from
_HOSTNAME to _MACHINE_ID.
2016-03-28 17:06:14 -07:00
Yifan Gu
d814d973ff rkt: Bump rkt required version. Get options from api service. 2016-03-28 17:06:14 -07:00
Random-Liu
d2524bf291 Start using docker engine-api 2016-03-28 15:39:11 -07:00
k8s-merge-robot
2205a30348 Merge pull request #23368 from saad-ali/renameBuilderCleaner
Auto commit by PR queue bot
2016-03-26 13:01:25 -07:00
k8s-merge-robot
e44ad7a083 Merge pull request #22735 from resouer/throttle-dev
Auto commit by PR queue bot
2016-03-26 06:44:48 -07:00
goltermann
32d569d6c7 Fixing all the "composite literal uses unkeyed fields" Vet errors. 2016-03-25 15:25:09 -07:00
Lucas Käldström
c6172e58cf Make kubelet use an arch-specific pause image depending on GOARCH 2016-03-25 23:45:59 +02:00
saadali
79012f6d53 Rename volume.Builder to Mounter and volume.Cleaner to Unmounter 2016-03-25 11:29:58 -07:00
harry
8472cfa214 Refactor throttle into util pkg
Fix missing throttle.go
2016-03-25 08:32:23 +08:00
goltermann
34d4eaea08 Fixing several (but not all) go vet errors. Most are around string formatting, or unreachable code. 2016-03-22 17:26:50 -07:00
k8s-merge-robot
8f71655bcc Merge pull request #23325 from MurgaNikolay/master
Auto commit by PR queue bot
2016-03-22 11:47:38 -07:00
k8s-merge-robot
88d50f30d2 Merge pull request #23228 from yifan-gu/rkt_entry_cmd
Auto commit by PR queue bot
2016-03-22 08:07:41 -07:00
k8s-merge-robot
566d23e880 Merge pull request #23205 from yifan-gu/append_image_tag
Auto commit by PR queue bot
2016-03-22 07:30:52 -07:00
Nikolay Murga
70b918a2c0 Fix hairpin mode 2016-03-22 13:00:18 +02:00
k8s-merge-robot
a690c2ca76 Merge pull request #22914 from liggitt/test_export
Auto commit by PR queue bot
2016-03-21 23:06:46 -07:00
Jordan Liggitt
1d4c56c2f6 Move TestRuntimeCache into non-test file 2016-03-21 16:21:55 -04:00
harry
b0900bf0d4 Refactor diff into sub pkg 2016-03-21 20:21:39 +08:00
Yifan Gu
9d3d55d0fb rkt: Unmarshal the ENTRYPOINT/CMD from jsons instead of strings.
Using json makes this robust to ENTRYPOINT/CMD that contains space.

Also removed 'RemainAfterExit' option, originally this option is
useful when we implement GetPods() by 'systemctl list-units'.
However since we are using rkt API service now, it's no longer needed.
2016-03-18 17:18:24 -07:00
Yifan Gu
89feb6fc53 rkt: Append tag to the returned image name. 2016-03-18 16:40:44 -07:00
k8s-merge-robot
61b9a21cfd Merge pull request #23141 from yujuhong/fix_race
Auto commit by PR queue bot
2016-03-18 14:42:27 -07:00
Yu-Ju Hong
deafa44d61 kubelet: send all recevied pods in one update
The kubelet sync loop relies on getting one update as the signal that the
specific source is ready. This change ensures that we don't send multiple
updates (ADD, UPDATE) for the first batch of pods. This is required to prevent
the cleanup routine from killing pods prematurely.
2016-03-17 14:24:35 -07:00
Vishnu kannan
516559022c 1. Make kubelet default to 10ms for CPU quota if limit < 10m for
backwards compat.
2. Update documentation to reflect minimum CPU limits.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-03-17 13:30:06 -07:00
Thomas Graf
90623d9b51 DockerManager: Support IPv6 addresses
Falls back to the GlobalIPv6Address or ip -6 addr output in case no
IPv4 is configured for the container.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-03-17 01:27:16 +01:00
tobad357
3d530f7f37 Fix for issue #22932 infinite pod restarts
This fixes an issue when using CNI where the hash of a Container object will differ between creation and change checks due to the docker image exporting ports
2016-03-16 22:43:39 +08:00
k8s-merge-robot
71a3b91ac1 Merge pull request #22966 from timstclair/server
Auto commit by PR queue bot
2016-03-16 04:54:27 -07:00
k8s-merge-robot
a4097fa4f1 Merge pull request #22891 from yifan-gu/rkt_version
Auto commit by PR queue bot
2016-03-16 00:04:55 -07:00
Yifan Gu
fe2c3c351a rkt: Split checkVersion() to two parts: get version, and check version.
This enables rkt runtime to setup versions during creation,
this fixes a kubelet nil pointer panic when kubelet tries to get the
rkt versions but it's not set.
2016-03-15 16:35:26 -07:00
Vishnu kannan
d269775929 Update cadvisor linux module to work with the cadvisor v0.22.2
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-03-15 16:02:05 -07:00
Tim St. Clair
8cb820be0e Set correct applicatoin/json mime type for some kubelet endpoints 2016-03-14 18:04:17 -07:00
k8s-merge-robot
3b208815fd Merge pull request #22713 from yifan-gu/rkt_fix_entrypoint
Auto commit by PR queue bot
2016-03-12 01:41:53 -08:00
Avesh Agarwal
40e5d292c1 Fix parallel image pullers event messages with reasons constants. 2016-03-12 00:41:02 -05:00
Brian Grant
c6b4518aed Merge pull request #22666 from pmorie/pod-ip-flake-redux
Fix flake in pod IP as env var e2e
2016-03-11 09:42:40 -08:00
Andy Goldstein
7230bd1096 Fix rkt GetPods() order
Use an array to store the pod IDs and use that to build the pod array with consistent ordering,
instead of map ordering, which is random and causes test flakes.
2016-03-11 12:32:22 -05:00
k8s-merge-robot
accd6a49be Merge pull request #22767 from yifan-gu/rkt_getpods
Auto commit by PR queue bot
2016-03-11 04:08:38 -08:00
Paul Morie
5194c12d9e Fix flake in pod IP as env var e2e 2016-03-10 16:32:03 -05:00
Yifan Gu
56be600c2b rkt: Fix GetPods().
Group containers from different rkt pods into one k8s pod if
they have the same k8s pod UID.
2016-03-09 17:46:44 -08:00
Yifan Gu
4a63f7f74c rkt: Support ENTRYPOINT/CMD substitution. 2016-03-08 18:32:18 -08:00
k8s-merge-robot
dba955e112 Merge pull request #22521 from wojtek-t/support_go_16_in_gofmt
Auto commit by PR queue bot
2016-03-08 13:14:45 -08:00
k8s-merge-robot
55530bc8f7 Merge pull request #22664 from bprashanth/cleanup-hairpin
Auto commit by PR queue bot
2016-03-08 05:36:18 -08:00
k8s-merge-robot
8b186991e2 Merge pull request #22607 from Random-Liu/restart-unknown-state-container
Auto commit by PR queue bot
2016-03-08 05:02:35 -08:00
Wojciech Tyczynski
525d14e0bc Fix gofmt errors 2016-03-08 09:46:47 +01:00
k8s-merge-robot
bfde580cdd Merge pull request #22656 from derekwaynecarr/fix_node_e2e_systemd
Auto commit by PR queue bot
2016-03-07 14:41:43 -08:00
derekwaynecarr
26dbbdb244 kubelet stats should ignore .mount cgroups associated with container on systemd 2016-03-07 14:57:29 -05:00
Prashanth Balasubramanian
544d0a5c05 Cleanup hairpin flag in the kubelet. 2016-03-07 11:55:09 -08:00
Xiaogang Xin
e2eccddc6f kubernetes/kubernetes#22625 Fix issue of out-of-date Terminating mirror pod status
- During `kubelet` `syncPod`, check mirror pod `DeletionTimestamp` value to determine whether re-create mirror pod for running static pod.
2016-03-07 13:42:41 +08:00
Yu-Ju Hong
b1a6ee26ef Ignore "no such container" error when generating pod status
This allows the pod continue to sync if one container in a corrupt state.
2016-03-06 08:46:31 -08:00
k8s-merge-robot
8ab8231c20 Merge pull request #22577 from jpiccari/master
Auto commit by PR queue bot
2016-03-06 00:18:53 -08:00
k8s-merge-robot
fa0bf812d6 Merge pull request #22467 from Random-Liu/push-down-runtime-version-check
Auto commit by PR queue bot
2016-03-05 22:34:19 -08:00
k8s-merge-robot
357a9d1fdf Merge pull request #22033 from yifan-gu/rkt_get_status
Auto commit by PR queue bot
2016-03-05 10:46:47 -08:00
k8s-merge-robot
f359bd96a7 Merge pull request #20578 from dcbw/dont-cni-hostnet-pods
Auto commit by PR queue bot
2016-03-05 09:03:12 -08:00
Lantao Liu
45064d7a1e Always restart container in unknown state. 2016-03-05 10:42:26 +00:00
k8s-merge-robot
663f7b8a4c Merge pull request #22487 from vishh/node-status-cpu-hardcap
Auto commit by PR queue bot
2016-03-05 02:32:33 -08:00
k8s-merge-robot
e9d3be83ae Merge pull request #22241 from Random-Liu/recover-back-off-behaviour
Auto commit by PR queue bot
2016-03-05 00:05:15 -08:00
k8s-merge-robot
0f335df106 Merge pull request #22192 from bprashanth/timeout_client
Auto commit by PR queue bot
2016-03-04 22:59:24 -08:00
k8s-merge-robot
8ba70b573e Merge pull request #22483 from yujuhong/force_update
Auto commit by PR queue bot
2016-03-04 22:26:14 -08:00
Random-Liu
07b21c50fa Add Status in runtime interface and use it for runtime health check. 2016-03-04 21:26:41 -08:00
Joshua Piccari
f5f83b076a Improve go report card by fixing typos in comments 2016-03-04 18:30:59 -08:00
Abhishek Shah
a3c00aadd5 Specify hostname, subdomain via annotation on podspec.
The hostname is a DNS A record, if the subdomain maps to a service name
in the same namespace
2016-03-04 13:28:33 -08:00
Vishnu kannan
c54ba12faa Update node status to include the absense of cpu hardcapping.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-03-04 10:33:56 -08:00
k8s-merge-robot
077fff8f4a Merge pull request #22447 from yifan-gu/fix_log
Auto commit by PR queue bot
2016-03-04 08:01:51 -08:00
Dan Williams
bc62096ad5 Clean up host networking plugin checks for docker manager
We can save a docker inspect in podInfraContainerChanged() because
it's only used within the useHostNetwork() block.  We can also
consolidate some code in createPodInfraContainer() because if
the pod uses the host network, no network plugin will be involved.

Finally, in syncPodWithSyncResult() we can consolidate some
conditionals because both hairpin setup and getting the container
IP are only relevant when host networking is *not* being used.

More specifically, putting the dm.determineContainerIP() call
into the !useHostNetwork() block is OK since if no network plugin
was called to set the container up, it makes no sense to call
the network plugin to retrieve the IP address that it did not
handle.  The CNI plugin even calls back into the docker manager
to GetContainerIP() which grabs the IP from docker, which will
always be "" for host networked containers anyway.
2016-03-04 09:27:14 -06:00
k8s-merge-robot
c8038a7751 Merge pull request #22311 from vishh/22198
Auto commit by PR queue bot
2016-03-03 20:55:20 -08:00
Yu-Ju Hong
0264ebdda1 kubelet: force status update when the deletion timestamp is set 2016-03-03 16:24:56 -08:00
Jeff Lowdermilk
402e44d26e Merge pull request #22320 from timstclair/network
Use the default interface for reporting network stats.
2016-03-03 15:18:34 -08:00
k8s-merge-robot
eb15cd9f7e Merge pull request #21851 from timstclair/gc
Auto commit by PR queue bot
2016-03-03 11:39:12 -08:00
k8s-merge-robot
3f16f5f2b8 Merge pull request #22233 from yujuhong/pleg_health
Auto commit by PR queue bot
2016-03-03 11:01:26 -08:00
Yifan Gu
b7a058e290 rkt: Formats the timestamp to RFC3339.
This should fix the e2e test:
"should be able to retrieve and filter logs [Conformance]".
2016-03-03 10:47:18 -08:00
k8s-merge-robot
d81d823ca5 Merge pull request #22393 from eparis/blunderbuss
Auto commit by PR queue bot
2016-03-02 18:51:56 -08:00
Eric Paris
5e5a823294 Move blunderbuss assignees into tree 2016-03-02 20:46:32 -05:00
Jeff Lowdermilk
bb4e8365bd Merge pull request #22327 from yujuhong/pleg_tests
pleg: add more tests for detecting missing container/pods
2016-03-02 16:15:31 -08:00
Vishnu kannan
f9129b02a5 Start for real background tasks in container manager.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-03-02 14:55:26 -08:00
Tim St. Clair
3ad59de829 Garbage collect containers for deleted pods 2016-03-02 14:35:17 -08:00
Yu-Ju Hong
4846c1e1b2 pleg: add an internal clock for testability
Also add tests for the health check.
2016-03-01 17:53:03 -08:00
Random-Liu
a88dad1c3e Backoff restart container with liveness probing failure 2016-03-01 17:36:12 -08:00
Yu-Ju Hong
94368df91a kubelet: monitor the health of pleg
PLEG is reponsible for listing the pods running on the node. If it's hung
due to non-responsive container runtime or internal bugs, we should restart
kubelet.
2016-03-01 17:24:27 -08:00
Yu-Ju Hong
e770f25882 pleg: add more tests for detecting missing container/pods 2016-03-01 17:23:23 -08:00
Dawn Chen
a90ac42dd8 Kill docker daemon after configing cbr0 if flag --babysit-daemon is true so that babysitter process can restart it again with proper configurations and checkpoint file. 2016-03-01 16:46:31 -08:00
Tim St. Clair
3b9feb561c Use the default interface for reporting network stats. 2016-03-01 16:17:04 -08:00
Saad Ali
719158d2c8 Merge pull request #22277 from gmarek/spam
Reduce spam in Kubelet logs
2016-03-01 15:48:59 -08:00
Saad Ali
f9b1a33b12 Merge pull request #21953 from timstclair/testing
Move kubelet test-only files to test-only packages
2016-03-01 15:48:10 -08:00
Saad Ali
c4ccd5188f Merge pull request #22110 from timstclair/volumetest
Move test-only volume files to test-only volume package
2016-03-01 15:47:41 -08:00
k8s-merge-robot
e7fb1a29e1 Merge pull request #22107 from yujuhong/stop_probing
Auto commit by PR queue bot
2016-03-01 14:17:50 -08:00
k8s-merge-robot
6dee237d85 Merge pull request #21790 from vishh/seccomp
Auto commit by PR queue bot
2016-03-01 12:21:47 -08:00
Tim St. Clair
7b6d843309 Move test-only files to test-only packages 2016-03-01 09:11:32 -08:00
gmarek
459c954ff8 Reduce spam in Kubelet logs 2016-03-01 15:50:25 +01:00
Wojciech Tyczynski
4a7af87984 Set requests in scalability tests 2016-03-01 12:15:23 +01:00
Tim St. Clair
246b389275 Move test-only volume files to test-only volume package 2016-02-29 14:44:28 -08:00
Saad Ali
4183ac174b Merge pull request #21408 from krousey/unversioned_breakup
Move restclient to it's own package
2016-02-29 14:03:09 -08:00
Prashanth Balasubramanian
fe0f1121d5 Continue logging failure to contact metadata url, fix conn leak. 2016-02-29 12:47:19 -08:00
Kris
e664ef922f Move restclient to its own package 2016-02-29 12:05:13 -08:00
Yu-Ju Hong
866c52c8a9 kubelet: fix duplicated status updates at pod cleanup
cleanupTerminatedPods is responsible for checking whether a pod has been
terminated and force a status update to trigger the pod deletion. However, this
function is called in the periodic clenup routine, which runs every 2 seconds.
In other words, it forces a status update for each non-running (and not yet
deleted in the apiserver) pod. When batch deleting tens of pods, the rate of
new updates surpasses what the status manager can handle, causing numerous
redundant requests (and the status channel to be full).

This change forces a status update only when detecting the DeletionTimestamp is
set for a terminated pod. Note that for other non-terminated pods, the pod
workers should be responsible for setting the correct status after killling all
the containers.
2016-02-28 13:20:40 -08:00
Random-Liu
98283d894c dockertools: fix error exited container list in fake docker client 2016-02-28 13:19:57 -08:00
Random-Liu
96eeb812ff kubelet: clear current pod records before relist 2016-02-28 13:19:47 -08:00
Yu-Ju Hong
388689238b pleg: ensure the cache is updated whenever container are removed
Even though we don't rely on the cache for garbage collection yet, we should
keep it up-to-date.
2016-02-28 13:16:34 -08:00
k8s-merge-robot
527d3e6739 Merge pull request #21728 from yifan-gu/rkt_fix_kill
Auto commit by PR queue bot
2016-02-27 17:45:44 -08:00
Justin Santa Barbara
2f058fc681 Merge pull request #21499 from swagiaal/count-refs-in-kubelet
Auto commit by PR queue bot
2016-02-27 18:49:08 -05:00
k8s-merge-robot
6b8e0d45f0 Merge pull request #21349 from Random-Liu/cleanup-should-container-be-restarted
Auto commit by PR queue bot
2016-02-27 09:50:26 -08:00
k8s-merge-robot
f0c0af2561 Merge pull request #20528 from mikedanese/varz
Auto commit by PR queue bot
2016-02-27 00:27:18 -08:00
Yu-Ju Hong
1a3d205faf kubelet: stop probing if liveness check fails
This change puts the worker on hold when the liveness check fails. It will
resume probing when observing a new container ID.
2016-02-26 17:12:27 -08:00
k8s-merge-robot
2bca7c5287 Merge pull request #21337 from vishh/ensure-runtime-cgroups
Auto commit by PR queue bot
2016-02-26 16:52:14 -08:00
Fabio Yeon
9eed320088 Merge pull request #21740 from Random-Liu/fix-syncpod-unit-test
Fix error logic and leaking goroutine in docker unit test.
2016-02-26 15:51:35 -08:00
Fabio Yeon
7d0684e9c4 Merge pull request #21628 from smarterclayton/suppress_debug_logging
Reduce volume of logs generated at v(3)
2016-02-26 15:47:31 -08:00
Fabio Yeon
a56a315d99 Revert "kubelet: fix duplicated status updates at pod cleanup" 2016-02-26 14:39:11 -08:00
Fabio Yeon
a7165042af Merge pull request #21781 from ncdc/skip-probe-if-container-id-not-set
Skip probe if container ID not yet set
2016-02-26 13:20:48 -08:00
Yifan Gu
168ec8b80f kubelet: Sort the container statuses in convertStatusToAPIStatus(). 2016-02-26 11:27:03 -08:00
k8s-merge-robot
93c005e37c Merge pull request #21999 from yujuhong/log_more
Auto commit by PR queue bot
2016-02-26 05:51:07 -08:00
k8s-merge-robot
95b7fbf6f8 Merge pull request #21959 from Random-Liu/terminated_pods
Auto commit by PR queue bot
2016-02-25 20:41:55 -08:00
Sami Wagiaalla
8c21967dd8 Only call Detacher after the final unmount 2016-02-25 14:11:07 -05:00
k8s-merge-robot
82b0f0ff5e Merge pull request #20940 from pwittrock/volume-sync
Auto commit by PR queue bot
2016-02-25 02:29:31 -08:00
k8s-merge-robot
33ef7a93a4 Merge pull request #20647 from dcbw/allow-disabling-bridge-nf-call-iptables
Auto commit by PR queue bot
2016-02-25 01:27:47 -08:00
Yu-Ju Hong
99587b7e3a kubelet: fix duplicated status updates at pod cleanup
cleanupTerminatedPods is responsible for checking whether a pod has been
terminated and force a status update to trigger the pod deletion. However, this
function is called in the periodic clenup routine, which runs every 2 seconds.
In other words, it forces a status update for each non-running (and not yet
deleted in the apiserver) pod. When batch deleting tens of pods, the rate of
new updates surpasses what the status manager can handle, causing numerous
redundant requests (and the status channel to be full).

This change forces a status update only when detecting the DeletionTimestamp is
set for a terminated pod. Note that for other non-terminated pods, the pod
workers should be responsible for setting the correct status after killling all
the containers.
2016-02-24 21:23:41 -08:00
Random-Liu
61f7a5d228 Fix bug in fake docker client 2016-02-24 21:23:41 -08:00
Yu-Ju Hong
f9880d4a3a kubelet: lower the verbosity level of some logging messages 2016-02-24 18:42:26 -08:00
k8s-merge-robot
dcbeacded0 Merge pull request #21521 from mesosphere/jdef_kubelet_options1
Auto commit by PR queue bot
2016-02-24 18:35:10 -08:00
Mike Danese
5ec02bd021 add http handler to export configuration state 2016-02-24 14:12:28 -08:00
Vishnu kannan
5db37b0b2d Disable seccomp policy by default on docker versions >= v1.10
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-24 10:26:21 -08:00
Marek Grabowski
4f12103354 Revert "kubelet: fix duplicated status updates at pod cleanup" 2016-02-24 17:57:57 +01:00
k8s-merge-robot
d30c709a24 Merge pull request #21732 from Random-Liu/terminated_pods
Auto commit by PR queue bot
2016-02-24 05:10:25 -08:00
Abhi Shah
5f553a218e Merge pull request #21724 from freehan/imagepull
fix cascading backoff
2016-02-23 17:53:35 -08:00
Andy Goldstein
51251ef5c1 Skip probe if container ID not yet set
If the container status exists but the container hasn't been created yet, it won't have an ID.
Have the probe wait for a valid status if the container ID is not yet set; otherwise, you'll see the
following cryptic log message from runtime.go: invalid container ID: "".
2016-02-23 15:32:13 -05:00
Dan Williams
6248939e11 Push responsibility for bridge-nf-call-iptables to kubelet network plugins
bridge-nf-call-iptables appears to only be relevant when the containers are
attached to a Linux bridge, which is usually the case with default Kubernetes
setups, docker, and flannel.  That ensures that the container traffic is
actually subject to the iptables rules since it traverses a Linux bridge
and bridged traffic is only subject to iptables when bridge-nf-call-iptables=1.

But with other networking solutions (like openshift-sdn) that don't use Linux
bridges, bridge-nf-call-iptables may not be not relevant, because iptables is
invoked at other points not involving a Linux bridge.

The decision to set bridge-nf-call-iptables should be influenced by networking
plugins, so push the responsiblity out to them.  If no network plugin is
specified, fall back to the existing bridge-nf-call-iptables=1 behavior.
2016-02-23 09:34:59 -06:00
Random-Liu
3338304c7b Fix error logic and leaking goroutine in docker unit test. 2016-02-23 01:29:05 -08:00
Yu-Ju Hong
a68f534264 kubelet: fix duplicated status updates at pod cleanup
cleanupTerminatedPods is responsible for checking whether a pod has been
terminated and force a status update to trigger the pod deletion. However, this
function is called in the periodic clenup routine, which runs every 2 seconds.
In other words, it forces a status update for each non-running (and not yet
deleted in the apiserver) pod. When batch deleting tens of pods, the rate of
new updates surpasses what the status manager can handle, causing numerous
redundant requests (and the status channel to be full).

This change forces a status update only when detecting the DeletionTimestamp is
set for a terminated pod. Note that for other non-terminated pods, the pod
workers should be responsible for setting the correct status after killling all
the containers.
2016-02-23 01:03:04 -08:00
Random-Liu
da99f672fc Fix bug in fake docker client 2016-02-23 00:59:15 -08:00
k8s-merge-robot
3a12b03710 Merge pull request #21448 from timstclair/worker-race
Auto commit by PR queue bot
2016-02-23 00:49:28 -08:00
Random-Liu
33280abf42 Cleanup and add unit test for ShouldContainerBeRestarted 2016-02-23 00:42:52 -08:00
Minhan Xia
973b01ee29 fix cascading backoff 2016-02-22 18:25:42 -08:00
Yifan Gu
2d2225414f rkt: fix KillPod() to return the correct error message. 2016-02-22 17:07:31 -08:00
Dawn Chen
699c80b752 Merge pull request #21641 from bprashanth/promisc
Teach the kubelet about promiscuous mode, take 2
2016-02-22 15:08:18 -08:00
Tim St. Clair
15d44d182a Fix possible data race in prober 2016-02-22 10:27:57 -08:00
Phillip Wittrock
7bca355bb4 Spread pod volume metrics calc across calc period. Metrics are calculated independently. 2016-02-22 09:54:47 -08:00
dingh
40f6032d33 fix typo in test 2016-02-22 15:08:02 +08:00
k8s-merge-robot
24d82b6c4a Merge pull request #21286 from smarterclayton/fix_keyring
Auto commit by PR queue bot
2016-02-21 21:44:27 -08:00
Prashanth Balasubramanian
c97e8df65b Stricter checking of HAIRPIN_FLAG in salt. 2016-02-21 14:43:43 -08:00
Prashanth Balasubramanian
2e8ff81de1 Teach the kubelet about --hairpin-mode=promiscuous-bridge. 2016-02-20 22:40:54 -08:00
Clayton Coleman
ae2f6a833a Reduce volume of logs generated at v(3)
Node controller is generating a huge amount of logging at v(3) that is
more appropriate for v(5). Split the log into two levels and ensure it
also ends up on one line (so grep works).

The pod manager generates a v(4) pod output on sync that always contains
a newline - since the size of the pod is so excessive in output, kick it
to v(5) for deep debugging (we're pretty happy with this loop).
2016-02-20 15:29:05 -05:00
k8s-merge-robot
807344da0b Merge pull request #21235 from davidopp/affinity-docs
Auto commit by PR queue bot
2016-02-20 11:15:02 -08:00
Daniel Smith
a8b943dddd Revert "Put the container bridge in promiscuous mode." 2016-02-19 23:14:53 -08:00
James DeFelice
6c09689c60 add functional Option type to Kubelet, add SetNodeStatus Option, migrate node statue update funcs to slice of callbacks 2016-02-20 02:09:54 +00:00
Prashanth Balasubramanian
a694a7ae4b Teach the kubelet about --hairpin-mode=promiscuous-bridge. 2016-02-19 14:59:16 -08:00
k8s-merge-robot
057b8352ec Merge pull request #21182 from vishh/repoTagsRename
Auto commit by PR queue bot
2016-02-19 08:56:09 -08:00
k8s-merge-robot
eb45154996 Merge pull request #21348 from caesarxuchao/generate-fake-for-1-2
Auto commit by PR queue bot
2016-02-18 23:02:05 -08:00
David Oppenheimer
053f1c6008 Update user guide and scheduler documentation to describe node affinity.
Register image priority locality function, which the original PR that introduced
it forgot to do. Change zone and region labels to beta.
2016-02-18 17:09:41 -08:00
Phillip Wittrock
c6fea28e83 Merge pull request #21368 from timstclair/summary-api
Move stats summary types to a new kubelet/api package to avoid unnece…
2016-02-18 16:05:34 -08:00
k8s-merge-robot
a39b62bb22 Merge pull request #21417 from yujuhong/docker_container
Auto commit by PR queue bot
2016-02-18 14:31:37 -08:00
k8s-merge-robot
5acdb92126 Merge pull request #21177 from laushinka/spelling-fixes
Auto commit by PR queue bot
2016-02-18 10:29:49 -08:00
Clayton Coleman
8c27314915 Unqualified host:port pairs are valid Docker auth fields
The dockercfg and .docker/config.json files can contain host:path
combos, which are not correctly parsed by the keyring.
2016-02-18 13:18:34 -05:00
k8s-merge-robot
f0b56409cc Merge pull request #21197 from yujuhong/deleted_pod
Auto commit by PR queue bot
2016-02-18 01:02:40 -08:00
Chao Xu
ad46715f51 generate fake client for release_1_2 2016-02-17 16:10:02 -08:00
laushinka
7ef585be22 Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
Yu-Ju Hong
7061ba20bb Fix finding pid of a process 2016-02-17 12:43:16 -08:00
Tim St. Clair
225f903ccf Move stats summary types to a new kubelet/api package to avoid unnecessary dependencies 2016-02-17 10:53:25 -08:00
k8s-merge-robot
1a2f811a3b Merge pull request #20063 from mqliang/imageGC-config
Auto commit by PR queue bot
2016-02-17 06:16:45 -08:00
Vishnu kannan
8d0370ede3 Do not set container runtime health check until on kubelet init.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 16:40:48 -08:00
Vishnu kannan
7de6a25383 Identify runtime's cgroups periodically to avoid race with runtime
uptime.
The runtime could also move between cgroups.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 16:39:48 -08:00
Vishnu kannan
2623fdde17 Improve the naming of fields in ContainerImage struct used in NodeStatus.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 15:45:22 -08:00
k8s-merge-robot
180d34ed52 Merge pull request #21120 from Random-Liu/minor-probe-manager-refactor
Auto commit by PR queue bot
2016-02-15 19:41:45 -08:00
mqliang
641ba92aa3 move minGCAge to ImageGCPolicy and make it configurable 2016-02-15 22:54:54 +08:00
k8s-merge-robot
44d12a1389 Merge pull request #20782 from nickschuch/readonly_container_2
Auto commit by PR queue bot
2016-02-14 13:18:24 -08:00
k8s-merge-robot
b6056f9a45 Merge pull request #21014 from Random-Liu/unit-test-for-pod-sync-result
Auto commit by PR queue bot
2016-02-14 09:53:59 -08:00
Nick Schuch
5d511aeb54 Adds ReadOnlyRootFilesystem support for containers 2016-02-14 15:39:51 +10:00
k8s-merge-robot
24b33964c9 Merge pull request #20954 from Random-Liu/add-missing-pod-sync-result
Auto commit by PR queue bot
2016-02-13 20:02:31 -08:00
k8s-merge-robot
d6b4ff3884 Merge pull request #20909 from Clarifai/instance-type-label
Auto commit by PR queue bot
2016-02-13 18:51:42 -08:00
Yu-Ju Hong
3072754c8b Avoid unnecessary GET request when updating pod status
When sending out an pod status update, kubelet

GETs the pod from the apiserver
Terminates if the apiserver returns an not found error; otherwise, proceed to
to update.
Even after a pod has been deleted, there might still be queued up updates for
the pod. This leads to expensive, unncessary GET operations. The situation is
worse when there are batch creation/deletion of a significant number of pods
(e.g., E2E tests), leaving many updates in the queue.

This change checks whether a pod exists before GET the pod from the apiserver
to avoid redundant GETs.
2016-02-12 14:59:18 -08:00
Random-Liu
ae759dc206 Add unit test for PodSyncResult 2016-02-12 14:15:25 -08:00
k8s-merge-robot
4a24406579 Merge pull request #20990 from timstclair/summary-api
Auto commit by PR queue bot
2016-02-12 13:25:25 -08:00
Rudi Chiarito
b3863eae82 Add instance-type label to cloud providers
Fully implemented for AWS and GCE
2016-02-12 15:02:03 -05:00
Lantao Liu
77b6f14f86 Change pod in probe update to pod uid. 2016-02-12 05:02:31 +00:00
k8s-merge-robot
f6ae6b47ae Merge pull request #20687 from vishh/systemd-support
Auto commit by PR queue bot
2016-02-11 13:06:29 -08:00
k8s-merge-robot
55267640bc Merge pull request #20842 from Random-Liu/deprecate-hostconfig-at-container-start
Auto commit by PR queue bot
2016-02-10 20:00:08 -08:00
Vishnu kannan
575812787d Replace --resource-container and --system-container with
`--kubelet-cgroups` and `--system-cgroups` respectively.
Updated `--runtime-container` to `--runtime-cgroups`.
Cleaned up most of the kubelet code that consumes these flags to match
the flag name changes.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-10 17:33:28 -08:00
Lantao Liu
c341cee65b Fix network configuration 2016-02-10 16:51:34 -08:00
Vishnu kannan
38efc837b9 Make container runtime's cgroup configurable.
Use the real cgroups for metrics generation.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-10 16:02:34 -08:00
Tim St. Clair
7a54f94cf4 Make summary timestamps more granular 2016-02-10 15:41:57 -08:00
k8s-merge-robot
c382943353 Merge pull request #20726 from ingvagabund/jitter-sync-loops-in-kubelet
Auto commit by PR queue bot
2016-02-10 09:06:59 -08:00
k8s-merge-robot
a2086d4150 Merge pull request #20816 from yifan-gu/termination_log_anno
Auto commit by PR queue bot
2016-02-10 00:26:48 -08:00
k8s-merge-robot
c6ed624bfb Merge pull request #19503 from markturansky/attacher_interface
Auto commit by PR queue bot
2016-02-09 20:50:41 -08:00
k8s-merge-robot
b97214304c Merge pull request #20942 from Random-Liu/fix-bug-in-sync-loop
Auto commit by PR queue bot
2016-02-09 20:24:02 -08:00
Random-Liu
b7292f6672 Add missing PodSyncResult in KillPod 2016-02-09 18:28:26 -08:00
Prashanth B
f0620a5efd Merge pull request #20883 from bprashanth/kubelet_flag
Kubelet flag for disabling hairpin mode
2016-02-09 17:31:30 -08:00
Random-Liu
e3ea0b1cbb Stop using pod from livenessManager in main sync loop 2016-02-09 16:32:54 -08:00
k8s-merge-robot
2ec49efd54 Merge pull request #19945 from Clarifai/fix-formatting
Auto commit by PR queue bot
2016-02-09 16:05:00 -08:00
Prashanth Balasubramanian
c3a3a2bacd Pipe hairpin-mode flag through kubelet, enable on soak. 2016-02-09 12:12:19 -08:00
Jan Chaloupka
392fc6668f Jittering periods of some kubelet's sync loops:
- pod_workers: pod syncing
- prober workers: container syncing

In order to synchronize the current state of Kubernetes's objects (e.g. pods, containers, etc.),
periodic synch loops are run. When there is a lot of objects to synchronize with,
loops increase communication traffic. At some point when all the traffic interfere cpu usage curve
hits the roof causing 100% cpu utilization.

To distribute the traffic in time, some sync loops can jitter their period in each loop
and help to flatten the curve.
2016-02-09 15:22:22 +01:00
k8s-merge-robot
c4b66f66f3 Merge pull request #20848 from pmorie/dead-code
Auto commit by PR queue bot
2016-02-09 06:10:07 -08:00
k8s-merge-robot
71bcc25409 Merge pull request #20817 from yifan-gu/remove_ShouldContainerBeRestartedOldVersion
Auto commit by PR queue bot
2016-02-09 04:36:36 -08:00
Yifan Gu
b14ac9481a rkt: Add hyphen in the annotation key. 2016-02-09 14:50:25 +08:00
k8s-merge-robot
fce98f3cf2 Merge pull request #20827 from smarterclayton/fix_manager
Auto commit by PR queue bot
2016-02-08 21:13:42 -08:00
k8s-merge-robot
8fcc105d6d Merge pull request #20444 from ncdc/flake/19466
Auto commit by PR queue bot
2016-02-08 20:46:03 -08:00
Andy Goldstein
a45247ad2a Fix exec/attach test flakes
Ensure that stream reply frames are enqueued prior to any goaway frames.
2016-02-08 21:33:23 -05:00
Clayton Coleman
5aca495d73 Regression: Kubelet fails on older distro Dockers
Changes broke compatibility with released versions of Docker on some
distributions like Fedora and RHEL (value 1.8.1.fc21 is in the wild).
2016-02-08 19:00:01 -05:00
k8s-merge-robot
14653d6b5a Merge pull request #20169 from vishh/20117
Auto commit by PR queue bot
2016-02-08 15:25:45 -08:00
Paul Morie
c6ab0a8677 Remove unused getRuntimePodStatus func from Kubelet 2016-02-08 16:46:11 -05:00
k8s-merge-robot
1e6784edb4 Merge pull request #20741 from timstclair/probe
Auto commit by PR queue bot
2016-02-08 12:35:58 -08:00
k8s-merge-robot
230f593058 Merge pull request #20383 from smarterclayton/allow_prefix_changes
Auto commit by PR queue bot
2016-02-08 12:04:46 -08:00
Tim St. Clair
da0d37f1e0 Fix panic from multiple probe cleanup calls. 2016-02-08 11:23:07 -08:00
Yifan Gu
8964469e4a rkt: Remove ShouldContainerBeRestartedOldVersion(). 2016-02-09 00:15:58 +08:00
Yifan Gu
8e5c14f1bf rkt: Annotation key should not container capital letters. 2016-02-09 00:13:08 +08:00
James DeFelice
1aec798aa0 support optional envvars for pod-infra-container 2016-02-08 13:48:25 +00:00
markturansky
a242a3d5fe Added Attacher/Detacher interfaces and support to kubelet 2016-02-07 16:55:58 -05:00
Jan Chaloupka
4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
k8s-merge-robot
c8e5e89491 Merge pull request #20395 from jimmidyson/system-container-fix
Auto commit by PR queue bot
2016-02-06 04:06:42 -08:00
k8s-merge-robot
fcf9c4a1e4 Merge pull request #19741 from pwittrock/syncfsmetrics
Auto commit by PR queue bot
2016-02-05 17:54:22 -08:00
k8s-merge-robot
8163b6ce97 Merge pull request #20671 from vishh/avoid-moving-all-dockers
Auto commit by PR queue bot
2016-02-05 16:49:03 -08:00
Phillip Wittrock
3de94cd23c Supply volume fs metrics to server/stats/handler.go
* Metrics will not be expose until they are hooked up to a handler
* Metrics are not cached and expose a dos vector, this must be fixed before release or the stats should not be exposed through an api endpoint
2016-02-05 16:00:24 -08:00
Daniel Smith
f973af25fa Merge pull request #20747 from caesarxuchao/internalclientset
rename release_1_2 to internalclientset
2016-02-05 15:49:08 -08:00
Chao Xu
184440f8ef rename release_1_2 to internalclientset 2016-02-05 14:02:28 -08:00
Daniel Smith
75e1451363 Merge pull request #20742 from kubernetes/revert-20615-deprecate-hostconfig-at-container-start
Revert "Deprecate HostConfig at container start"
2016-02-05 14:01:43 -08:00
Lantao Liu
bb9457e7a3 Revert "Deprecate HostConfig at container start" 2016-02-05 12:50:35 -08:00
Random-Liu
45e3a1f596 Remove old reason cache 2016-02-05 19:19:46 +00:00
Random-Liu
2b7d0182ca Remove ConvertPodStatusToAPIPodStatus from runtime interface 2016-02-05 19:19:46 +00:00
k8s-merge-robot
bd67b8a5db Merge pull request #20192 from Random-Liu/remove-get-api-podstatus
Auto commit by PR queue bot
2016-02-05 11:00:42 -08:00
Rudi Chiarito
a2d1bb7acf Add httpHeaders to httpGet liveness probe
Also update existing documentation and try to steer users away from 'host'.
Add validation.
2016-02-05 11:20:04 -05:00
k8s-merge-robot
ae15a4437b Merge pull request #19944 from mwielgus/simple-cm
Auto commit by PR queue bot
2016-02-05 06:41:28 -08:00
k8s-merge-robot
df0bbd45d7 Merge pull request #20615 from Random-Liu/deprecate-hostconfig-at-container-start
Auto commit by PR queue bot
2016-02-05 04:54:28 -08:00
Marcin Wielgus
bf0c881263 Set Docker custom metric label for cAdvisor if custom metric volume is mounted 2016-02-05 12:00:02 +01:00
k8s-merge-robot
c09b67f60f Merge pull request #20591 from caesarxuchao/legacy-to-core
Auto commit by PR queue bot
2016-02-04 17:37:12 -08:00
k8s-merge-robot
2084fba199 Merge pull request #18842 from vishh/kubelet_docker
Auto commit by PR queue bot
2016-02-04 17:08:34 -08:00
Lantao Liu
8118092d11 Deprecate HostConfig at container start 2016-02-04 15:35:14 -08:00
Chao Xu
1b047f8e67 rename legacy to core 2016-02-04 14:26:56 -08:00
Phillip Wittrock
ba5be34574 Kubelet Metrics Summary Api Implementation 2016-02-04 14:05:28 -08:00
Vishnu kannan
df1f164b34 Do not fail container creation if the contaienr exits before applyting
oom score adjust.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-04 13:39:19 -08:00
Vishnu kannan
62fe566e68 Kubelet will not move docker daemons running in containers.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-04 13:34:56 -08:00
Saad Ali
7d70edc91f Merge pull request #20553 from jonboulle/yifan-gu-rkt_dns
rkt: Add DNS support
2016-02-04 10:55:38 -08:00
k8s-merge-robot
65ebe19164 Merge pull request #20584 from caesarxuchao/release_1_2
Auto commit by PR queue bot
2016-02-03 19:46:27 -08:00
k8s-merge-robot
bb7ad7cd09 Merge pull request #18795 from dcbw/cbr0-network-plugin
Auto commit by PR queue bot
2016-02-03 19:46:25 -08:00
Lantao Liu
4a386f881f Deprecate HostConfig at container start 2016-02-04 01:00:03 +00:00
Saad Ali
25f02f19e1 Merge pull request #20603 from pmorie/pod-ip-debug
Make it easier to debug pod IP flakes for downward API
2016-02-03 16:09:33 -08:00
Paul Morie
1db0925521 Make it easier to debug pod IP flakes for downward API 2016-02-03 18:26:07 -05:00
Chao Xu
f9f5736b01 grep sed 2016-02-03 13:06:07 -08:00
Rudi Chiarito
a0831a2378 Mass fix of Infof and co. missing the trailing "f", even when formatting placeholders are used 2016-02-03 11:34:59 -05:00
Dan Williams
fabb65c13f Add a network plugin that duplicates "configureCBR0" functionality 2016-02-03 10:08:08 -06:00
Dan Williams
67414afd11 Send PodCIDR to network plugins as an event 2016-02-03 10:08:07 -06:00
Yifan Gu
d27a635c4a rkt: Add DNS support.
rkt is now able to populate /etc/resolv.conf with command line flags.
Update the runtime code to fix DNS issues.
2016-02-03 14:54:09 +01:00
Yifan Gu
e9139bb0e5 kubelet: Rename RunContainerOptionsGenerator to RuntimeHelper.
Also add GetClusterDNS() to the interface to let rkt get the
DNS servers, DNS names.
2016-02-03 14:54:08 +01:00
Jan Safranek
e90de3f985 Fixed cleanup of persistent volumes.
Kubelet.cleanupOrphanedVolumes() compares list of volumes mounted to a node
with list of volumes that are required by pods scheduled on the node
("scheduled volume").

Both lists should contain real volumes, i.e. when a pod uses
PersistentVolumeClaim, the list must contain name of the bound volume instead
of name of the claim.
2016-02-03 10:00:09 +01:00
k8s-merge-robot
843c11e06a Merge pull request #20452 from caesarxuchao/replace-client-kubelet
Auto commit by PR queue bot
2016-02-02 23:46:58 -08:00
Chao Xu
cddd7b56a4 replace client with clientset in kubelet and other places 2016-02-02 20:28:45 -08:00
Jeff Lowdermilk
ae2aece9af Merge pull request #20202 from caesarxuchao/skip-update
skip update when deleting with grace-period=0
2016-02-02 18:24:57 -08:00
Jeff Lowdermilk
caa9433234 Merge pull request #20433 from lavalamp/fix-bad-rv
Add timeout, fix potential startup hang
2016-02-02 17:27:23 -08:00
Random-Liu
7b4cdb6f8f Remove GetAPIPodStatus from runtime interface 2016-02-02 23:41:55 +00:00
Random-Liu
41b12a18d9 Remove GetAPIPodStatus usage 2016-02-02 23:41:55 +00:00
Chao Xu
a6d96a04d0 make kubelet.HandlePodsDeletion aware of api.Pod 2016-02-02 13:01:17 -08:00
k8s-merge-robot
e78834ab62 Merge pull request #20337 from yifan-gu/rkt_empty_isolator
Auto commit by PR queue bot
2016-02-02 09:56:04 -08:00
k8s-merge-robot
23c64ec103 Merge pull request #20233 from yifan-gu/rkt_fix_user_group
Auto commit by PR queue bot
2016-02-02 08:47:08 -08:00
k8s-merge-robot
c0fd002fbb Merge pull request #20019 from thockin/dont-cni-hostnet-pods
Auto commit by PR queue bot
2016-02-02 01:43:24 -08:00
k8s-merge-robot
71ae2736c0 Merge pull request #19889 from yujuhong/replace_cache
Auto commit by PR queue bot
2016-02-02 00:41:06 -08:00
k8s-merge-robot
126f798699 Merge pull request #19942 from yujuhong/mirror_creation
Auto commit by PR queue bot
2016-02-01 22:55:38 -08:00
Yu-Ju Hong
ff04de4fc0 Remove RuntimeCache from sync path
This change removes RuntimeCache in the pod workers and the syncPod() function.
Note that it doesn't deprecate RuntimeCache completely as other components
still rely on the cache.
2016-02-01 21:32:41 -08:00
k8s-merge-robot
32ab64ce5b Merge pull request #19778 from resouer/runtime
Auto commit by PR queue bot
2016-02-01 21:05:05 -08:00
k8s-merge-robot
348858061d Merge pull request #20258 from smarterclayton/get_logs_for_any_container
Auto commit by PR queue bot
2016-02-01 16:24:20 -08:00
Daniel Smith
4a7d70aef1 extend fake clock 2016-02-01 15:36:15 -08:00
k8s-merge-robot
feb4b4857c Merge pull request #19890 from vishh/0-nodes
Auto commit by PR queue bot
2016-02-01 14:09:06 -08:00
k8s-merge-robot
7e158006c0 Merge pull request #19940 from yujuhong/fix_update
Auto commit by PR queue bot
2016-02-01 13:35:54 -08:00
k8s-merge-robot
171c2ecbe7 Merge pull request #19524 from derekparker/rkt-image-size
Auto commit by PR queue bot
2016-02-01 11:53:36 -08:00
k8s-merge-robot
a68f952a61 Merge pull request #19490 from danwinship/hairpin-error
Auto commit by PR queue bot
2016-02-01 11:20:26 -08:00
k8s-merge-robot
174521ee1a Merge pull request #19856 from yifan-gu/termination_path
Auto commit by PR queue bot
2016-02-01 07:16:16 -08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
Yifan Gu
581759d12d rkt: Set default 'User', 'Group' to root if it's not specified. 2016-02-01 20:00:09 +08:00
k8s-merge-robot
e07d9b3ee7 Merge pull request #20174 from yifan-gu/rkt_insecure_options
Auto commit by PR queue bot
2016-02-01 03:44:16 -08:00
Yifan Gu
9ce10c8552 rkt: Add support for termination message, termination reason.
If 'TerminationMessagePath' in container spec is set, then
We will mount the termination message log into the container.

Also in GetPodStatus, if the container exits and the 'TerminationMessagePath'
is set, then the 'message' field in container state will be populated.
2016-02-01 18:06:47 +08:00
Chao Xu
c72d234bbf replacing handwritten client in several controllers 2016-01-31 15:42:02 -08:00
Jimmi Dyson
e9c1d1ebd6 Do not move pid 1 to system container 2016-01-31 23:27:56 +00:00
Clayton Coleman
d6d4a17db6 Allow clients to request most recent container logs
Many users attempt to use 'kubectl logs' in order to find the logs
for a container, but receive no logs or an error telling them their
container is not running. The fix in this case is to run with '--previous',
but  this does not match user expectations for the logs command.

This commit changes the behavior of the Kubelet to return the logs of
the currently running container or the previous running container unless
the user provides the "previous" flag. If the user specifies "follow"
the logs of the most recent container will be displayed, and if it is
a terminated container the logs will come to an end (the user can
repeatedly invoke 'kubectl logs --follow' and see the same output).

Clean up error messages in the kubelet log path to be consistent and
give users a more predictable experience.

Have the Kubelet return 400 on invalid requests
2016-01-31 17:47:29 -05:00
Clayton Coleman
e3f4e823ba Allow the Kubelet Docker container prefix to be changed
Enables running multiple Kubelets on the same instance for testing and
for node bootstrapping experimentation
2016-01-31 01:03:05 -05:00
Alex Robinson
ae5a6e86df Merge pull request #20137 from mqliang/fake-time
reuse fake clock in the kube repo for kubelet unit tests
2016-01-30 16:37:44 -08:00
k8s-merge-robot
11885120c6 Merge pull request #20305 from timstclair/summary-api
Auto commit by PR queue bot
2016-01-30 15:23:16 -08:00
k8s-merge-robot
77dcd470d2 Merge pull request #20264 from Random-Liu/cleanup-config
Auto commit by PR queue bot
2016-01-30 12:06:04 -08:00
k8s-merge-robot
9fef5f2938 Merge pull request #19785 from Random-Liu/remove-get-podstatus-and-apipodstatus
Auto commit by PR queue bot
2016-01-30 11:35:26 -08:00
Alex Robinson
5c53b3a13b Merge pull request #20335 from aveshagarwal/master-integration-tests-issue
Fix docker version errors in integration tests.
2016-01-30 10:40:06 -08:00
k8s-merge-robot
ef851cd7d1 Merge pull request #20261 from yifan-gu/rkt_cmd_args
Auto commit by PR queue bot
2016-01-30 09:12:25 -08:00
k8s-merge-robot
ce9f93df2e Merge pull request #20061 from mikedanese/copypaste
Auto commit by PR queue bot
2016-01-30 05:52:26 -08:00
k8s-merge-robot
29c640d5ba Merge pull request #19579 from Random-Liu/add-new-reason-cache
Auto commit by PR queue bot
2016-01-30 02:06:49 -08:00
Random-Liu
f116a5eb8f Remove temporary function GetPodStatusAndAPIPodStatus() 2016-01-30 00:39:26 -08:00
Random-Liu
bad7046b1a Start using new convert function in kubelet 2016-01-30 00:31:26 -08:00
Random-Liu
139548141e Move ConvertPodStatusToAPIPodStatus() to kubelet level 2016-01-30 00:25:50 -08:00
Random-Liu
e9dceb36e9 Start using reason cache in kubelet 2016-01-30 00:25:50 -08:00
Random-Liu
123fec8a72 Add unit test for reason cache 2016-01-30 00:25:50 -08:00
Random-Liu
199f5687a3 Add reason cache 2016-01-30 00:25:50 -08:00
Random-Liu
e93febfd61 Start returning PodSyncResult in SyncPod 2016-01-30 00:25:50 -08:00
k8s-merge-robot
2d061aa199 Merge pull request #19784 from Random-Liu/cleanup-kubelet-syncpod
Auto commit by PR queue bot
2016-01-30 00:25:49 -08:00
k8s-merge-robot
db7e524750 Merge pull request #19850 from yujuhong/enable_cache
Auto commit by PR queue bot
2016-01-29 19:47:53 -08:00
k8s-merge-robot
deef16d2b3 Merge pull request #19354 from jimmidyson/system-container-fix
Auto commit by PR queue bot
2016-01-29 19:13:43 -08:00
Tim St. Clair
1bd945423d Update metrics summary API
- Change resource Quantity types to *uint64
- Change CoreSeconds -> CoreNanoSeconds
- Rename NonLocalObjectReference to PodReference
- Add UID to PodReference
- Add UserDefinedMetrics
- Add StartTime to container and pod metrics.
2016-01-29 16:56:46 -08:00
Yifan Gu
1b34e2c314 rkt: If resource's limit is empty, populate it with request,and vice versa. 2016-01-29 10:50:37 -08:00
Avesh Agarwal
de804332f4 Fix docker version errors in integration tests. 2016-01-29 13:48:07 -05:00
Yifan Gu
dcee692d64 rkt: Expand environment variables in Command and Args. 2016-01-29 10:09:48 -08:00
Fabio Yeon
eb2c2d1af4 Merge pull request #20111 from fabioy/fix-tmp-tests
Add temp directory creation method for tests.
2016-01-29 09:51:12 -08:00
Jimmi Dyson
1c289943f5 Ensure kubelet pid is not moved to system container 2016-01-29 09:30:20 +00:00
Clayton Coleman
8448b60f51 Kubelet server was not returning a 500 on errors writing logs
Writing 200 first masks the second error. 200 is defaulted by the Go
http stack automatically.
2016-01-28 21:44:27 -05:00
Yifan Gu
d03b705c5f rkt: Replace the deprecated flag 'insecure-skip-verify' with 'insecure-options'. 2016-01-28 14:31:27 -08:00
Paul Morie
9030f16071 Move ConfigMap to main API 2016-01-28 17:07:05 -05:00
Fabio Yeon
547a2e2387 Merge pull request #20131 from thockin/logs-for-19574
Augment logs in runContainer path
2016-01-28 13:49:59 -08:00
Mike Danese
e2fecf36b9 daemonset: apply predicated when placing daemon pods 2016-01-28 13:26:16 -08:00
Andy Goldstein
86ae623a09 Help debug port forward flakes 2016-01-28 15:28:40 -05:00
Random-Liu
488e14a5a9 Cleanup duplicated code in config.go 2016-01-28 01:04:35 -08:00
Fabio Yeon
7205a160ac Remove all instances of "/tmp" from unit tests and replace with a common
tmp directory creator. Exception is documented.
2016-01-27 16:11:22 -08:00
Tim Hockin
df4c1ccd14 Don't apply net plugins to net=host pods 2016-01-27 15:43:33 -08:00
k8s-merge-robot
3f5e417999 Merge pull request #19502 from swagiaal/internalize-ownership
Auto commit by PR queue bot
2016-01-26 23:06:39 -08:00
Eric Paris
8e1ca68760 Merge pull request #20020 from apcera/cleanup-docker-engine-check
kubelet: Update engine version parsing to handle semantic versioning
2016-01-26 11:44:02 -05:00
mqliang
c9f4f78273 reuse fake clock in the kube repo for kubelet unit tests 2016-01-26 23:42:00 +08:00
k8s-merge-robot
8c821700f3 Merge pull request #19389 from justinsb/internal_cidr
Auto commit by PR queue bot
2016-01-26 03:58:48 -08:00
k8s-merge-robot
52cb4c1d9d Merge pull request #18445 from resouer/fix-emptydir
Auto commit by PR queue bot
2016-01-26 02:45:54 -08:00
Tim Hockin
45e5912c3d Augment logs in runContainer path
Generating errors that are useful is hard.
2016-01-25 16:31:32 -08:00
Tim Hockin
c924533e45 Add logs to try to diagnose #17181 2016-01-25 15:01:03 -08:00
Dan Winship
70a904d10e Don't print hairpin_mode error when not using Linux bridges
(eg, with network plugins that use Open vSwitch)
2016-01-25 09:01:34 -05:00
harry
0fa5b6c4f7 Add e2e test for wrapper volumes
Use git server in e2e and refactor wrapper builder

Update e2e test to use a fake git server
2016-01-24 16:57:44 +08:00
Ken Robertson
66c99d5e9c kubelet: Update FakeDockerClient used in integration tests
This updates the mock for the docker client used in integration tests to
include the engine version in its VersionInfo response.
2016-01-22 17:14:01 -08:00
Ken Robertson
fff8a7c371 kubelet: Update engine version parsing to handle semantic versioning
This updates the dockertools.dockerVersion to use a semantic versioning
library to more gracefully support engine versions which include
additional version fields.

Previously, go-dockerclient's APIVersion struct was use which only
handles plain numeric x.y.z version strings. With #19675, the library
was now used on the Docker engine string, however it is possible for the
engine string to include include additional information for beta, rc, or
distro specific builds.

This PR also enables the TestDockerRuntimeVersion test which was
previously just a FIXME and updates it to pass, and be used to test the
version string that cause #20005.

This negates the need for fsouza/go-dockerclient#451, since even with
that change, if a user was running Docker 1.10.0-rc1, this would cause
the kubelet to report it as simply 1.10.0.
2016-01-22 13:18:52 -08:00
Clayton Coleman
4a6935b31f Remaining codec change refactors 2016-01-22 13:27:27 -05:00
Clayton Coleman
33085c0cf2 Update tests to handle codec changes 2016-01-22 13:27:26 -05:00
Yu-Ju Hong
25f2c6f330 Improve mirror pod creation/deletion
- Ignore the "not found" error on deletion.
 - Recognize the "already exists" error on creation and check if the existing
   pod meets requirement. If so, don't report an error.
 - Immediately create a mirror pod after a successful deletion, if needed.
2016-01-21 16:01:14 -08:00
nikhiljindal
2ad642d370 Merge registered and latest and move to apimachinery 2016-01-21 14:42:21 -08:00
Alex Mohr
7d96694c3f Merge pull request #19725 from timstclair/summary
Add blank /stats/summary kubelet endpoint
2016-01-21 14:27:53 -08:00
Yu-Ju Hong
0fada52788 Fix sending an empty update when the source is ready 2016-01-21 14:24:39 -08:00
Justin Santa Barbara
58191c446c Allow non-masquerade-cidr to be passed to the kubelet
Removing the hard-coding of 10.0.0.0/8

Issue #11204
2016-01-21 15:18:31 -05:00
Alex Mohr
c52122cab5 Merge pull request #19675 from apcera/kubelet-report-runtime-version
Update container runtime to properly report the engine and version
2016-01-21 10:31:19 -08:00
Alex Mohr
d2d349bc84 Merge pull request #19334 from resouer/network
Networking should be used to hold network related pkgs
2016-01-21 10:26:13 -08:00
Alex Mohr
79e0c9f5e5 Merge pull request #19842 from yujuhong/status_update
Don't handle graceful deletion of mirror pods in status manager
2016-01-21 09:24:46 -08:00
Alex Mohr
9a264c4b41 Merge pull request #19838 from yujuhong/empty_add
Fix empty ADD update on kubelet restarts
2016-01-21 09:22:53 -08:00
k8s-merge-robot
e2c79915fd Merge pull request #18820 from mqliang/image-gc-bug
Auto commit by PR queue bot
2016-01-21 01:22:29 -08:00
k8s-merge-robot
d0f59e2126 Merge pull request #18172 from Random-Liu/generate-sync-event
Auto commit by PR queue bot
2016-01-20 22:48:35 -08:00
Random-Liu
eb56d46b74 Minor clean up in kubelet syncPod() 2016-01-20 17:31:59 -08:00
Ken Robertson
a7b07c01df Update container runtime to properly report the engine and version
This address a TODO when collecting the node version information so it
will properly report the configured runtime and its version. Previously,
this was hardcoded to "docker://" and the docker version, and would show
"docker://1.9.1" even when the kubelet was configured to use rkt.

With this change, it will use the runtime's Type() and Version() data.

This also changes the container.Runtime interface to add an APIVersion()
method. This can be used when the runtime has separate versions for the
engine and the API, such as with Docker. The Docker minimum version
validation has been updated to use APIVersion(), and
DockerManager.Version() now returns the engine version.
2016-01-20 16:42:25 -08:00
Vishnu kannan
21748701f1 Avoid nodes that have 0 cpu and memory capacity.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-01-20 15:34:58 -08:00
Yu-Ju Hong
dc5b35a570 Set default status to pending for pods from non-apiserver sources 2016-01-20 09:36:01 -08:00
Yu-Ju Hong
cfb5442b2d Turn on kubecontainer.Cache in kubelet 2016-01-19 18:15:10 -08:00
Yu-Ju Hong
f1535a0d4c Don't handle graceful deletion of mirror pods in status manager 2016-01-19 16:47:57 -08:00
Paul Morie
c548054560 Add ability to consume secrets in env vars 2016-01-18 12:20:51 -05:00
Piotr Szczesniak
9659057986 Revert "Enable kubecontainer.Cache in kubelet" 2016-01-18 13:35:41 +01:00
Lantao Liu
4c37dbe6e6 Merge pull request #19690 from Random-Liu/fix-bug-in-status-test
Fix bug in status/manager_test.go
2016-01-18 01:15:16 -08:00
k8s-merge-robot
fcf8263b1b Merge pull request #19572 from pwittrock/exportfsmetrics
Auto commit by PR queue bot
2016-01-17 07:46:02 -08:00
k8s-merge-robot
0051dcc83e Merge pull request #19560 from Random-Liu/format-reconcile-log
Auto commit by PR queue bot
2016-01-17 04:51:05 -08:00
Random-Liu
0e612afa98 Start using PodSyncResult in dockertools 2016-01-17 00:42:45 -08:00
Random-Liu
f2176643e7 Add unit test for PodSyncResult 2016-01-17 00:42:45 -08:00
Random-Liu
2d31d8ed4c Add PodSyncResult 2016-01-17 00:42:44 -08:00
k8s-merge-robot
ac0d01f8ca Merge pull request #19436 from yujuhong/status_cache_p2
Auto commit by PR queue bot
2016-01-16 09:24:19 -08:00
k8s-merge-robot
ffed4e1a3a Merge pull request #19428 from yifan-gu/rkt_isolator
Auto commit by PR queue bot
2016-01-16 08:48:38 -08:00
Mike Danese
936c8cd597 Merge pull request #19685 from resouer/testing
Replace fake handler using testing pkg
2016-01-15 17:47:53 -08:00
Tim St. Clair
5a0dc30b51 Add blank /stats/summary kubelet endpoint
Add a `/stats/summary` endpoint to the kubelet which will return an
empty Summary{} struct (json formatted), as a summary API
placeholder. Once the next cAdvisor release is vendored, the summary
API will be filled in.
2016-01-15 14:55:54 -08:00
Random-Liu
8fb056d258 Add getTestPod() to avoid sharing object among test cases 2016-01-15 11:22:15 -08:00
k8s-merge-robot
21aa683fb5 Merge pull request #18974 from pmorie/config-env
Auto commit by PR queue bot
2016-01-15 06:42:56 -08:00
combk8s
5b383dad62 fix image gc bug 2016-01-15 16:43:22 +08:00
harry
98222b4d8b Replace to tag
Use a testing pkg to replace testing util codes
2016-01-15 15:07:21 +08:00
Harry Zhang
936a11e775 Use networking to hold network related pkgs
Change names of unclear methods

Use net as pkg name for short
2016-01-15 13:46:16 +08:00
Mike Danese
33c72db59c Merge pull request #19528 from resouer/strings-util
Create strings pkg to fix util issue
2016-01-14 21:19:17 -08:00
harry
7405c7899b Add strings pkg to hold strings utils
Replace funtions with strings pkg

Fix all references and rename the pkg
2016-01-15 12:37:50 +08:00
Phillip Wittrock
bb216e53da Define stats api fields for exporting filesystem metrics #17331 2016-01-14 15:52:35 -08:00
Yu-Ju Hong
c9faecba9d Merge pull request #19668 from Random-Liu/fix-bug-in-reconcile
Fix bug in needsReconcile
2016-01-14 14:29:29 -08:00
Mike Danese
9745d1cbf0 Merge pull request #19626 from mikedanese/kubelet-labels
kubelet: use ConfigurationMap instead of json
2016-01-14 14:08:53 -08:00
Prashanth B
926b94fefc Merge pull request #19493 from bprashanth/kubelet_fix
Errors in network setup should prevent pod creation
2016-01-14 13:49:19 -08:00
Yu-Ju Hong
15950daa7f Restore the old behavior of setting pod status to pending 2016-01-14 13:46:26 -08:00
Random-Liu
fed61731f1 Fix bug in needsReconcile 2016-01-14 13:44:02 -08:00
Mike Danese
41df8749a8 Merge pull request #19470 from gmarek/kubemark-performance
Shorten the sleep amount in the fake docker client
2016-01-14 11:55:24 -08:00
Mike Danese
14378485f3 Merge pull request #19629 from yifan-gu/rkt_debug_logging
rkt: Add useful debugging message.
2016-01-14 11:49:18 -08:00
Mike Danese
35a3785cf6 kubelet: use ConfigurationMap instead of json 2016-01-14 09:32:42 -08:00
Yu-Ju Hong
07cf5cff48 Enable kubecontainer.Cache in kubelet 2016-01-14 09:31:24 -08:00
k8s-merge-robot
bf315d4563 Merge pull request #19374 from timstclair/housekeep
Auto commit by PR queue bot
2016-01-14 01:42:52 -08:00
k8s-merge-robot
a385de1e43 Merge pull request #19357 from timstclair/stats-refactor
Auto commit by PR queue bot
2016-01-13 23:54:48 -08:00
k8s-merge-robot
5462a37dfe Merge pull request #17700 from yujuhong/status_cache
Auto commit by PR queue bot
2016-01-13 22:47:57 -08:00
Yifan Gu
74b8ffd156 rkt: Add useful debugging message. 2016-01-13 17:15:49 -08:00
Paul Morie
6cfd101251 Add support for ConfigMap keys in env vars 2016-01-13 17:00:15 -05:00
Yu-Ju Hong
b56ed1a8c2 Support populating the runtime cache in PLEG
This changes does not turn on this feature (cache) for kubelet.
2016-01-13 10:19:47 -08:00
Yu-Ju Hong
032c0a4074 Add container.Cache for storing container.PodStatus
This cache will be used to stores the PodStatus of all pods/containers
visible on the node. This will elimiate the need for pod workers to query the
container runtime directly.
2016-01-13 10:19:47 -08:00
Sami Wagiaalla
125295ba40 Remove manageVolumeOwnership from kubelet 2016-01-13 10:37:10 -05:00
Sami Wagiaalla
f650648aae Add fsGroup to SetUp and SetUpAt 2016-01-13 10:37:10 -05:00
Tim St. Clair
e2ffd007f7 Implement node Allocatable
Add `kube-reserved` and `system-reserved` flags for configuration
reserved resources for usage outside of kubernetes pods. Allocatable is
provided by the Kubelet according to the formula:
```
Allocatable = Capacity - KubeReserved - SystemReserved
```

Also provides a method for estimating a reasonable default for
`KubeReserved`, but the current implementation probably is low and needs
more tuning.
2016-01-12 17:00:43 -08:00
Yu-Ju Hong
4ab505606b Always overwrite items in kubelet's work queue
This allows kubelet to change the next sync time based on the last result.
2016-01-12 16:25:19 -08:00
Yu-Ju Hong
73a4f8225c PLEG should report events if a container is removed
Currently, pleg would report a event if a container transitions from running to
exited between relisting. However, if would not report any event if a container
gets stopped and removed between relisting. This event will eventually be
handled when the pod syncs periodically, but this is undesirable. This change
ensures that we detect all such events.
2016-01-12 16:25:19 -08:00
Mike Danese
bf763bba95 Merge pull request #19498 from pwittrock/nodelabels
Node labels: Remove node-labels-file command line option.  Change --n…
2016-01-12 15:12:57 -08:00
Derek Parker
55f09009c7 rkt: Include size in ListImages 2016-01-12 14:44:40 -08:00
k8s-merge-robot
0df7e695d4 Merge pull request #19458 from davidopp/notsclose
Auto commit by PR queue bot
2016-01-12 13:53:13 -08:00
Phillip Wittrock
f1c8384ff4 Node labels: Remove node-labels-file command line option. Change --node-label format from key=value to key:value to be consitent with how the header key:value is specified on command line. 2016-01-12 12:57:12 -08:00
Random-Liu
acb74454dc Format reconcile log with format.Pod(pod) 2016-01-12 12:03:16 -08:00
k8s-merge-robot
67ac4e3838 Merge pull request #18410 from Random-Liu/reconcile-pod-status
Auto commit by PR queue bot
2016-01-12 02:17:09 -08:00
k8s-merge-robot
c255181509 Merge pull request #18248 from resouer/images-dev
Auto commit by PR queue bot
2016-01-11 23:53:43 -08:00
David Oppenheimer
8ac484793d Comment out calls to httptest.Server.Close() to work around
https://github.com/golang/go/issues/12262 . See #19254 for
more details. This change should be reverted when we upgrade
to Go 1.6.
2016-01-11 23:02:11 -08:00
Saad Ali
651206fd90 Merge pull request #19393 from yujuhong/fix_dockerclient
Fix fake docker client to corretly report status of containers
2016-01-11 13:56:41 -08:00
Saad Ali
f5ea4f4671 Merge pull request #19392 from yujuhong/runtime_mock
Add a container runtime mock for testing
2016-01-11 13:03:37 -08:00
Prashanth Balasubramanian
4fe4f1f20e Errors in network setup should prevent pod creation 2016-01-11 11:16:15 -08:00
gmarek
573c3ca320 Shorten the sleep amount in the fake docker client 2016-01-11 12:15:11 +01:00
Random-Liu
5b4a210d49 Add reconcile support in kubelet 2016-01-10 01:35:07 -08:00
k8s-merge-robot
609cdfd267 Merge pull request #19331 from resouer/hash-util
Auto commit by PR queue bot
2016-01-09 13:08:01 -08:00
Yu-Ju Hong
712612c2dc Treat first-seen, non-pending pods as updates
Kubelet doesn't perform checkpointing and loses all its internal states after
restarts. It'd then mistaken pods from the api server as new pods and attempt
to go through the admission process. This may result in pods being rejected
even though they are running on the node (e.g., out of disk situation). This
change adds a condition to check whether the pod was seen before and categorize
such pods as updates. The change also removes freeze/unfreeze mechanism used to
work around such cases, since it is no longer needed and it stopped working
correctly ever since we switched to incremental updates.
2016-01-08 17:21:43 -08:00
Yifan Gu
dda62129d1 rkt: Add unit tests for setApp. 2016-01-08 13:41:18 -08:00
Yifan Gu
cc656ae6ac rkt: Refactor setIsolators.
Replace manually creating isolators with isolator constructors.
Also add support for supplementary group IDs.
2016-01-08 13:31:21 -08:00
harry zhang
27ca7dc71e Expose image list in node status
Change image manager to use repotag
2016-01-08 17:01:31 +08:00
Yu-Ju Hong
b969599daf Fix fake docker client to corretly report status of containers 2016-01-07 18:20:41 -08:00
Yu-Ju Hong
c997fb3715 Add a container runtime mock for testing 2016-01-07 18:02:49 -08:00
Isaac Hollander McCreery
791cae90f0 Merge pull request #19350 from brendandburns/oncall
Improve error reporting a little in ingress e2e.
2016-01-07 15:51:31 -08:00
Tim St. Clair
3c72506f10 Fixed test & error code 2016-01-07 11:55:26 -08:00
Tim St. Clair
1fd72a7871 Change default cAdvisor housekeeping interval to 10s
Change the default interval cAdvisor uses to gather stats to 10
seconds.
2016-01-07 11:29:15 -08:00
Clayton Coleman
791d160b42 Split the Kubelet flag options and struct
Reduces the size of the app/server.go file and ensures that the flags
and their defaults are clearly separated.
2016-01-06 21:23:06 -05:00
Tim St. Clair
368447ff3f Rector kubelet stats serving
Changes include:
- Moving stats serving & routes to pkg/kubelet/server/stats/handler.go
- Managing the routes with restful.WebService, rather than manual
parsing
- Misc cleanup

These changes will make adding the new routes for /stats/summary more
manageable.
2016-01-06 17:37:12 -08:00
Brendan Burns
07b3ab720d Improve error reporting a little in ingress e2e.
Also add Output() to the util/exec Cmd interface.
2016-01-06 15:25:04 -08:00
harry
2a52976983 Use hashutil to hold hash tools 2016-01-06 22:28:58 +08:00
k8s-merge-robot
d1668c6656 Merge pull request #19269 from yifan-gu/rkt_refactor
Auto commit by PR queue bot
2016-01-05 22:28:02 -08:00
k8s-merge-robot
38f926dbb9 Merge pull request #19206 from Random-Liu/remove-wired-docker-label
Auto commit by PR queue bot
2016-01-05 19:32:01 -08:00
k8s-merge-robot
66d3cbf889 Merge pull request #16900 from madhusudancs/avoid-kubelet-oscillation
Auto commit by PR queue bot
2016-01-05 17:14:13 -08:00
Random-Liu
884dc5c9e5 Put TerminationGracePeriod, DeletionGracePeriod and PreStopHandler to docker labels 2016-01-05 15:45:29 -08:00
Yu-Ju Hong
343240d559 Fix container restarts caused by kubelet restarts
There has been a recent regression causing kubelet to assume no containers are
running for the pod if kubelet has not seen the pod before. This would cause
all containers to be restarted after kubelet gets restarted. This change fixes
the bug.
2016-01-05 14:24:22 -08:00
k8s-merge-robot
4a89481fbb Merge pull request #19034 from Random-Liu/deprecate-running-pod-in-syncpod
Auto commit by PR queue bot
2016-01-04 18:51:18 -08:00
Yifan Gu
2767f10b61 rkt: refactoring on constructing the app section of rkt pods. 2016-01-04 16:27:52 -08:00
Madhusudan.C.S
059c2aa799 Mitigate node out of disk status oscillation by delaying it.
Implement a flag that defines the frequency at which a node's out of
disk condition can change its status. Use this flag to suspend out of
disk status changes in the time period specified by the flag, after
the status is changed once.

Set the flag to 0 in e2e tests so that we can predictably test out of
disk node condition.

Also, use util.Clock interface for all time related functionality in
the kubelet. Calling time functions in unversioned package or time
package such as unversioned.Now() or time.Now() makes it really hard
to test such code. It also makes the tests flaky and sometimes
unnecessarily slow due to time.Sleep() calls used to simulate the
time elapsed. So use util.Clock interface instead which can be faked
in the tests.
2016-01-04 12:23:38 -08:00
Yu-Ju Hong
7d180b337b Record pleg pod relist interval and latency
Relisting latency/interval affects how quick kubelet discovers changes. Record
the metrics in Prometheus to surface such information.
2016-01-04 10:56:38 -08:00
Random-Liu
2ea11690b8 Remove running pod from SyncPod() of container runtime 2016-01-04 10:18:46 -08:00
Ravi Sankar Penta
d0dd6c844b Allow node IP to be passed as optional config for kubelet
In case of multiple IPs on the node, this will allow admin to
specify desired IP to be used for the node.
2016-01-03 09:29:07 -08:00
Random-Liu
b2a72ca384 Change my TODO to be the same with others 2015-12-31 00:41:05 -08:00
Yifan Gu
9b81b67879 rkt: Move image related functions to image.go 2015-12-29 17:17:27 -08:00
Random-Liu
6e92ddf9e1 Cleanup pod print in dockertools/manager.go, prober/prober.go and
runonce.go
2015-12-28 14:07:37 -08:00
Chao Xu
2b5b708b70 Refactor the API registration and installation 2015-12-23 22:44:25 -08:00
Yifan Gu
644aa9536a rkt: Remove pod_info.go, clean up codes that not needed anymore. 2015-12-22 12:02:25 -08:00
Yifan Gu
ee7251ed10 rkt: Update for newest api version. 2015-12-22 12:02:25 -08:00
Yifan Gu
278f0dc8ad rkt: Replace image cat-manifest/list with api calls. 2015-12-22 12:02:25 -08:00
Jimmi Dyson
041ab17a67 Bump cadvisor to fix interface stats bugs & improve performance
Includes necessary godep upgrades for docker & systemd packages as well as
migrating from docker/libcontainer to opencontainers/runc/libcontainer.
2015-12-21 17:07:21 +00:00
k8s-merge-robot
a29f4babf5 Merge pull request #18544 from timstclair/stats
Auto commit by PR queue bot
2015-12-19 19:54:11 -08:00
k8s-merge-robot
cb42bd47bb Merge pull request #18027 from roboll/runonce-datadirs
Auto commit by PR queue bot
2015-12-19 19:14:29 -08:00
k8s-merge-robot
b7dd32ad70 Merge pull request #18643 from yifan-gu/rkt_get_pod_status
Auto commit by PR queue bot
2015-12-19 02:38:31 -08:00
k8s-merge-robot
0b647564fc Merge pull request #18625 from bprashanth/kube_up_flannel
Auto commit by PR queue bot
2015-12-19 01:29:11 -08:00
Wojciech Tyczynski
bf73d1741e Merge pull request #18729 from timstclair/worker-race
Concurrency fixes for prober tests
2015-12-18 16:15:13 +01:00
Tim St. Clair
c357b91d2c Update from offline discussions
- Sample is now the toplevel struct, so all child structs have the same
  timestamp
- Removed FilesystemStats. There are more discussions needed
  wrt. volumes and disk accounting, so this will be added in a follow
  up PR
- Removed Options. The most recent sample will be returned.
2015-12-17 15:45:14 -08:00
Tim St. Clair
e1fc2c1152 @vishh PR feedback 2015-12-17 10:54:17 -08:00
Tim St. Clair
ce20c3b100 Add new Stats API for serving pod level stats
This API has been discussed ad nauseam across several forums, and this
API represents the latest conclusion. In summary, we will provide this
API as temporary solution for providing the new stats required for 1.2.

In the longterm this API will be split into "essential" stats, which
will be provided by a first-party API served through the kubelet, and
"non-essential" (monitoring) stats, which will be provided by a 3rd
party API served from a pod.
2015-12-17 10:54:17 -08:00
Vishnu Kannan
3c0745211f Fix docker root dir detection. 2015-12-17 10:24:30 -08:00
k8s-merge-robot
674e24a16e Merge pull request #18617 from mqliang/OSImage
Auto commit by PR queue bot
2015-12-17 08:50:48 -08:00
deads2k
9fda7f1812 update StatusDetails to handle Groups 2015-12-17 09:14:12 -05:00
k8s-merge-robot
0f144fd351 Merge pull request #18529 from timstclair/server
Auto commit by PR queue bot
2015-12-17 04:27:11 -08:00
Yifan Gu
2c79c670f1 rkt: Fix GetPods(), refactor tests for GetPods().
Fix GetPods() so that the container hash is fetched from the
annotations in pod manifest's app list instead of image manifest.
2015-12-16 16:53:45 -08:00
Yifan Gu
5f4e6d0908 rkt: Add GetPodStatus(), GetPodStatusAndAPIPodStatus().
Also add ConvertPodStatusToAPIPodStatus().
Add tests for GetPodStatus().
2015-12-16 14:35:19 -08:00
k8s-merge-robot
c2189fd60d Merge pull request #18518 from Random-Liu/fix-potential-data-race
Auto commit by PR queue bot
2015-12-16 09:45:52 -08:00
Tim St. Clair
facb0a5c42 Concurrency fixes for prober tests
Fix leaking go routines and race conditions in prober unit tests.
2015-12-15 14:37:48 -08:00
Tim St. Clair
89bc7992f9 Refactor kubelet server into its own package
Refactor Kubelet's server functionality into a server package. Most
notably, move pkg/kubelet/server.go into
pkg/kubelet/server/server.go. This will lead to better separation of
concerns and a more readable code hierarchy.
2015-12-15 10:20:38 -08:00
k8s-merge-robot
5429d15fcf Merge pull request #18449 from timstclair/race
Auto commit by PR queue bot
2015-12-15 05:32:17 -08:00
k8s-merge-robot
3680268c52 Merge pull request #18353 from deads2k/gv-use-constants
Auto commit by PR queue bot
2015-12-15 03:25:09 -08:00
k8s-merge-robot
25acc9bafa Merge pull request #18301 from yujuhong/remove_wait
Auto commit by PR queue bot
2015-12-15 02:51:55 -08:00
k8s-merge-robot
1f0e46abb8 Merge pull request #16237 from ZJU-SEL/fix-util
Auto commit by PR queue bot
2015-12-14 18:41:14 -08:00
Prashanth Balasubramanian
b5303b9978 Tell kubernetes-master not to wait on flannel. 2015-12-14 09:47:09 -08:00
deads2k
d0aaf13920 use constants for group names 2015-12-14 10:04:10 -05:00
Wojciech Tyczynski
960808bf08 Switch to versioned ListOptions in client. 2015-12-14 14:26:09 +01:00
harry zhang
5405a5d98d Move atomic_value into folder
Change pkg to atomic
2015-12-14 05:50:29 +00:00
mqliang
a21dd8a32b replace OsImage to OSImage 2015-12-12 15:53:34 +08:00
k8s-merge-robot
3d24d25fd8 Merge pull request #17764 from jiangyaoguo/make-containerspecchange-private
Auto commit by PR queue bot
2015-12-11 17:40:34 -08:00
Jeff Lowdermilk
9f3d28c788 Merge pull request #18305 from yujuhong/podfullname
Replace podFullName with format.Pod() in logging messages
2015-12-11 14:31:47 -08:00
Jeff Lowdermilk
9c49cdaa6e Merge pull request #18276 from thockin/airplane_validation_pt6
Validation cleanup parts 5 & 6 together
2015-12-11 13:34:37 -08:00
k8s-merge-robot
23baca87b5 Merge pull request #18232 from pwittrock/fsacct
Auto commit by PR queue bot
2015-12-11 00:48:09 -08:00
k8s-merge-robot
6b8eb902ce Merge pull request #17969 from dgonyeo/rkt_api_get_pods
Auto commit by PR queue bot
2015-12-10 23:13:37 -08:00
k8s-merge-robot
caf4b1e47f Merge pull request #18191 from thockin/ingress-egress-annotations
Auto commit by PR queue bot
2015-12-10 23:01:26 -08:00
Tim Hockin
7fb8f60735 Shorten names for better reading 2015-12-10 11:48:19 -08:00
Tim Hockin
87a35047dd Move FieldPath and errors to a sub-package
This makes the naming and reading a lot simpler.
2015-12-10 11:48:16 -08:00
Random-Liu
eb551f388c Fix potential data race 2015-12-10 10:35:02 -08:00
k8s-merge-robot
34c32a5615 Merge pull request #18498 from feihujiang/fixDocOfNetworkPluginVersion
Auto commit by PR queue bot
2015-12-10 09:44:32 -08:00
k8s-merge-robot
2ef2544faa Merge pull request #18237 from yifan-gu/refactor_getphase
Auto commit by PR queue bot
2015-12-10 06:55:02 -08:00
k8s-merge-robot
073661514e Merge pull request #18129 from yujuhong/fix_status
Auto commit by PR queue bot
2015-12-10 03:35:33 -08:00
feihujiang
5cfdcfd8f6 Fix the doc of network plugin version 2015-12-10 16:57:27 +08:00
Phillip Wittrock
c67ce887f2 Volume Metrics Interface and base implementation.
- Add volume.MetricsProvider function to Volume interface.
- Add volume.MetricsDu for providing metrics via executing "du".
- Add volulme.MetricsNil for unsupported Volumes.
2015-12-09 16:06:24 -08:00
Derek Gonyeo
5a16b4751b rkt: rewrote GetPods to use rkt's api service
This involved adding annotations to the rkt pod's manifest that contain
information about the kubernetes pod, which is later read by the
kubelet.
2015-12-09 14:43:50 -08:00
Tim St. Clair
246442514c Expose Start method, don't call in constructor 2015-12-09 10:58:15 -08:00
Tim St. Clair
32794b18f0 Fix data race in prober test 2015-12-09 10:20:57 -08:00
Wojciech Tyczynski
a915b8b29a Merge pull request #18080 from wojtek-t/list_options_in_listwatch
Pass ListOptions to List in ListWatch.
2015-12-09 14:27:51 +01:00
Yu-Ju Hong
c646255579 Replace podFullName with format.Pod() in logging messages 2015-12-07 13:41:52 -08:00
Yu-Ju Hong
fda73c04ec Change to include UID by default in formatting 2015-12-07 13:32:02 -08:00
deads2k
2ee3dfe415 update testapi to eliminate redundant fields 2015-12-07 15:54:26 -05:00
Yu-Ju Hong
e0d9ccde65 Minor clean up on checking container runtime status
Remove redundant function and consolidate the code.
2015-12-07 11:13:59 -08:00
Fabio Yeon
5457f5ace2 Merge pull request #18240 from timstclair/readiness
Update PodReady condition when updating container readiness
2015-12-07 10:43:22 -08:00
Abhi Shah
bb3f49e526 Merge pull request #18089 from ArtfulCoder/oneNSAgain
SkyDNS is the only NS for Pods with DNSPolicy=ClusterFirst
2015-12-07 10:20:29 -08:00
Wojciech Tyczynski
b0fcb5adef Pass ListOptions to List in ListWatch. 2015-12-07 11:53:53 +01:00
k8s-merge-robot
316a8ac41c Merge pull request #18073 from ingvagabund/garbage-collector-low-high-threshold-test
Auto commit by PR queue bot
2015-12-07 02:10:57 -08:00
jiangyaoguo
5f77f2b5a9 make PodContainerSpecChange private 2015-12-07 09:28:15 +08:00
k8s-merge-robot
810181fb7b Merge pull request #17278 from ZJU-SEL/fix-nil-tag
Auto commit by PR queue bot
2015-12-06 12:52:39 -08:00
k8s-merge-robot
fc92833238 Merge pull request #17973 from liggitt/validate_node_name
Auto commit by PR queue bot
2015-12-05 13:23:26 -08:00
k8s-merge-robot
e1230eb57e Merge pull request #17420 from Random-Liu/use-raw-pod-status-in-docker
Auto commit by PR queue bot
2015-12-05 12:16:04 -08:00
k8s-merge-robot
50af1d6550 Merge pull request #17756 from zhengguoyong/check_ref_before_use
Auto commit by PR queue bot
2015-12-05 10:52:56 -08:00
k8s-merge-robot
510949261a Merge pull request #17752 from yujuhong/docker_health
Auto commit by PR queue bot
2015-12-05 10:24:48 -08:00
Jordan Liggitt
7d10fd3591 Validate pod spec.nodeName 2015-12-05 11:34:09 -05:00
k8s-merge-robot
2f4d4d9e94 Merge pull request #17968 from dgonyeo/rkt_api_list_images
Auto commit by PR queue bot
2015-12-05 05:50:06 -08:00
Yifan Gu
4ac6129578 kubelet: Small refactor on GetPhase(). 2015-12-04 18:43:09 -08:00
Random-Liu
3cbdf79f8c Change original PodStatus to APIPodStatus, and start using kubelet internal PodStatus in dockertools 2015-12-04 17:37:39 -08:00
k8s-merge-robot
c55b136ae2 Merge pull request #17149 from zhengguoyong/refactor_set_node_status
Auto commit by PR queue bot
2015-12-04 16:10:04 -08:00
Tim St. Clair
2430454eea Update PodReady condition when updating container readiness 2015-12-04 15:40:33 -08:00
Derek Gonyeo
7ae6bf9d39 rkt: rewrote ListImages to use rkt's API service 2015-12-04 11:25:56 -08:00
k8s-merge-robot
37d22999b4 Merge pull request #17572 from yujuhong/kubeutil
Auto commit by PR queue bot
2015-12-04 03:15:54 -08:00
zhengguoyong
08c6bab575 Refactor fun setNodeStatus 2015-12-04 19:00:33 +08:00
Tim Hockin
29a2fded52 Revert "Change to alpha/beta for bandwidth annotations"
This reverts commit 2f4c3035be.
2015-12-03 17:20:23 -08:00
Yu-Ju Hong
c8a075ad62 Do not delete pod status entry when apiserver returns NotFound error
The logic doesn't apply to static pods as their corresponding mirror pod may
not have been created yet, or may be in the process of recreation. Deleting the
pod status immediately resets the version of the status for the static pod,
while the apiStatusVersion remains unchanged. This could lead to incorrect
versioning and hence stale pod status in the apiserver.
2015-12-03 13:11:48 -08:00
Yu-Ju Hong
a4816b3bcb Make kublet/util/format.go a separate package
The formatting function is used often in logging. This improves the readability
by shortening the length of the call. Also change the fomartted string to
include the pod UID.
2015-12-03 12:47:36 -08:00
Tim Hockin
e6df0b1a24 Convert validation to use FieldPath
Before this change we have a mish-mash of ways to pass field names around for
error generation.  Sometimes string fieldnames, sometimes .Prefix(), sometimes
neither, often wrong names or not indexed when it should be.

Instead of that mess, this is part one of a couple of commits that will make it
more strongly typed and hopefully encourage correct behavior.  At least you
will have to think about field names, which is better than nothing.

It turned out to be really hard to do this incrementally.
2015-12-03 08:19:44 -08:00
k8s-merge-robot
f9715c6455 Merge pull request #17479 from mqliang/hardcode
Auto commit by PR queue bot
2015-12-03 06:13:15 -08:00
Marek Grabowski
ffdfc68d11 Merge pull request #18075 from wojtek-t/only_list_options_in_list
Simplify List() signature in clients.
2015-12-03 10:38:33 +01:00
Marek Grabowski
348e7ecc5d Merge pull request #17349 from PeterLamar/master
Small readability improvements in Kubelet
2015-12-03 10:08:58 +01:00
Wojciech Tyczynski
6dcb689d4e Simplify List() signature in clients. 2015-12-03 09:54:07 +01:00
k8s-merge-robot
106cf2b6b5 Merge pull request #17755 from timstclair/status-manager
Auto commit by PR queue bot
2015-12-02 22:07:44 -08:00
Abhishek Shah
6c3a88cb3a SkyDNS is the only NS for Pods with DNSPolicy=ClusterFirst 2015-12-02 10:26:49 -08:00
k8s-merge-robot
8a8639d7af Merge pull request #17863 from wojtek-t/only_list_options_in_watch
Auto commit by PR queue bot
2015-12-02 06:28:28 -08:00
k8s-merge-robot
689586c6ae Merge pull request #16153 from gmarek/use_api_ports
Auto commit by PR queue bot
2015-12-02 05:57:49 -08:00
Jan Chaloupka
9590b23264 LowThresholdPercent can not be higher than HighThresholdPercent
if LowThresholdPercent > HighThresholdPercent, amountToFree at image_manager.go:208 is negative and image GC will not free memory properly.

Justification:

1) LowThresholdPercent > HighThresholdPercent implies (LowThresholdPercent * capacity / 100) > (HighThresholdPercent * capacity / 100)
2) usage is at least (HighThresholdPercent * capacity / 100)
3) amountToFree = usage - (LowThresholdPercent * capacity / 100)

Combining 1), 2) and 3) implies amountToFree can be negative.

What happens if amountToFree is negative? in freeSpace method, "for _, image := range images " loops at least once
and if everything goes fine, "delete(im.imageRecords, image.id)" is executed.
When checking for condition "if spaceFreed >= bytesToFree", it is always true as bytesToFree is negative
and spaceFreed is positive. The loop is finished, so is image GC.

At the end, only the oldest image is deleted. In situations where there is a lot of dead containers,
each container corresponing to distinct image, number of unused images can get higher.
If two new images get pulled in every 5 minutes, image GC will not work properly and will not free enough space.
Secondly, it will take a lot of time to free all unused images (hours depending on a number of unused images).

This is an incorrect configuration. Image GC should report it and refuse to work.
2015-12-02 14:28:51 +01:00
gmarek
459131fd92 Use KubeletPort reported in NodeStatus instead of cluster-wide master config, take 2. 2015-12-02 13:38:17 +01:00
k8s-merge-robot
ac68536d44 Merge pull request #17832 from wojtek-t/list_options_in_list
Auto commit by PR queue bot
2015-12-02 02:34:17 -08:00
k8s-merge-robot
5e53e281e5 Merge pull request #17545 from yujuhong/no_auto_updates
Auto commit by PR queue bot
2015-12-02 02:03:08 -08:00
Fabio Yeon
7100d278e3 Revert "SkyDNS is the only NS for Pods with DNSPolicy=ClusterFirst" 2015-12-01 20:58:27 -08:00
k8s-merge-robot
4602220ad0 Merge pull request #15645 from ArtfulCoder/oneNS
Auto commit by PR queue bot
2015-12-01 13:51:37 -08:00
rob boll
81b9097a80 kubelet runonce: create data dirs 2015-12-01 14:03:02 -05:00
k8s-merge-robot
355ac2c58d Merge pull request #17581 from swagiaal/correct-management-predicates
Auto commit by PR queue bot
2015-12-01 06:42:15 -08:00
Wojciech Tyczynski
8343c8ce6c Pass ListOptions to List() methods. 2015-12-01 15:00:36 +01:00
Wojciech Tyczynski
d2dfc912e6 Simplify Watch() signature in clients. 2015-12-01 14:19:26 +01:00
k8s-merge-robot
a836b1e261 Merge pull request #17326 from caesarxuchao/grooupVersion-lastest
Auto commit by PR queue bot
2015-12-01 05:05:40 -08:00
Chao Xu
6e192760e3 refactoring latest.go GroupVersion;
clean up latest.go GroupVersions;
remove latest.GroupMeta.Group;
remove latest.GroupMeta.Version.
2015-11-30 11:30:21 -08:00
Sami Wagiaalla
a7fc99933b Fix predicates for SELinux and ownership management 2015-11-30 10:31:28 -05:00
Harry Zhang
5552d7007c Add default when latest not claimed 2015-11-30 17:10:50 +08:00
harry zhang
121c7046aa Move parsers into util 2015-11-29 22:15:11 -08:00
jiangyaoguo
f4c5d00b0c Implement a cachedNodeInfo in predicates 2015-11-27 21:49:14 +08:00
k8s-merge-robot
7cc83b347e Merge pull request #17607 from yifan-gu/rm_rkt_image_manager
Auto commit by PR queue bot
2015-11-27 01:49:00 -08:00
k8s-merge-robot
4eb010b1f7 Merge pull request #17694 from hongchaodeng/ratelimit
Auto commit by PR queue bot
2015-11-26 13:12:26 -08:00
Clayton Coleman
1d592e4c28 Unversioned types should not use ambiguous go-int
All external types that are not int64 are now marked as int32,
including
IntOrString. Prober is now int32 (43 years should be enough of an initial
probe time for anyone).

Did not change the metadata fields for now.
2015-11-26 11:45:25 -05:00
k8s-merge-robot
492782c942 Merge pull request #17401 from aaronlevy/condition_order
Auto commit by PR queue bot
2015-11-26 04:29:34 -08:00
k8s-merge-robot
39cabe3580 Merge pull request #17684 from Random-Liu/cleanup-gc-test
Auto commit by PR queue bot
2015-11-26 03:26:39 -08:00
Phillip Wittrock
6b358e43dd Merge pull request #17747 from saad-ali/fixErrorCreatingPDTry2
Refactor GCE wrapper library to allow execution from E2E test suite
2015-11-25 15:57:42 -08:00
Abhishek Shah
015df14a4a SkyDNS is the only NS for Pods with DNSPolicy=ClusterFirst 2015-11-25 15:02:40 -08:00
Aaron Levy
3dc7c64ce9 kubelet: report NodeReady last in status list
Addresses a version skew issue where the last condition status is always
evaluated as the NodeReady status. As a workaround force the NodeReady
condition to be the last in the list of node conditions.

ref: https://github.com/kubernetes/kubernetes/issues/16961
2015-11-25 11:53:31 -08:00
saadali
42b200a0a0 Refactor GCE wrapper library to allow execution from E2E test suite
This reverts commit 147b6911f5, reversing
changes made to 6fd986065b.
2015-11-25 11:48:06 -08:00
Random-Liu
c6d02b83e5 Cleanup container_gc_test.go 2015-11-25 10:37:39 -08:00
k8s-merge-robot
3bd23b185b Merge pull request #17730 from wojtek-t/use_unversioned_list_options_in_client
Auto commit by PR queue bot
2015-11-25 09:10:19 -08:00
k8s-merge-robot
ff3f240de2 Merge pull request #17533 from Random-Liu/fix-fake-docker-client
Auto commit by PR queue bot
2015-11-25 08:44:26 -08:00
Marek Grabowski
62009344cc Merge pull request #17761 from gmarek/flannel
Rebase of @bprashant Flannel out of the box
2015-11-25 16:04:35 +01:00
k8s-merge-robot
27c2f5fb52 Merge pull request #17526 from yifan-gu/rkt_api_service
Auto commit by PR queue bot
2015-11-25 06:24:55 -08:00
Prashanth Balasubramanian
9aa0efa393 Turn flannel off by default 2015-11-25 09:43:48 +01:00
Prashanth Balasubramanian
ad2d3d4c20 Docs etc 2015-11-25 09:42:59 +01:00
Prashanth Balasubramanian
321bc73264 Flannel server in static pod with private etcd. 2015-11-25 09:42:59 +01:00
Prashanth Balasubramanian
7aa8ebe30f Flannel handshakes with kubelet. 2015-11-25 09:42:59 +01:00
k8s-merge-robot
3e56ce6490 Merge pull request #17327 from deads2k/gv-restmapper
Auto commit by PR queue bot
2015-11-24 19:08:49 -08:00
zhengguoyong
2b5a655a5d check ref before use it 2015-11-25 11:02:14 +08:00
k8s-merge-robot
431c67710b Merge pull request #17247 from thockin/airplane_validation_pt3
Auto commit by PR queue bot
2015-11-24 18:37:09 -08:00
Tim St. Clair
d2532b50ce Correct backwards pod mappings
The mapping of static pod <--> mirror pod UIDs was backwards in a couple
places. Fortunately, they canceled each other out. Fixed, and added a
test case.
2015-11-24 18:32:44 -08:00
Yu-Ju Hong
26b6b18fad Remove docker health handler from kubelet /healthz
Docker's health is checked separately from kubelet by the processing monitoring
tool (e.g., supervisord). kubelet should not be killed when docker is down.
This change removes the docker health handler from kubelet's /healthz handler.
2015-11-24 17:22:55 -08:00
k8s-merge-robot
d42030170b Merge pull request #15999 from aveshagarwal/master-issue-15624
Auto commit by PR queue bot
2015-11-24 17:07:10 -08:00
Tim St. Clair
a1960b0a21 More detailed logging of pod status updates. 2015-11-24 10:48:28 -08:00
Wojciech Tyczynski
b6ef62af24 Use unversioned.ListOptions in clients. 2015-11-24 16:52:09 +01:00
Avesh Agarwal
3d5207fd73 This commit adds type information to events.
This addresses issue #15624.
2015-11-24 09:59:54 -05:00
k8s-merge-robot
683e908f0a Merge pull request #17265 from gambol99/rj/node_labels
Auto commit by PR queue bot
2015-11-24 06:55:31 -08:00
deads2k
5077e9b644 make register.GroupVersion use GroupVersion 2015-11-24 09:45:36 -05:00
Hongchao Deng
13d152a873 RateLimiter: change CanAccept() to TryAccept() 2015-11-23 16:42:53 -08:00
Yifan Gu
5b423dd458 rkt: Refactor version check with api-service.
Also mocked systemd interfaces for testing purpose.
2015-11-23 16:30:51 -08:00
Tim Hockin
ceee678b29 Rename validation 'New' funcs 2015-11-23 10:01:43 -08:00
Tim Hockin
682f2a5a79 Stronger typing for validation ErrorList 2015-11-23 10:01:43 -08:00
k8s-merge-robot
32c240b350 Merge pull request #17245 from thockin/airplane_validation_pt1
Auto commit by PR queue bot
2015-11-23 06:45:28 -08:00
Jerzy Szczepkowski
8a922e22be Revert "Refactor GCE wrapper library to allow execution from E2E test suite" 2015-11-23 09:24:32 +01:00
Tim Hockin
0ff66da346 Move fielderrors into validation 2015-11-22 20:12:20 -08:00
k8s-merge-robot
3fbf0cb810 Merge pull request #17276 from saad-ali/fixErrorCreatingPD
Auto commit by PR queue bot
2015-11-21 23:32:30 -08:00
k8s-merge-robot
7b281c946b Merge pull request #17270 from timstclair/mirrorpods
Auto commit by PR queue bot
2015-11-21 22:55:26 -08:00
k8s-merge-robot
8a306a7527 Merge pull request #17234 from Random-Liu/move-more-info-to-docker-label
Auto commit by PR queue bot
2015-11-21 10:45:09 -08:00
Yifan Gu
28e78f4fb8 rkt: remove rkt image manager.
This removes the dead code of rkt image manager as the generic
image manager is being used.
2015-11-20 16:30:51 -08:00
Daniel Smith
874b4f85d9 Merge pull request #17259 from yujuhong/raw_pod_status
kubelet: add RawPodStatus and related functions
2015-11-20 14:23:19 -08:00
Yu-Ju Hong
41a9ab388d Use 10s period for image pulling backoff
This is consistent with the container restart backoff period.
2015-11-20 11:57:56 -08:00
saadali
882469dd7b Refactor GCE wrapper library to allow execution from E2E test suite 2015-11-20 11:41:10 -08:00
Lantao Liu
90ac508524 Cleanup fake_docker_client.go and manager_test.go 2015-11-19 19:03:35 -08:00
Yu-Ju Hong
dc42d25f4a kubelet: remove background updating thread in RuntimeCache
This feature is no longer useful pods don't sync as often. For batch
creation/deletions/syncs, the cache will be up-to-date for most pods since it
will be updated frequently. For other cases, continue updating for two more
seconds don't usually help, as temporal locality doesn't hold across pod syncs.
2015-11-19 17:25:51 -08:00
Dawn Chen
16fe4a8ada Fix a typo of NodeNotReady event. 2015-11-19 15:35:14 -08:00
Lantao Liu
f08097515f Move more things into docke label, and add label test 2015-11-18 23:17:16 -08:00
mqliang
83fc12a8c0 hardcode supportedComputeResources 2015-11-19 13:20:02 +08:00
Yu-Ju Hong
759795592d rkt: correctly copy container status in GetPods() 2015-11-18 18:18:53 -08:00
Rohith
c2526c93fa - adding the -node-label flag to the kubelet which allows for a initial tagging / labelling of the node on cluster registration
- the labels can come from a series of key=pair value or file:///path_to_file which contains key pairs
2015-11-18 23:20:58 +00:00
Abhi Shah
8c7c5ec117 Merge pull request #17307 from zhengguoyong/set_no_public_runonce
Use small letter var definition
2015-11-18 14:50:04 -08:00
Yu-Ju Hong
760309f349 kubelet: add RawPodStatus and related functions
RawPodStatus will be the internal status of the pod that kubelet relies on for
syncing.
2015-11-17 17:04:05 -08:00
k8s-merge-robot
9604988537 Merge pull request #16894 from alexhersh/manifest-fix
Auto commit by PR queue bot
2015-11-17 07:39:15 -08:00
k8s-merge-robot
1334401888 Merge pull request #17202 from brendandburns/fix2
Auto commit by PR queue bot
2015-11-17 00:49:13 -08:00
k8s-merge-robot
0c9bc3215d Merge pull request #14469 from thockin/intstr
Auto commit by PR queue bot
2015-11-16 23:20:37 -08:00
k8s-merge-robot
138a78db1f Merge pull request #16580 from jiangyaoguo/check-image-exist-after-pulled
Auto commit by PR queue bot
2015-11-16 22:53:34 -08:00
cephaslr
aef7af1ba4 Rename kubelet variable pods to maxPods in kubelet pkg to match pods variable in kubelet cmd.
Remove comment requesting modification of mesos contrib file, dependencies should be maintained in unit tests
2015-11-16 20:15:40 -05:00
Jeff Lowdermilk
70d89a3541 Merge pull request #13571 from yujuhong/lifecycle_v0
kubelet: add a generic pod lifecycle event generator
2015-11-16 14:59:40 -08:00
Tim Hockin
ba383bcfeb Refactor IntOrString into a new pkg
pkg/util/intstr is a cleaner encapsulation for this type and supporting
functions.  No behavioral change.
2015-11-16 10:57:52 -08:00
k8s-merge-robot
7fa85d430b Merge pull request #16614 from pmorie/ro-managed
Auto commit by PR queue bot
2015-11-16 10:46:44 -08:00
k8s-merge-robot
ebe5649939 Merge pull request #16824 from mattmoor/master
Auto commit by PR queue bot
2015-11-16 09:12:35 -08:00
k8s-merge-robot
14eae4b48e Merge pull request #17303 from zhengguoyong/del_pod_api_selector
Auto commit by PR queue bot
2015-11-16 06:24:15 -08:00
k8s-merge-robot
081b21687e Merge pull request #16261 from zhengguoyong/update_condition
Auto commit by PR queue bot
2015-11-16 02:34:18 -08:00
zhengguoyong
d5f2bb00a7 Del unused var 2015-11-16 15:53:20 +08:00
zhengguoyong
b18a9baacc Use small letter var definition 2015-11-16 12:12:21 +08:00
Matt Moore
b750d1dddc Drop the beta for GCR v2 images.
beta.gcr.io is no longer needed to pull through v2.
2015-11-14 12:19:02 -08:00
Paul Morie
911757486d Refactor volume.Builder.IsReadOnly() to volume.Builder.GetAttributes() 2015-11-13 23:34:48 -05:00
Tim St. Clair
fbc5a7d034 Sync status to new mirror pods 2015-11-13 18:09:17 -08:00
Brendan Burns
fb576f30c8 Refactor an interface for style 2015-11-13 15:56:27 -08:00
Yu-Ju Hong
ac778e8203 Adjust the sync/backoff period
Set resyncInterval to one minute now that we rely on the generic pleg to trigger
pod syncs on container events. When there is an error during syncing, pod
workers need to wake up sooner to retry. Set the sync error backoff period to
10 second in this case.
2015-11-13 09:57:25 -08:00
Yu-Ju Hong
bc6414a873 kubelet: add a generic pod lifecycle event generator
This change introduces pod lifecycle event generator (PLEG), and adds a generic
PLEG. The generic PLEG relies on relisting to discover container events, and is
container-runtime-agnostic. Both docker and rkt are changed to use generic
PLEG.
2015-11-13 09:55:36 -08:00
Yu-Ju Hong
3beae6b70b Add Status in the runtime Container type
This is necessary for the generic PLEG to distinguish container events.
2015-11-13 09:55:36 -08:00
k8s-merge-robot
0bb894173c Merge pull request #17187 from Random-Liu/deprecate-container-without-termination-message-path
Auto commit by PR queue bot
2015-11-13 04:49:17 -08:00
k8s-merge-robot
0d9f2dc5fd Merge pull request #17081 from yujuhong/docker_tests
Auto commit by PR queue bot
2015-11-12 22:56:29 -08:00
Alexander Hersh
0584f9ba7a Create mirrorPod in runOnce to update API before syncPod
+ Fix #14992
+ "When deploying a pod using an on-disk kubelet manifest (a la /etc/kubernetes/manifests), it appears that the network plugin setUpPod is notified of the new pod before the apiserver."
2015-11-12 15:35:45 -08:00
Lantao Liu
1018d32d4f Deprecate old containers without TerminationMessagePath label 2015-11-12 15:30:14 -08:00
k8s-merge-robot
e88593d788 Merge pull request #14542 from vishh/kubelet-refactor
Auto commit by PR queue bot
2015-11-12 15:24:22 -08:00
k8s-merge-robot
fbbc5a85a9 Merge pull request #16782 from Random-Liu/past-active-deadline-check
Auto commit by PR queue bot
2015-11-12 14:01:45 -08:00
k8s-merge-robot
e80dd6689f Merge pull request #16866 from justinsb/zone_labels_on_nodes
Auto commit by PR queue bot
2015-11-12 07:25:37 -08:00
k8s-merge-robot
3080e7b3ca Merge pull request #17114 from apeeyush/fix-oom-comment
Auto commit by PR queue bot
2015-11-12 00:32:55 -08:00
Vishnu kannan
b1770537ab Make cadvisor startup synchronous with container runtime initialization.
This is hopefully a temporary workaround.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2015-11-11 15:20:13 -08:00
Vishnu kannan
4ad3d6f5fe Move container manager into a separate package.
Inject container manager into Kubelet. This lets us stub out container
manager during integration testing.
2015-11-11 15:00:37 -08:00
Vishnu kannan
129dbc734c avoid requiring runtime to be up while initializing kubelet image manager 2015-11-11 15:00:37 -08:00
Vishnu kannan
89c3cb2f43 refactor podCIDR handling in kubelet to runtime state 2015-11-11 15:00:37 -08:00
Vishnu kannan
5f4570b764 handling locks and update tests. Fail node if network is not initialized 2015-11-11 15:00:37 -08:00
Vishnu kannan
cf56f7a8ef Refactoring kubelet to separate object creation from object logical initialization. 2015-11-11 15:00:34 -08:00
k8s-merge-robot
8761ad3ec1 Merge pull request #15464 from jiangyaoguo/bubble-up-reason-when-killing-pod
Auto commit by PR queue bot
2015-11-11 14:17:27 -08:00
Lantao Liu
d6b93cdfe1 Move active deadline check into main syncLoop of kubelet. 2015-11-11 10:05:04 -08:00
apeeyush
ae259748ef Fix incorrect OOM score description in kubelet/qos
The multiplication factor is 10 and not 100 as clear from some other comments in the same file. Also mentioned at https://lwn.net/Articles/391222/.
2015-11-11 19:12:18 +05:30
k8s-merge-robot
0ee52eb0c8 Merge pull request #17102 from zhengguoyong/add_break
Auto commit by PR queue bot
2015-11-11 03:57:16 -08:00
zhengguoyong
79d97abac4 When find NodeReadyCondition, it can quit the loop 2015-11-11 16:15:01 +08:00
Yu-Ju Hong
543391f1dc Clean up unit tests using FakeDockerClient
Add a helper method to set the container map and list at the same time, without
having to specify them separately. This reduces the effort required for
adding/modifying tests as well as making the code more concise.
2015-11-10 16:51:35 -08:00
Tim St. Clair
67cfed5bf3 Don't wait for sync to update readiness
Push status updates as soon as readiness state changes for containers,
rather than waiting for the sync loop to update the status. In
particular, this should help new containers to come online faster.

Additionally, consolidates prober test helpers into a single file.
2015-11-10 14:00:12 -08:00
k8s-merge-robot
7b3f37a892 Merge pull request #17003 from jiangyaoguo/fix-error-sync-pod-message
Auto commit by PR queue bot
2015-11-10 04:01:28 -08:00
eulerzgy
3f630d8ad7 when pod has successed, update condition to PodCompleted 2015-11-10 15:37:44 +08:00
jiangyaoguo
b0f0c294d9 make reasons constants with clarity 2015-11-09 23:42:14 +08:00
jiangyaoguo
55bf786216 adjust container event message 2015-11-09 23:42:13 +08:00
jiangyaoguo
02f8e4277f bubble up reason when killing pod 2015-11-09 23:42:13 +08:00
Wojciech Tyczynski
8a8f394f0d Merge pull request #16945 from kargakis/kubelet-fallback-to-apiserver
kubelet: Fallback to api server for pod status
2015-11-09 16:12:07 +01:00
k8s-merge-robot
5fe3733f95 Merge pull request #16272 from jiangyaoguo/remove-infra-container-event
Auto commit by PR queue bot
2015-11-09 06:05:35 -08:00
jiangyaoguo
85d554bfc4 fix FailSync event message 2015-11-09 15:49:52 +08:00
k8s-merge-robot
9981f99949 Merge pull request #16849 from feihujiang/cleanupDeprecatedV1beta1Content
Auto commit by PR queue bot
2015-11-07 04:15:32 -08:00
kargakis
d519741e1b kubelet: Fallback to api server for pod status
This commit fixes getting the logs from complete/failed pods after
a kubelet restart by falling back to the api server in case we fail
to resolve the pod status using the status cache.
2015-11-06 21:15:40 +01:00
Tim St. Clair
1e88a682da Add liveness/readiness probe parameters
- PeriodSeconds - How often to probe
- SuccessThreshold - Number of successful probes to go from failure to success state
- FailureThreshold - Number of failing probes to go from success to failure state

This commit includes to changes in behavior:

1. InitialDelaySeconds now defaults to 10 seconds, rather than the
kubelet sync interval (although that also defaults to 10 seconds).
2. Prober only retries on probe error, not failure. To compensate, the
default FailureThreshold is set to the maxRetries, 3.
2015-11-06 10:46:40 -08:00
k8s-merge-robot
a5e4462003 Merge pull request #16825 from Random-Liu/cleanup-pod-worker-test
Auto commit by PR queue bot
2015-11-05 21:51:32 -08:00
feihujiang
eac8d6a997 Cleanup the content of deprecated V1beta1 2015-11-06 13:42:51 +08:00
jiangyaoguo
3b512add9c check image present after pulled image with no error 2015-11-06 10:58:55 +08:00
Justin Santa Barbara
b2c2d617cf Label nodes with Zone information, if available
This lays the groundwork for simple multizone capabilities.

In a cloud environment, nodes are typically created by the kubelet
registering with the API server.  When creating a new node, we now query
the cloudprovider to see if it can provide Zone information, and if so
we add some well-known labels to the Node we are creating.
2015-11-05 14:35:05 -05:00
Yu-Ju Hong
5863f2a0a5 kubelet: reduce logging frequency for sync loop
Only logs when there are pods to sync.
2015-11-05 10:06:10 -08:00
k8s-merge-robot
fb571e3e2e Merge pull request #16545 from timstclair/mirrorpods
Auto commit by PR queue bot
2015-11-05 02:56:23 -08:00
Lantao Liu
a35220c321 cleanup pod_workers_test.go to use general runtime interface 2015-11-04 16:55:25 -08:00
Tim St. Clair
858126b42a Clean up static/mirror pod status logic
- status.Manager always deals with the local (static) pod, but gets the
  mirror pod when syncing
  - This lets components like the probe workers ignore mirror pods
2015-11-04 11:42:25 -08:00
Yu-Ju Hong
b734155954 Clean up housekeeping routine in kubelet
Now that kubelet checks sources seen correctly, there is no need to enforce the
initial order of pod updates and housekeeping. Use a ticker for housekeeping to
simplify the code.
2015-11-04 08:12:18 -08:00
jiangyaoguo
39858db29e add new event when infra-container change 2015-11-04 17:04:32 +08:00
jiangyaoguo
3ce5a51007 remove implicitly required container event 2015-11-04 16:47:17 +08:00
Yu-Ju Hong
2eb17df46b kubelet: independent pod syncs and backoff on error
Currently kubelet syncs all pods every 10s. This is not preferred because
 * Some pods may have been sync'd recently.
 * This may cause all the pods to be sync'd at once, causing undesirable
   CPU spikes.

This PR replaces the global syncs with independent, periodic pod syncs. At the
end of syncing, each pod worker will enqueue itslef with a future timestamp (
current time + sync interval), when it will be due for another sync.
 * If the pod worker encoutners an sync error, it may requeue with a different
   timestamp to retry sooner.
 * If a sync is triggered by the update channel (events or spec changes), the
   pod worker would enqueue a new sync time.

This change is necessary for moving to long or no periodic sync period once pod
lifecycle event generator is completed. We will still rely on the mechanism to
requeue the pod on sync error.

This change also makes sure that if a sync does not succeed (either due to
real error or the per-container backoff mechanism), an error would be propagated
back to the pod worker, which is responsible for requeuing.
2015-11-03 13:29:08 -08:00
k8s-merge-robot
fe2d44e842 Merge pull request #16653 from Random-Liu/remove-unused-type
Auto commit by PR queue bot
2015-11-03 02:45:22 -08:00
k8s-merge-robot
c1d380db94 Merge pull request #16693 from Random-Liu/put-termination-message-path-into-docker-label
Auto commit by PR queue bot
2015-11-02 23:29:35 -08:00
Lantao Liu
894dc5a5a2 Move TerminationMessagePath into docker label. 2015-11-02 14:32:58 -08:00
Lantao Liu
eff4533efc Move findPodContainer to docker_test.go 2015-11-02 09:49:07 -08:00
mqliang
3afcbae1a8 remove unnecessary fmt 2015-11-02 21:07:07 +08:00
Lantao Liu
b127901871 Remove unused type DockerContainers.
Type DockerContainers and function FindPodContainer() are never used.
Remove them to simplify the docker runtime api.
2015-11-01 18:49:05 -08:00
k8s-merge-robot
7b8bf758f3 Merge pull request #16631 from dchen1107/docker
Auto commit by PR queue bot
2015-10-31 10:55:37 -07:00
Dawn Chen
d2805c65d6 Fix Kubelet /logs endpoint 2015-10-30 16:19:34 -07:00
Alex Robinson
0eb7243b95 Merge pull request #15994 from dchen1107/docker
Failed docker health check and mark the node NotReady when docker version is below 1.6.2 (API ve…
2015-10-30 15:39:04 -07:00
Dawn Chen
a39e1e96dc Mark NodeNotReady for docker version below 1.6.2 2015-10-30 13:48:51 -07:00
Dawn Chen
b691fd299c Failed docker health check when docker version is below 1.6.2 (API version: 1.18) 2015-10-30 13:48:50 -07:00
k8s-merge-robot
eb140495ab Merge pull request #16414 from Random-Liu/put-podname-into-label
Auto commit by PR queue bot
2015-10-30 12:45:25 -07:00
Alex Robinson
21a75abfbd Merge pull request #16489 from mqliang/deleteFmt
replace `fmt.Sptintf()` with naive string appending
2015-10-30 09:25:39 -07:00
Lantao Liu
b3585a5209 Move docker label related functions into labels.go and add pod name, pod namespace and pod uid into docker label 2015-10-29 22:42:25 -07:00
Clayton Coleman
2335bfa351 Allow Docker container logs to be tail'd and follow'd
Relaxes the very very ancient restriction we put in place to keep the
original API surface area PR small. Better to be consistent with actual
expected use of tail.
2015-10-29 17:12:38 -04:00
k8s-merge-robot
c4b32cc8d8 Merge pull request #16223 from timstclair/status-deadlock
Auto commit by PR queue bot
2015-10-29 13:01:31 -07:00
mqliang
5b03cfc92b replace fmt.Sptintf() with + operator 2015-10-29 16:27:42 +08:00
Tim St. Clair
9a2089adc8 Concurrency fixes in status.Manager
- Fix deadlock when syncing deleted pods with full update channel
- Prevent sending stale updates to API server
- Don't delete cached status when sync fails (causes problems for prober)
2015-10-28 17:40:55 -07:00
Sami Wagiaalla
1d352a16b8 Support volume relabling for pods which specify an SELinux label 2015-10-28 09:26:58 -04:00
Jerzy Szczepkowski
1524d7490a Merge pull request #16294 from aveshagarwal/master-fix-code-duplication
Fixes code duplication.
2015-10-28 13:23:06 +01:00
Daniel Smith
8524d392bf Merge pull request #16178 from madhusudancs/kubelet-out-of-disk-no-master
Report node out of disk condition in the kubelet.
2015-10-27 14:28:03 -07:00
k8s-merge-robot
0a7a9f3535 Merge pull request #16340 from timstclair/flaky-prober
Auto commit by PR queue bot
2015-10-27 12:10:22 -07:00
Jerzy Szczepkowski
5ef087adab Merge pull request #16266 from wojtek-t/fix_handshake_reflector
Reuse TCP connections in Reflector between resync periods.
2015-10-27 10:36:18 +01:00
k8s-merge-robot
df265b2d6e Merge pull request #15510 from aveshagarwal/master-selflink-objref
Auto commit by PR queue bot
2015-10-27 00:37:21 -07:00
Tim St. Clair
17b0a964f4 Always resync after resyncInterval 2015-10-26 18:50:57 -07:00
Daniel Smith
3cc2ae4da6 Merge pull request #15831 from zhengguoyong/modify_pod_networkplugin_setup_errmsg
Modify duplicate err msg
2015-10-26 17:07:18 -07:00
Madhusudan.C.S
9c4424f0bd Report out of disk as a node condition when node goes out of disk.
Define a new out of disk node condition and use it to report when node
goes out of disk.

Make a copy of loop range clause variable in node listers so that it
is available outside the for loop.

Also update/implement unit tests.
2015-10-26 15:01:20 -07:00
Daniel Smith
e42f5af6a1 Merge pull request #16219 from thockin/resolvconf-filter
Add a cloud-provider hook to scrub DNS for pods
2015-10-26 12:32:02 -07:00
Avesh Agarwal
e845dba9d2 Fixes code duplication. 2015-10-26 15:24:50 -04:00
Wojciech Tyczynski
d47e21f19f Reuse TCP connections in Reflector between resync periods. 2015-10-26 19:35:25 +01:00
k8s-merge-robot
bffdd242d8 Merge pull request #16191 from yujuhong/fix_logs
Auto commit by PR queue bot
2015-10-26 09:31:35 -07:00
k8s-merge-robot
4f17b4b39c Merge pull request #15961 from ncdc/stream-protocol-negotiation
Auto commit by PR queue bot
2015-10-25 07:26:41 -07:00
k8s-merge-robot
0e1ee14cc8 Merge pull request #15705 from wojtek-t/watch_options_in_client
Auto commit by PR queue bot
2015-10-24 17:39:20 -07:00
Abhi Shah
976cc12c8e Merge pull request #16174 from ArtfulCoder/nilCheck
Added Nil Check
2015-10-24 14:16:28 -07:00
k8s-merge-robot
5280540384 Merge pull request #15965 from Random-Liu/use-docker-label
Auto commit by PR queue bot
2015-10-24 13:19:40 -07:00
Wojciech Tyczynski
f4d75e0a0a Support timeout in watch requests 2015-10-24 13:12:49 +02:00
k8s-merge-robot
f3cb757bb6 Merge pull request #16074 from timstclair/prober-cleanup
Auto commit by PR queue bot
2015-10-24 03:14:42 -07:00
k8s-merge-robot
e1559e9fb5 Merge pull request #15352 from pmorie/fsgroup
Auto commit by PR queue bot
2015-10-24 01:55:45 -07:00
Tim Hockin
42c7fec490 Add a cloud-provider hook to scrub DNS for pods
GCE needs this hook and it seems general enough to include.
2015-10-23 17:01:49 -07:00
Yu-Ju Hong
e4f739115f kubelet: fix getting logs from static pods
This change adds the necessary UID translation logic to fix the issue.
2015-10-23 14:31:40 -07:00
Lantao Liu
67a7633202 Put restart count into docker label 2015-10-23 13:02:32 -07:00
Abhishek Shah
4a7b4f2ed2 Nil Check 2015-10-23 11:52:59 -07:00
Filip Grzadkowski
165169ab1c Merge pull request #16052 from ArtfulCoder/mount_etc_hosts
kubelet manages /etc/hosts file
2015-10-23 14:07:34 +02:00
Filip Grzadkowski
edd10d8a83 Merge pull request #15914 from vishh/serialize-pull
make kubelet image pulls serialized by default.
2015-10-23 14:04:23 +02:00
Vishnu kannan
0df4b46d4c Adding a kubelet flag to optionally enable parallel image pulls. 2015-10-22 17:19:51 -07:00
Paul Morie
3cd12f5e05 FSGroup implementation 2015-10-22 16:40:59 -04:00
Abhishek Shah
ba6469d478 kubelet manages /etc/hosts file 2015-10-22 13:27:05 -07:00
Paul Morie
e3642f1b3f Merge pull request #14705 from pmorie/pod-sc-inline
PodSecurityContext with inline fields
2015-10-22 03:12:16 -04:00
Andy Goldstein
ad4f108bfa Move port forward protocol constant to subpackage
Move port forward protocol name constant to a subpackage underneath
pkg/kubelet to avoid flags applicable to the kubelet leaking into
kubectl. Eventually, handlers for specific protocol versions will move
into the new subpackage as well.
2015-10-21 22:37:26 -04:00
Andy Goldstein
ff9883d9ec Address code review comments 2015-10-21 21:53:51 -04:00
Andy Goldstein
3d1cafc2c3 Add streaming subprotocol negotiation
Add streaming subprotocol negotiation for exec, attach, and port
forwarding. Restore previous (buggy) exec functionality as an
unspecified/unversioned subprotocol so newer kubectl clients can work
against 1.0.x kubelets.
2015-10-21 21:53:51 -04:00
Dawn Chen
a702d5f29b Merge pull request #15983 from yujuhong/hash_pods
Stores hash of pod manifest in mirror pod's annotation
2015-10-21 17:08:57 -07:00
Paul Morie
393e2bc019 Inline some SecurityContext fields into PodSecurityContext 2015-10-21 19:01:17 -04:00
Tim St. Clair
07e9892003 Cleanup prober.prober 2015-10-21 15:45:34 -07:00
k8s-merge-robot
6dc3dcf36a Merge pull request #15414 from thockin/exp-beta-annotations
Auto commit by PR queue bot
2015-10-20 17:45:32 -07:00
Yu-Ju Hong
f8aa206ffa Stores hash of pod manifest in mirror pod's annotation
Use the hash to track whether the mirror pod is a truthful representation of
the static pod.
2015-10-20 15:44:31 -07:00
Vishnu kannan
94b45830c3 make kubelet image pulls serialized by default. 2015-10-20 14:50:44 -07:00
k8s-merge-robot
034f7ccb1d Merge pull request #15885 from ashcrow/fix-import-package-names-15319
Auto commit by PR queue bot
2015-10-20 09:37:13 -07:00
k8s-merge-robot
59fdccd122 Merge pull request #15868 from yifan-gu/fix_gc
Auto commit by PR queue bot
2015-10-20 07:47:16 -07:00
k8s-merge-robot
f5da178738 Merge pull request #15275 from timstclair/liveness-workers
Auto commit by PR queue bot
2015-10-20 06:39:40 -07:00
Steve Milner
8da2d4002f Fixes remaining imports per #15319 2015-10-20 07:13:13 -04:00
k8s-merge-robot
c4779fbc4f Merge pull request #15475 from jijun2/fix-cni_test
Auto commit by PR queue bot
2015-10-20 01:30:24 -07:00
k8s-merge-robot
48ced9de86 Merge pull request #15612 from jimmidyson/cadvisor-kubelet
Auto commit by PR queue bot
2015-10-19 20:10:21 -07:00
eulerzgy
af355df9a4 modify err log msg 2015-10-20 09:08:27 +08:00
Tim St. Clair
a263c77b65 Refactor liveness probing
This commit builds on previous work and creates an independent
worker for every liveness probe. Liveness probes behave largely the same
as readiness probes, so much of the code is shared by introducing a
probeType paramater to distinguish the type when it matters. The
circular dependency between the runtime and the prober is broken by
exposing a shared liveness ResultsManager, owned by the
kubelet. Finally, an Updates channel is introduced to the ResultsManager
so the kubelet can react to unhealthy containers immediately.
2015-10-19 15:15:59 -07:00
Yifan Gu
c4de5b7451 kubelet/rkt: do not remove other systemd service. 2015-10-19 11:23:54 -07:00
k8s-merge-robot
02dd86c136 Merge pull request #15472 from zhengguoyong/del_unnessary_var_definition
Auto commit by PR queue bot
2015-10-19 03:33:11 -07:00
k8s-merge-robot
75c977d200 Merge pull request #15596 from zhengguoyong/alias_util_errors_packagename
Auto commit by PR queue bot
2015-10-19 02:35:37 -07:00
k8s-merge-robot
09a3871506 Merge pull request #15755 from zhengguoyong/del_capatical_packagename_for_cadvisorApi2
Auto commit by PR queue bot
2015-10-18 04:04:11 -07:00
eulerzgy
f8f9afb874 alias local packagename for pkg/util/errors 2015-10-18 09:37:46 +08:00
eulerzgy
760b2c901b del unnessary var definition 2015-10-18 09:05:47 +08:00
k8s-merge-robot
d3ca12f61b Merge pull request #15053 from smarterclayton/stdin_once
Auto commit by PR queue bot
2015-10-17 00:03:32 -07:00
k8s-merge-robot
70b231231b Merge pull request #15798 from yifan-gu/rkt_gc_service
Auto commit by PR queue bot
2015-10-16 23:32:29 -07:00
k8s-merge-robot
d471318aa8 Merge pull request #15799 from dchen1107/podstatus
Auto commit by PR queue bot
2015-10-16 19:32:30 -07:00
Clayton Coleman
e929baf91a Support stdinOnce, which allows run-once STDIN injection
This allows containers to wait for input before startup by listening
on STDIN, and after STDIN is closed, continue running. Matches the
Docker syntax.
2015-10-16 20:33:50 -04:00
k8s-merge-robot
916ddbca65 Merge pull request #14182 from jiangyaoguo/distinguish-registry-unavailable-and-pull-failure
Auto commit by PR queue bot
2015-10-16 16:22:22 -07:00
Dawn Chen
6f46780cbf Add tests to reproduce the issue and verify the fix. 2015-10-16 15:16:07 -07:00
Dawn Chen
1b8f851979 Fix PodPhase issue caused by backoff 2015-10-16 15:16:07 -07:00
Yifan Gu
22467d9d33 kubelet/rkt: Fix a typo in container gc. 2015-10-16 15:07:43 -07:00
k8s-merge-robot
6341e1d3e2 Merge pull request #15658 from yifan-gu/rkt_cli
Auto commit by PR queue bot
2015-10-16 14:52:14 -07:00
k8s-merge-robot
0a5299cd63 Merge pull request #15114 from yifan-gu/rkt_log
Auto commit by PR queue bot
2015-10-16 14:00:39 -07:00
k8s-merge-robot
535090312f Merge pull request #13180 from samsabed/backoff_e2e
Auto commit by PR queue bot
2015-10-16 13:33:36 -07:00
k8s-merge-robot
4736adee8f Merge pull request #15621 from mesosphere/sttts-send-initial-set-to-get-seen
Auto commit by PR queue bot
2015-10-16 08:04:29 -07:00
k8s-merge-robot
6269e22858 Merge pull request #15194 from MikaelCluseau/wip-issue-15187
Auto commit by PR queue bot
2015-10-16 06:46:20 -07:00
k8s-merge-robot
668cb5de48 Merge pull request #14983 from dcbw/cni-fixes
Auto commit by PR queue bot
2015-10-16 05:28:12 -07:00
k8s-merge-robot
dc685dfee6 Merge pull request #15260 from yifan-gu/rkt_gc_systemd_service
Auto commit by PR queue bot
2015-10-15 22:16:11 -07:00
Mikaël Cluseau
0375743241 hairpin: unless the pod is on the host's network 2015-10-16 16:15:35 +11:00
Mikaël Cluseau
2067641284 hairpin: include command output when unable to query container's interface 2015-10-16 16:06:35 +11:00
eulerzgy
31c09bdcb8 Del capatical local packagename for cadvisorApi 2015-10-16 11:03:50 +08:00
Sam Abed
78979c77ce backoff e2e tests
Signed-off-by: Sam Abed <samsabed@gmail.com>
2015-10-16 13:09:29 +11:00
jijun2
bf6e8cbff7 test: using ioutil.TempDir in unit tests per #15176
update

update mode

delete /tmp

update

use ioutil.TempDir instead of static tmp dir

use ioutil.TempDir instead of static tmp dir
2015-10-16 09:21:46 +08:00
Yifan Gu
9d01933e94 kubelet/rkt: garbage collect systemd service files in GarbageCollect(). 2015-10-15 18:21:26 -07:00
Yifan Gu
0ef6af25c1 kubelet/rkt: update rkt version. 2015-10-15 18:04:07 -07:00
Jimmi Dyson
a5421270e5 cadvisor bump 2015-10-15 21:06:45 +01:00
eulerzgy
ea86e66fbe Del capatical local packagename for kubeletUtil 2015-10-15 09:58:10 +08:00
Tim Hockin
2f4c3035be Change to alpha/beta for bandwidth annotations 2015-10-14 15:33:19 -07:00
Yifan Gu
0a81443056 kubelet/rkt: fetch journal logs in json format.
This enables more fine-grained control over the things we want to
output. Also by closing the stdout/stderr of the journalctl process
when user hits `Ctrl-C` after `kubectl logs $POD -f`, this enables
the journalctl process to exit.
2015-10-14 12:02:52 -07:00
Dr. Stefan Schimanski
651f02aec2 Add unit tests for first empty SET 2015-10-14 16:35:25 +02:00
Dr. Stefan Schimanski
7dddec6799 Switch to empty ADD PodUpdate for PodConfigNotificationIncremental mode 2015-10-14 15:38:44 +02:00
Dr. Stefan Schimanski
5cfeb53057 Enforce an initial empty SET PodConfig
In PodConfigNotificationIncremental PodConfig mode, when no pods are available
for a source, the Merge function correctly concluded that neither ADD, UPDATE nor
REMOVE updates are to be sent to the kubelet. But as a consequence the kubelet will
not mark that source as seen.

This is usually not a problem for the apiserver source. But it is a problem for
an empty "file" source, e.g. by passing an empty directory to the kubelet for
static pods. Then the file source will never be seen and the kubelet will stay
in its special not-all-source-seen mode.
2015-10-14 14:22:44 +02:00
Wojciech Tyczynski
647aa1bc8c Unify per-resource List for unversioned client 2015-10-14 08:37:57 +02:00
Dawn Chen
a529f6ccdf Merge pull request #15512 from yujuhong/mv_pod_manager
kubelet: move PodManager and MirrorClient to a subpackage
2015-10-13 16:27:15 -07:00
Andy Goldstein
7d02ea9bb7 Fix race condition for consuming podIP via downward API. 2015-10-13 16:39:11 -04:00
Dawn Chen
535246f364 Merge pull request #15396 from derekwaynecarr/kernel_flags
Ensure panic_on_oom disabled
2015-10-13 10:24:50 -07:00
derekwaynecarr
0ec36ae210 Ensure panic_on_oom disabled 2015-10-13 11:24:32 -04:00
Yu-Ju Hong
2c76c55bb9 kubelet: move PodManager and MirrorClient to a subpackage
This change moves pod_manager.go and mirror_client.go to a separate package.
Also made necessary, minor changes to facilitate testing.
2015-10-12 16:34:18 -07:00
Avesh Agarwal
8e4a8b7260 Addresses issue #6596.
Removes ForTesting_ReferencesAllowBlankSelfLinks.
Fixes controller's persistentvolumes unit tests.
2015-10-12 19:21:48 -04:00
Dawn Chen
5cab5f68e4 Merge pull request #15174 from yujuhong/syncloop_log
kubelet logs update source in the sync loop
2015-10-12 12:59:05 -07:00
Yu-Ju Hong
1c015560be kubelet logs update source in the sync loop
This improve the clarity/debuggability.
2015-10-12 10:18:52 -07:00
feisky
296e44cc08 Delete infra container if network plugin fails 2015-10-12 23:23:17 +08:00
k8s-merge-robot
8580804f77 Merge pull request #15138 from mattmoor/limited-beta-rewrite
Auto commit by PR queue bot
2015-10-10 11:41:34 -07:00
k8s-merge-robot
3bd7aafcd2 Merge pull request #15082 from samsabed/restartNever
Auto commit by PR queue bot
2015-10-10 11:19:44 -07:00
k8s-merge-robot
02ec1fb33c Merge pull request #13885 from smarterclayton/websocket_exec
Auto commit by PR queue bot
2015-10-10 09:52:01 -07:00
Mike Danese
392f33e417 Merge pull request #14054 from mikedanese/register-master
register master kubelet with the apiserver
2015-10-09 17:12:37 -07:00
Yifan Gu
ba68b095a9 kubelet/rkt: enable getting logs for exited pods. 2015-10-09 12:01:34 -07:00
Clayton Coleman
363b616908 Expose exec and logs via WebSockets
Not all clients and systems can support SPDY protocols. This commit adds
support for two new websocket protocols, one to handle streaming of pod
logs from a pod, and the other to allow exec to be tunneled over
websocket.

Browser support for chunked encoding is still poor, and web consoles
that wish to show pod logs may need to make compromises to display the
output. The /pods/<name>/log endpoint now supports websocket upgrade to
the 'binary.k8s.io' subprotocol, which sends chunks of logs as binary to
the client. Messages are written as logs are streamed from the container
daemon, so flushing should be unaffected.

Browser support for raw communication over SDPY is not possible, and
some languages lack libraries for it and HTTP/2. The Kubelet supports
upgrade to WebSocket instead of SPDY, and will multiplex STDOUT/IN/ERR
over websockets by prepending each binary message with a single byte
representing the channel (0 for IN, 1 for OUT, and 2 for ERR). Because
framing on WebSockets suffers from head-of-line blocking, clients and
other server code should ensure that no particular stream blocks. An
alternative subprotocol 'base64.channel.k8s.io' base64 encodes the body
and uses '0'-'9' to represent the channel for ease of use in browsers.
2015-10-09 14:33:40 -04:00
Yu-Ju Hong
ed382ec0a0 Merge pull request #15386 from yujuhong/rename_kubelettypes
Rename imported package local name kubeletTypes to kubetypes
2015-10-09 11:08:30 -07:00
k8s-merge-robot
96a2a95dee Merge pull request #15276 from yifan-gu/rkt_probe
Auto commit by PR queue bot
2015-10-09 10:28:08 -07:00
Yu-Ju Hong
a3e60cc32e Rename imported package local name kubeletTypes to kubetypes
According to the naming guidelines, package name should not include mixedCaps.
2015-10-09 10:24:31 -07:00
k8s-merge-robot
ac6122c562 Merge pull request #15274 from timstclair/results-manager
Auto commit by PR queue bot
2015-10-09 10:05:15 -07:00
k8s-merge-robot
273c9ce503 Merge pull request #15177 from timstclair/restart-policy
Auto commit by PR queue bot
2015-10-09 09:41:22 -07:00
k8s-merge-robot
45cca144cb Merge pull request #15167 from yujuhong/sources_seen
Auto commit by PR queue bot
2015-10-09 08:35:40 -07:00
k8s-merge-robot
44699f5852 Merge pull request #15238 from mpuncel/mpuncel/cleanup
Auto commit by PR queue bot
2015-10-09 08:12:17 -07:00
k8s-merge-robot
b793c3edf1 Merge pull request #14700 from liggitt/kubelet_authz
Auto commit by PR queue bot
2015-10-09 03:01:43 -07:00
k8s-merge-robot
538cf72208 Merge pull request #15051 from feiskyer/kubelet/garbage-collection
Auto commit by PR queue bot
2015-10-09 02:11:47 -07:00
Jordan Liggitt
9d6b52881d Add authentication/authorization interfaces to kubelet, always include /metrics with /stats 2015-10-09 03:10:00 -04:00
Mike Danese
fa60bbe8e6 add flag to kubelet to ignore the cidr passed down by the apiserver on the master 2015-10-08 21:21:19 -07:00
feisky
fb04edea3a Replace rkt --grace-period and --expire-prepared with gcPolicy.MinAge 2015-10-09 06:57:10 +08:00
feisky
d624c7de51 Pass the ContainerGCPolicy in Runtime.GarbageCollect 2015-10-09 06:57:10 +08:00
feisky
69867fb502 Refactor container gc tests 2015-10-09 06:57:09 +08:00
feisky
4c8a836260 Move original container gc to docker runtime 2015-10-09 06:57:09 +08:00
feisky
35cf8ab7d4 Use runtime instread of dockerclient in container gc 2015-10-09 06:54:38 +08:00
Yu-Ju Hong
098ab05997 kubelet: move common types to kubelet/types
This would faciliate tasks such as moving code in pkg/kubelet to sub packages.
2015-10-08 14:38:01 -07:00
Yifan Gu
2c318bfee2 kubelet/rkt: return util/exec.ExitError if exec probing fails.
This enables the prober to return probe.Failure instead of
probe.Unknown.
2015-10-08 14:14:01 -07:00
Robert Bailey
f828c9a49c Merge pull request #15185 from yujuhong/fix_annotation
kubelet: fix mirror pod creation/deletion
2015-10-08 14:07:45 -07:00
jiangyaoguo
af46c69553 Distinguish image registry unavailable and pull failure 2015-10-09 01:16:31 +08:00
Piotr Szczesniak
726f1e17c4 Merge pull request #14173 from runningwild/PR0
If an isolator's request is nil, populate it with the limit and vice versa
2015-10-08 13:07:08 +02:00
Piotr Szczesniak
95b293c615 Merge pull request #13516 from samsabed/backoff-image-reason
backoff image pulling on failure
2015-10-08 13:05:32 +02:00
Tim St. Clair
9b8bc50357 Generalize readinessManager to handle liveness 2015-10-07 16:40:30 -07:00
Dan Williams
823242d9a8 Add some more debugging to the CNI testcase
Let's attempt to find out why it's failing some small percentage of the time.
2015-10-07 17:24:44 -05:00
Tim St. Clair
551eff63b8 Use strong type for container ID
Change all references to the container ID in pkg/kubelet/... to the
strong type defined in pkg/kubelet/container: ContainerID

The motivation for this change is to make the format of the ID
unambiguous, specifically whether or not it includes the runtime
prefix (e.g. "docker://").
2015-10-07 10:58:05 -07:00
Michael Puncel
4921a62f3a Fix comment typo and remove unnecessary line 2015-10-07 09:53:27 -07:00
Dawn Chen
092dddd12c Merge pull request #15087 from derekwaynecarr/kernel_overcommit
Kubelet sets kernel overcommit_memory flag
2015-10-07 09:47:47 -07:00
Derek Carr
87fe1f4af8 Merge pull request #13939 from pmorie/pod-sc-minimal
Add PodSecurityContext and backward compatibility tests
2015-10-07 09:56:58 -04:00
Sam Abed
fdf712cd84 back-off image pull on failure
Signed-off-by: Sam Abed <samabed@gmail.com>
2015-10-07 21:12:42 +11:00
k8s-merge-robot
348f0ca335 Merge pull request #14686 from yifan-gu/rkt_gc
Auto commit by PR queue bot
2015-10-07 00:15:48 -07:00
k8s-merge-robot
5979655da1 Merge pull request #14949 from brendandburns/flakes10
Auto commit by PR queue bot
2015-10-06 21:01:33 -07:00
Sam Abed
e20d599ace Apply pod restart policy to Containers that fail to start. Fix Reason and Message for succeeding or failing containers
Signed-off-by: Sam Abed <samsabed@gmail.com>
2015-10-07 12:20:28 +11:00
Matt Moore
eeb4eeb17c Move pause and fluentd-elasticsearch to GCR v2.
This scopes down the initially ambitious PR:
https://github.com/kubernetes/kubernetes/pull/14960 to replace just
`pause` and `fluentd-elasticsearch` to come through `beta.gcr.io`.

The v2 versions have been pushed under new tags, `pause:2.0` and
`fluentd-elastisearch:1.12`.

NOTE: `beta.gcr.io` will still serve images using v1 until they are repushed with v2.  Pulls through `gcr.io` will still work after pushing through `beta.gcr.io`, but will be served over v1 (via compat logic).
2015-10-06 16:39:07 -07:00
Yu-Ju Hong
53e65b0826 kubelet: fix mirror pod creation/deletion
When annotating the mirror pod, make a new copy of the annotations map from the
static pod, so that the change wouldn't be in the static pod.
2015-10-06 14:45:44 -07:00
Tim St. Clair
f67879eac7 Check pod RestartPolicy before restarting unhealthy containers 2015-10-06 13:17:45 -07:00
derekwaynecarr
970c369f31 Kubelet sets kernel overcommit_memory flag 2015-10-06 14:28:46 -04:00
Yu-Ju Hong
5abdfcdfe6 kubelet: fix all sources ready condition
The current implementation considers a source seen when it receives a SET at
kubelet/config/config.go. However, the main kubelet sync loop may not have
received the pod update from the source via the channel. This change ensures
that kubelet would consider all sources are ready only after the sync loop has
seen all the sources.
2015-10-06 10:13:04 -07:00
Paul Morie
227dd82119 Add PodSecurityContext and backward compatibility tests 2015-10-05 21:05:27 -04:00
Alex Robinson
99936383b0 Merge pull request #15079 from gmarek/fix-kubemark
Turn on smarter FakeDockerClient in HollowNode.
2015-10-05 17:00:49 -07:00
Yifan Gu
b42d2311c3 kubelet/rkt: add container/image gc for rkt. 2015-10-05 14:22:19 -07:00
Alex Robinson
2218ad0f86 Merge pull request #14845 from derekwaynecarr/kubectl_besteffort
Fix missing display of BestEffort resources in kubectl describe
2015-10-05 13:40:03 -07:00
Alex Robinson
d8120f5425 Merge pull request #14221 from timstclair/readiness-workers
Refactor readiness probing
2015-10-05 13:26:54 -07:00
gmarek
22b318fc5c Turn on smarter FakeDockerClient in HollowNode. 2015-10-05 21:36:54 +02:00
derekwaynecarr
f062a29e34 Fix missing display of BestEffort resources in kubectl describe 2015-10-05 13:38:04 -04:00
Tim St. Clair
52ece0c34e Refactor readiness probing
Each container with a readiness has an individual go-routine which
handles periodic probing for that container. The results are cached, and
written to the status.Manager in the pod sync path.
2015-10-02 15:37:10 -07:00
k8s-merge-robot
13382b30c4 Merge pull request #14950 from yujuhong/sync_type
Auto commit by PR queue bot
2015-10-02 12:39:00 -07:00
k8s-merge-robot
1d73382b83 Merge pull request #14958 from madhusudancs/fix-kubelet-messages
Auto commit by PR queue bot
2015-10-02 11:55:42 -07:00
k8s-merge-robot
6ca515c312 Merge pull request #14820 from gmarek/playground
Auto commit by PR queue bot
2015-10-02 07:37:45 -07:00
k8s-merge-robot
1bcdd56cf3 Merge pull request #12283 from ncdc/gh8766-port-forward-not-closing-correctly
Auto commit by PR queue bot
2015-10-02 04:48:12 -07:00
k8s-merge-robot
1b158fc466 Merge pull request #14706 from yifan-gu/rkt_get_status
Auto commit by PR queue bot
2015-10-02 02:25:44 -07:00
Madhusudan.C.S
7a709b09c3 Messages should be appended to "messages" slice.
Network configuration error message while setting Kubelet status was
being written to "reasons" slice. Write this message to "messages" slice
instead.

Also remove "reasons" slice entirely since it is not used anywhere.
2015-10-01 17:55:45 -07:00
Yu-Ju Hong
889e798ddb kubelet: pipe SyncPodType to pod workers
Now that kubelet has switched to incremental updates, it has complete
information of the pod update type (create, update, sync). This change pipes
this information to pod workers so that they don't have to derive the type
again.
2015-10-01 16:29:46 -07:00
Brendan Burns
2afddde027 Deflake an exec test by removing global paths and making conflicts impossible 2015-10-01 16:16:06 -07:00
k8s-merge-robot
b19837f4e2 Merge pull request #14767 from nikhiljindal/podConditionTransitionTime
Auto commit by PR queue bot
2015-10-01 13:01:45 -07:00
gmarek
fc79ce347e Allow usining FakeOOMAdjuster in Kubelet 2015-10-01 10:55:08 +02:00
Andy Goldstein
ed021fed4c Port forwarding fixes
Correct port-forward data copying logic so that the server closes its
half of the data stream when socat exits, and the client closes its half
of the data stream when it finishes writing.

Modify the client to wait for both copies (client->server,
server->client) to finish before it unblocks.

Fix race condition in the Kubelet's handling of incoming port forward
streams. Have the client generate a connectionID header to be used to
associate the error and data streams for a single connection, instead of
assuming that streams n and n+1 go together. Attempt to generate a
pseudo connectionID in the server in the event the connectionID header
isn't present (older clients); this is a best-effort approach that only
really works with 1 connection at a time, whereas multiple concurrent
connections will only work reliably with a newer client that is
generating connectionID.
2015-09-30 20:03:49 -04:00
Tim Hockin
5fbcb72241 Merge pull request #14525 from dcbw/cni
CNI network plugin
2015-09-29 21:13:26 -07:00
Brendan Burns
5711f6d6e5 Merge pull request #14564 from erictune/fix-mac-test-2
Fix "make test" on mac (pkg/kubelet)
2015-09-29 19:29:35 -07:00
k8s-merge-robot
b661cfd21e Merge pull request #14643 from liguangbo/change_Oom_to_OOM
Auto commit by PR queue bot
2015-09-29 18:54:22 -07:00
nikhiljindal
b99d225d19 Setting PodReadyCondition.LastTransitionTime 2015-09-29 17:23:32 -07:00
Dawn Chen
ca3ae476fc Merge pull request #14599 from feiskyer/kubelet/client-server/image-refator
Refactor image manager for client/server container runtime
2015-09-29 09:33:59 -07:00
Yifan Gu
4309cafff1 rkt: return non error if the pod doesn't exist in GetPodStatus().
Previously, GetPodStatus() will return error if the pod is never
created. However we've never seen the sync loop fail because in the
beginning of the loop, if the pod is not found, it will be created.

This works fine except the pod that keeps crashing. Because the above
logic will keep restarting the pod as if it's never created.

This PR fixes the bug.
2015-09-28 19:30:57 -07:00
liguangbo
12299087da Change Oom to OOM 2015-09-28 18:18:04 +08:00
Rajat Chopra
01dd813ce3 CNI network plugin
Add an experimental network plugin implementation named "cni" that
uses the Container Networking Interface (CNI) specification for
configuring networking for pods.

https://github.com/appc/cni/blob/master/SPEC.md
2015-09-25 22:30:37 -05:00
feisky
d25ae52d9b Refactor image manager for client/server implementation of the container runtime 2015-09-26 08:29:08 +08:00
Yu-Ju Hong
d6aea667ba Remove ContainerList from fakeRuntime
Container runtime interface currently doesn't support GetContainers and no
test should be using fakeRuntime.ContainerList. Remove it to prevent accidental
use.
2015-09-25 16:36:51 -07:00
Brian Grant
efd19143f7 Revert "Refactor image manager for client/server implementation of the container runtime" 2015-09-25 15:24:18 -07:00
Brian Grant
2c92672827 Merge pull request #14227 from gmarek/fake_docker
Fix 'ContainersMap' feature in fake-docker-client.
2015-09-25 13:20:33 -07:00
Brian Grant
bbc90cd9ff Merge pull request #14035 from feiskyer/kubelet/client/server
Refactor image manager for client/server implementation of the container runtime
2015-09-25 13:18:53 -07:00
Eric Tune
f44e390ec2 Fix "make test" on mac (pkg/kubelet) 2015-09-25 09:26:08 -07:00
Salvatore Dario Minonne
32f56619a7 Partial fix for issue #14263 2015-09-25 15:29:00 +02:00
Brian Grant
bd3a3f1443 Revert "cni network plugin" 2015-09-24 23:24:21 -07:00
Brian Grant
7e42781d40 Merge pull request #14395 from vishh/kubelet-init
Require cpu and memory cgroups to be mounted
2015-09-24 22:43:25 -07:00
Brian Grant
17ecefe9f7 Merge pull request #13766 from rajatchopra/cni
cni network plugin
2015-09-24 22:42:31 -07:00
Vishnu kannan
77be271ed0 Linux container manager initialization will now fail if cpu and memory cgroups are not mounted. 2015-09-24 15:34:42 -07:00
Eric Tune
1ffa7cbc4f Merge pull request #14290 from sdodson/container-inspect-ll4
Bump Container Inspect to loglevel 4
2015-09-23 16:42:07 -07:00
Eric Tune
c9c5937050 Merge pull request #14435 from yujuhong/runonce_test
Replace testDocker with container.fakeRuntime in runonce_test
2015-09-23 16:22:34 -07:00
Eric Tune
de38de0c1a Merge pull request #14064 from brendandburns/flakes
Increase a bunch of timeouts to reduce flakes
2015-09-23 12:56:27 -07:00
Brendan Burns
77fd388485 Increase a bunch of timeouts to reduce flakes 2015-09-23 11:09:03 -07:00
Yu-Ju Hong
8319a5c822 Replace testDocker with container.fakeRuntime in runonce_test
runonce_test should not be testing docker-specific logic.
2015-09-23 09:24:51 -07:00
Rajat Chopra
fef621a254 TODO added to optimize Status call to plugin 2015-09-23 09:19:31 -07:00
gmarek
66ca7fcc92 Functionally revert #12894 2015-09-23 12:15:38 +02:00
gmarek
0a3f7787e7 Fix 'ContainersMap' feature in fake-docker-client. 2015-09-23 09:08:18 +02:00
Eric Tune
f92da0c714 Merge pull request #14323 from brendandburns/flakes2
Fix a flake in the kubelet test.
2015-09-22 13:36:22 -07:00
Rajat Chopra
4dc7485d94 cni network plugin 2015-09-22 11:16:41 -07:00
k8s-merge-robot
e535e27e82 Merge pull request #14279 from pweil-/ipc-followup
Auto commit by PR queue bot
2015-09-22 07:28:07 -07:00
Dawn Chen
a010e91913 Merge pull request #14292 from yujuhong/revert_node
Revert node status manager
2015-09-21 23:13:18 -07:00
k8s-merge-robot
c96c76b729 Merge pull request #13780 from smarterclayton/pod_logs
Auto commit by PR queue bot
2015-09-21 17:02:47 -07:00
Brendan Burns
e845c6a4e6 Fix a flake in the kubelet test. 2015-09-21 16:45:21 -07:00
Clayton Coleman
c2e90cd154 Support extended pod logging options
Increase the supported controls on pod logging. Add validaiton to pod
log options. Ensure the Kubelet is using a consistent, structured way to
process pod log arguments.

Add ?sinceSeconds=<durationInSeconds>, &sinceTime=<RFC3339>, ?timestamps=<bool>,
?tailLines=<number>, and ?limitBytes=<number>
2015-09-21 15:39:32 -04:00
Yu-Ju Hong
077158ef86 Rebase to use unversioned api 2015-09-21 11:14:14 -07:00
Yu-Ju Hong
cadc279505 Revert "kubelet: move all node status related methods to a separate file"
This reverts commit e7d1e47f31.
2015-09-21 11:06:38 -07:00
Yu-Ju Hong
d7b9f8905f Revert "Move node information retreival to nodeManager"
This reverts commit 2369cd6401.
2015-09-21 11:00:04 -07:00
Yu-Ju Hong
7bdf9bfdfa Revert "Move and fix nodeManager related unit tests"
This reverts commit 865dc19957.
2015-09-21 10:58:54 -07:00
Scott Dodson
5de183cce7 Bump Container Inspect to loglevel 4 2015-09-21 13:28:43 -04:00
Paul Weil
20361e33f2 use infra container ns for ipc 2015-09-21 12:47:19 -04:00
k8s-merge-robot
843134885e Merge pull request #12470 from simon3z/add-host-ipc
Auto commit by PR queue bot
2015-09-21 09:15:01 -07:00
Quinton Hoole
851e3c1c24 Merge pull request #14218 from kubernetes/revert-13417-kubelet_tolerates_dead_cloud_api
Revert "Update node status even if cloudprovider API dies"
2015-09-18 19:01:41 -07:00
k8s-merge-robot
5d67c2ce1f Merge pull request #12894 from nikhiljindal/PodCondition
Auto commit by PR queue bot
2015-09-18 18:59:51 -07:00
Tim Hockin
6df2139d5a Revert "Update node status even if cloudprovider API dies" 2015-09-18 17:44:24 -07:00
k8s-merge-robot
8d7038eef0 Merge pull request #13825 from rootfs/path_len
Auto commit by PR queue bot
2015-09-18 14:44:33 -07:00
Tim Hockin
9698e957a6 Merge pull request #12717 from tamnd/fixdockercfg
Fix new docker config format for private registries
2015-09-18 14:43:38 -07:00
Federico Simoncelli
f21d9ac9e4 Support pods with containers using host ipc
Add a HostIPC field to the Pod Spec to create containers sharing
the same ipc of the host.

This feature must be explicitly enabled in apiserver using the
option host-ipc-sources.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-09-18 21:13:39 +02:00
Huamin Chen
29bd6e738d review feedback
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-09-18 10:50:30 -04:00
Jonathan Wills
ad085f78fe If an isolator's request is nil, populate it with the limit and vice versa.
The appc spec isn't currently clear about if both fields are required, and before rkt v0.8.1 if either field
was nil it would result in a crash.  Currently rkt will ignore isolators that don't have both fields set, so
I think this is a reasonable approach to making sure isolators are actually used.
2015-09-18 09:51:32 -04:00
nikhiljindal
6523ec142b Adding more fields to PodCondition 2015-09-18 05:26:13 -07:00
k8s-merge-robot
1a88be1aef Merge pull request #13417 from jfoy/kubelet_tolerates_dead_cloud_api
Auto commit by PR queue bot
2015-09-18 00:56:38 -07:00
k8s-merge-robot
73d71d6a67 Merge pull request #14096 from mvdan/util-duration
Auto commit by PR queue bot
2015-09-18 00:20:43 -07:00
Nikhil Jindal
9e5ed1dc69 Merge pull request #13880 from yujuhong/fix_annotations
Fix source annotation in kubelet
2015-09-17 23:28:41 -07:00
Daniel Martí
586cb9126a Move pkg/util.Time to pkg/api/unversioned.Time
Along with our time.Duration wrapper, as suggested by @lavalamp.
2015-09-17 17:51:27 -07:00
Tim St. Clair
1d0577286f Move the prober test from the docker manager_test.go to prober_test.go 2015-09-17 17:04:20 -07:00
Alex Mohr
bdfd469a85 Merge pull request #14137 from caesarxuchao/13823
rebase 13823
2015-09-17 15:25:52 -07:00
Jack Foy
ab9b53bdab Update node status even if cloudprovider API dies
kubelet will log errors when the cloudprovider API is unavailable, but
will continue to persist node updates using last-known addresses.

Without this change, all nodes are marked as NotReady, and eventually
controller-manager evicts all pods.
2015-09-17 15:16:18 -07:00
k8s-merge-robot
c1eb1a1b2f Merge pull request #13791 from fgrzadkowski/fix_secrets_in_docker
Auto commit by PR queue bot
2015-09-17 15:13:29 -07:00
k8s-merge-robot
0749339357 Merge pull request #14045 from jiangyaoguo/add-message-for-reason-cache
Auto commit by PR queue bot
2015-09-17 14:54:47 -07:00
Kris
f4ad00d9ae Moving Status object to a common package 2015-09-17 14:09:53 -07:00
k8s-merge-robot
7cee028497 Merge pull request #13778 from smarterclayton/unready_endpoints
Auto commit by PR queue bot
2015-09-17 11:36:17 -07:00
k8s-merge-robot
7f68b9bc80 Merge pull request #14090 from yujuhong/node_status
Auto commit by PR queue bot
2015-09-17 11:14:11 -07:00
jiangyaoguo
0d1ca62530 Add message to reason cache in kubelet 2015-09-18 01:19:04 +08:00
feisky
f1124eb0b1 Refactor image manager to operate on Runtime 2015-09-17 23:02:00 +08:00
Filip Grzadkowski
7fe34f2050 Introduce nsenter writer for volume plugins 2015-09-17 16:40:29 +02:00
Huamin Chen
ad308cdf45 review feedback: remove RemoveAllSkipMountPoints since ReadDirNoExit already filters bad mountpoints
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-09-17 10:04:06 -04:00
Clayton Coleman
bf2decce81 Add NotReadyAddresses to Endpoints
In many cases clients may wish to view not ready addresses for endpoints
in order to do set membership prior to a pod being ready. For instance,
a pod that uses the service endpoints to connect to other pods under
the same service, but does not want to signal ready before it has
contacted at least a minimal number of other pods.

This is backwards compatible with old servers and clients. There is
an additional cost in size of endpoints before services ramp up, which
will add minor CPU and memory use for services that have a significant
number of pods which have not become ready.
2015-09-17 09:41:56 -04:00
feihujiang
51f59f3c78 Fix the wrong path of document 2015-09-17 20:38:08 +08:00
k8s-merge-robot
445fde3dc5 Merge pull request #13447 from pweil-/pid-mode
Auto commit by PR queue bot
2015-09-16 23:34:35 -07:00
k8s-merge-robot
d680ea2444 Merge pull request #13542 from yujuhong/backoff_restarts
Auto commit by PR queue bot
2015-09-16 23:11:42 -07:00
k8s-merge-robot
d5a6466349 Merge pull request #14056 from yifan-gu/rkt_image
Auto commit by PR queue bot
2015-09-16 20:52:20 -07:00
k8s-merge-robot
2da93a48b1 Merge pull request #13864 from feiskyer/logs-follow
Auto commit by PR queue bot
2015-09-16 19:27:44 -07:00
Yu-Ju Hong
865dc19957 Move and fix nodeManager related unit tests 2015-09-16 17:41:40 -07:00
Yu-Ju Hong
2369cd6401 Move node information retreival to nodeManager
nodeManager should handle most node object interaction with apiserver. This
moves exsiting node-watching and GetNodes() methods to nodeManager.
2015-09-16 17:17:42 -07:00
Yu-Ju Hong
e7d1e47f31 kubelet: move all node status related methods to a separate file
The methods for registering a node and syncing node status to the apiserver
have grown large enough that it makes sense for them to live in a separate
place. This change adds a nodeManager to handle such interaction with the
apiserver.
2015-09-16 17:17:42 -07:00
k8s-merge-robot
4c46bc3243 Merge pull request #13989 from yujuhong/sync_first
Auto commit by PR queue bot
2015-09-16 17:16:23 -07:00
Yifan Gu
ad33db1a84 kubelet/rkt: bump rkt version for rkt image list fix. 2015-09-16 11:31:59 -07:00
k8s-merge-robot
22f698f5b0 Merge pull request #13953 from liguangbo/change_iff_to_if_and_only_if
Auto commit by PR queue bot
2015-09-16 08:35:20 -07:00
feisky
800e8fb54c Fix kubelet logs --follow bug 2015-09-16 22:06:50 +08:00
liguangbo
4df68f03a3 change iff to if and only if to improve annotation readability 2015-09-16 08:29:36 +00:00
k8s-merge-robot
f6fb0a58b6 Merge pull request #13874 from timstclair/status-manager
Auto commit by PR queue bot
2015-09-16 00:46:01 -07:00
Jeff Lowdermilk
a92c8b6886 Merge pull request #13384 from ZJU-SEL/portsbindings
Allow multiple host ports map to the same container port
2015-09-15 17:57:57 -07:00
Yu-Ju Hong
8f8541b4cd kubelet: make sure sync loop is run before performing housekeeping
Otherwise, kubelet may kill the existing pods before having a chance to update
the desired pods.
2015-09-15 13:11:55 -07:00
gmarek
4b8ddf3d7e Add information about ports opened by Kubelet to API 2015-09-15 14:24:55 -04:00
Paul Weil
ed80c2b940 pid mode 2015-09-15 13:51:44 -04:00
k8s-merge-robot
27e8a11378 Merge pull request #13916 from tmrts/refactor/iota
Auto commit by PR queue bot
2015-09-14 21:11:58 -07:00
k8s-merge-robot
8189460809 Merge pull request #13844 from tummychow/label-deps-2
Auto commit by PR queue bot
2015-09-14 12:56:24 -07:00
Huamin Chen
45d4f7d6c2 Opening Pod volume dir could fail if for instance the directory has stale handle or directory is busy.
In such case, don't exit if the directory cannot be opened.

Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-09-14 14:43:44 -04:00
Yu-Ju Hong
fb270779b5 kubelet: fix the config unit tests 2015-09-14 11:07:27 -07:00
Huamin Chen
adf59896e0 when kubelet removes pod dir, it should skip those that still have unmounted volumes
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-09-14 13:50:08 -04:00
k8s-merge-robot
83fc0b783f Merge pull request #13923 from wojtek-t/fix_rv_0_errors
Auto commit by PR queue bot
2015-09-14 10:21:41 -07:00
Jeff Lowdermilk
e25ae7fdb2 Merge pull request #13833 from caesarxuchao/central-latest
[WIP] Making a generic latest package
2015-09-14 09:26:58 -07:00
Wojciech Tyczynski
5da52558e6 Fix watch with RV=0 in Kubelet. 2015-09-14 16:45:58 +02:00
Tamer Tas
6908790410 Add a default value to PodConfigNotificationMode 2015-09-14 15:00:01 +03:00
tummychow
a21c52a766 Move util/validation files to their own package 2015-09-13 00:46:52 -07:00
k8s-merge-robot
960b9e9564 Merge pull request #13867 from JanetKuo/qos-policy-bug
Auto commit by PR queue bot
2015-09-11 19:13:18 -07:00
Chao Xu
0b6fd8c5c4 fixing tests 2015-09-11 17:33:22 -07:00
Chao Xu
dd6c121d7f massive changes 2015-09-11 17:31:47 -07:00
Yu-Ju Hong
2816c9df78 config_test: clean up unused function arguements 2015-09-11 17:18:29 -07:00
Yu-Ju Hong
69c3aa0872 Fix source annotation in kubelet
kubelet relies on source annotation to distinguish pods from different sources.
It should always annotate the source when receiving the pod to avoid any
confusion. This commit fixes that and also make sure we don't overwrite the
first seen time.
2015-09-11 14:52:16 -07:00
Mikaël Cluseau
b76abf10cc hairpin: fix tests 2015-09-12 08:43:45 +11:00
Mikaël Cluseau
1ab520a59b pkg/util/exec: allow mocking of LookPath 2015-09-12 08:43:45 +11:00
Mikaël Cluseau
99a1cfa8ff hairpin support 2015-09-12 08:43:45 +11:00
k8s-merge-robot
6f01200188 Merge pull request #13727 from jiangyaoguo/fix-reason-reporting-in-kubelet
Auto commit by PR queue bot
2015-09-11 12:32:20 -07:00
Tim St. Clair
1f91fffb57 Move kubelet.statusManager to status.Manager
This refactor is in preparation for moving more state handling to the
status manager. It will become the canonical cache for the latest
information on running containers and probe status, as part of the
prober refactoring.
2015-09-11 12:22:01 -07:00
Janet Kuo
452ebed92b Fix the bug that qos class determination be incorrect with small numbers 2015-09-11 10:26:44 -07:00
k8s-merge-robot
bff6ee8e4a Merge pull request #12695 from JanetKuo/kubectl-describe-pod-podstatus
Auto commit by PR queue bot
2015-09-11 08:08:32 -07:00
k8s-merge-robot
bfc60709b1 Merge pull request #13468 from yifan-gu/rkt_doc
Auto commit by PR queue bot
2015-09-10 20:32:08 -07:00
jiangyaoguo
62c0c35307 Fix reporting reason in kubelet
1. Make reason field of StatusReport objects in kubelet in CamelCase format.
2. Add Message field for ContainerStateWaiting to describe detail about Reason.
3. Make reason field of Events in kubelet in CamelCase format.
4. Update swagger,deep-copy and so on.
2015-09-11 10:01:08 +08:00
Janet Kuo
edc75cd565 Fix the bug that determining guaranteed qos won't work well with small numbers 2015-09-10 18:21:51 -07:00
Janet Kuo
22a794cc22 List resource QoS tier of each container when describing pods; Re-order resource table 2015-09-10 18:21:50 -07:00
Daniel Smith
b225c1d47a Run gofmt (separate commit for easy rebases) 2015-09-10 17:17:59 -07:00
Daniel Smith
15b30b8b09 Move version agnostic parts of client
pkg/client/unversioned/cache -> pkg/client/cache
pkg/client/unversioned/record -> pkg/client/record
2015-09-10 17:17:59 -07:00
k8s-merge-robot
ee7168d868 Merge pull request #13815 from robertabbott/abbott/kubelet_get_instead_of_list
Auto commit by PR queue bot
2015-09-10 15:59:01 -07:00
Yifan Gu
e7b9c50ba1 kubelet/rkt: add support for different stage1 image.
Also enable grace stop for service files.
2015-09-10 14:58:03 -07:00
tummychow
78ce5da988 Move util.StringSet into its own package
A lot of packages use StringSet, but they don't use anything else from
the util package. Moving StringSet into another package will shrink
their dependency trees significantly.
2015-09-10 12:04:15 -07:00
Bobby Abbott
9a5f43e16d Kubelet#GetNode now uses GetNodeInfo instead of List
Both GetNode and the cache.ListWatch listfunc in the
kubelet package call List unnecessary.

GetNodeInfo is sufficient for GetNode and makes looping
through a list of nodes to check for a matching name
unnecessary.

resolves #13476
2015-09-10 10:50:41 -07:00
Chao Xu
002dcc6343 Merge pull request #13737 from wojtek-t/switch_to_node_in_registry
Rename "minion" to "node" in few places.
2015-09-09 17:49:22 -07:00
Wojciech Tyczynski
cd1ac360de Rename "minion" to "node" in few places. 2015-09-09 16:18:23 +02:00
jiangyaoguo
1460a1fb9e Rate limit events in kubelet
1. Add EvnetRecordQps and EventBurst parameter in kubelet.
2. If  EvnetRecordQps and EventBurst was set, rate limit events in kubelet
with a independent ratelimiter as setted.
2015-09-09 16:57:21 +08:00
Wojciech Tyczynski
b85d0557b4 Revert #13052 2015-09-08 09:40:12 +02:00
feihujiang
d713826aa9 Add pod name to error message when getting logs of a container 2015-09-07 17:03:54 +08:00
Harry Zhang
7b2e2e5649 Fix tests and clear fmt mess in manager.go 2015-09-05 04:52:51 +00:00
k8s-merge-robot
2e2def36a9 Merge pull request #13581 from caesarxuchao/APIGroup-testapi-2
Auto commit by PR queue bot
2015-09-04 20:38:45 -07:00
Chao Xu
9fc79e9d99 refactor testapi and test scripts to prepare for multiple API groups. 2015-09-04 18:01:32 -07:00
k8s-merge-robot
e6e69e31ec Merge pull request #13363 from mesosphere/abort-kubelet-syncloop
Auto commit by PR queue bot
2015-09-04 17:45:32 -07:00
k8s-merge-robot
24430525ac Merge pull request #13334 from pedro-r-marques/kubelet_annotation_update
Auto commit by PR queue bot
2015-09-04 17:07:31 -07:00
Quinton Hoole
e188ea6a61 Merge pull request #13202 from jimmidyson/prometheus-with-no-cadvisor-port
Ensure container metrics are registered with prometheus even without cadvisor http server
2015-09-04 13:58:31 -07:00
James DeFelice
de064f4254 fix kubelet syncLoop busy loop upon close of updates chan 2015-09-04 17:56:02 +00:00
Andy Goldstein
c83786979c Various exec fixes
If stdin is noninteractive, the io.Copy from stdin to remoteStdin will
unblock when it finishes reading from stdin. In this case, make sure to
close remoteStdin so the server knows the client won't be sending any
more data. This ensures that the remote process terminates. For example:

echo foo | kubectl exec -i <pod> -- cat

Without this change, the `cat` process never terminates and `kubectl
exec` hangs.

Fix interactive exec sessions hanging after you type 'exit'.

Add e2e test to cover noninteractive stdin: `echo a | kubectl exec -i <pod>
cat`

Add e2e test to cover psuedo-interactive stdin: `kubectl exec -i <pod> bash`

Prep for sending multiple data frames over multiple streams in remote command
test, which is more likely to find flakes (requires bump of spdystream
once an issue with the frame worker queues not being fully drained when
a goaway frame is received).
2015-09-04 10:40:53 -04:00
Abhi Shah
c9f2d3151b Merge pull request #13155 from derekwaynecarr/enforce_limits
Map cpu limits to cpu-quota in docker run
2015-09-03 16:28:04 -07:00
Abhi Shah
d923e61dda Merge pull request #13397 from yujuhong/housekeeping
kubelet: define the housekeeping period
2015-09-03 15:46:29 -07:00
derekwaynecarr
5dc74e8dbf Add support for CFS quota in kubelet 2015-09-03 13:44:28 -04:00
markturansky
0e7f73ad67 expand volume.Spec to include full Volume and PV 2015-09-03 08:57:32 -04:00
Yu-Ju Hong
9cdb004851 kubelet: fix erratic restart count caused per-container restart backoff 2015-09-02 18:50:42 -07:00
Abhi Shah
067e76b509 Merge pull request #13348 from thockin/kubelet-masq-rule
Don't name 'eth0' in MASQUERADE rule
2015-09-02 09:54:31 -07:00
Brendan Burns
ac958e5320 Merge pull request #12513 from brendandburns/tc2
integrate bandwidth shaping and the kubelet.
2015-09-02 09:44:10 -07:00
k8s-merge-robot
f5c2d90c3a Merge pull request #12293 from deads2k/testclient-specific-reaction
Auto commit by PR queue bot
2015-09-02 09:18:24 -07:00
k8s-merge-robot
cc811b3519 Merge pull request #13473 from yujuhong/check_volumes
Auto commit by PR queue bot
2015-09-02 07:32:57 -07:00
Marcin Wielgus
3e9932557d Merge pull request #13052 from pmorie/podip-fix
Fix race condition for consuming podIP via downward API
2015-09-02 16:04:01 +02:00
Yu-Ju Hong
08ec796995 kubelet: remove orphaned pod directories properly
PR #13293 added a safety check to not remove a pod directory if the child
volumes directory is not empty. This logic is faulty because kubelet may have
directory structures podUID/volumes/volumeKind/volumeName. E.g.,
`056db95d-50ee-11e5-a2e4-42010af0ba1d/volumes/kubernetes.io~empty-dir/default-token-al3r2`

This change fixes that by properly listing all volumes under a pod.
2015-09-01 15:39:17 -07:00
Brendan Burns
64717962cf Merge pull request #13211 from ashcrow/kubelet-disk-manager-tests
test: improved kubelet disk_manager coverage.
2015-09-01 10:10:07 -07:00
Brendan Burns
43e7c9b211 Merge pull request #13367 from spothanis/cinder
Cinder Volume Plugin
2015-09-01 10:05:15 -07:00
deads2k
7e180c258d update testclient for delegating reaction chain 2015-09-01 12:58:35 -04:00
k8s-merge-robot
5331a26c5b Merge pull request #13293 from yujuhong/pod_dir
Auto commit by PR queue bot
2015-09-01 04:59:55 -07:00
k8s-merge-robot
49475c3431 Merge pull request #13061 from yifan-gu/rkt_patch_events
Auto commit by PR queue bot
2015-09-01 04:10:18 -07:00
Yu-Ju Hong
13b268b378 kubelet: define the minimum housekeeping period
Before, kubelet performs global cleanup tasks every iteration. After the
PR #13003, kubelet performs the tasks on every sync internval (10 seconds).
This PR decouples the housekeeping period with the sync internval to ensure
that kubelet cleans up promptly, while not too often (no more than once every
minimum housekeeping period).
2015-08-31 17:28:20 -07:00
Paul Morie
4ff66bd70a Fix race exposing pod IP via downward API 2015-08-31 19:18:58 -04:00
Harry Zhang
18315db025 Allow multiple host ports map to the same port in container 2015-08-31 15:22:30 +08:00
Brendan Burns
9f3ef68ebc integrate bandwidth shaping and the kubelet. 2015-08-30 22:24:09 -07:00
k8s-merge-robot
4a7115d272 Merge pull request #11955 from pedro-r-marques/flag_resolv_conf
Auto commit by PR queue bot
2015-08-30 21:03:54 -07:00
Sreekanth Pothanis
f5da6b34ce Cinder Volume Plugin 2015-08-30 19:56:27 -07:00
k8s-merge-robot
093614ec32 Merge pull request #13320 from yujuhong/fix_restarts
Auto commit by PR queue bot
2015-08-28 23:00:11 -07:00
Tim Hockin
1aca401813 Don't name 'eth0' in MASQUERADE rule
This causes endless loops of adding duplicate rules on machines without "eth0".
2015-08-28 22:32:30 -07:00
Pedro Roque Marques
bf170a688c Update annotations in the kubelet.
When the pod annotations are updated in the apiserver, update the pod.
Annotations may be used to convey attributes that are required to the
pod execution, such as networking parameters.
2015-08-28 15:50:13 -07:00
Sami Wagiaalla
ccd0fcd1f9 Rmove Hostname health check
The health check is no longer needed since health checks are no longer
run by master but updated by the kubelet; so a host with the incorrect
host name will not be updated and show 'NotReady' status

Signed-off-by: Sami Wagiaalla <swagiaal@redhat.com>
2015-08-28 16:53:02 -04:00
Yu-Ju Hong
f707ca08d5 Fix incorrect restart count for docker containers 2015-08-28 11:54:30 -07:00
Prashanth B
05b205bab6 Revert "Volume Plugin for Cinder; Openstack Block Storage" 2015-08-28 10:56:24 -07:00
Prashanth B
8d0d54ffed Merge pull request #6689 from spothanis/cinder-vol-plugin
Volume Plugin for Cinder; Openstack Block Storage
2015-08-28 10:47:31 -07:00
Yu-Ju Hong
8774f6efa2 kubelet: don't remove any pod directory with non-empty volumes
If the volumes directory is not empty, it implies that volumes may not have
been properly cleaned up yet. Do not attempt to remove the pod directory.
2015-08-27 22:18:51 -07:00
Yu-Ju Hong
697197d383 Kubelet: do not remove pod directory if any container is still running
If there are any running container in the pod, we cannot remove the volume.
Therefore, we should not attempt to remove the pod directory.
2015-08-27 18:19:13 -07:00
Steve Milner
3181e5b913 test: improved kubelet disk_manager coverage. 2015-08-27 15:54:45 -04:00
Pedro Roque Marques
99b1da848d Add kubelet '--resolv-conf' flag.
Allow the user to specify the resolver configuration file that is used
to determine the default DNS parameters. This defaults to the system's
/etc/resolv.conf.
2015-08-26 15:41:36 -07:00
Yu-Ju Hong
c7afae75f5 Merge pull request #13103 from yujuhong/restart_count
Kubelet: fix container restart counts
2015-08-26 15:13:10 -07:00
Yu-Ju Hong
d839ab2024 Merge pull request #12940 from Miciah/Warning-to-Warningf
glog.Warning -> glog.Warningf
2015-08-26 13:36:05 -07:00
Yifan Gu
67e1589a08 kubelet/rkt: add created/started/failed/killing events.
Also improve the logging for rkt command line commands.
2015-08-26 10:39:10 -07:00
Yu-Ju Hong
c237ac4c84 Merge pull request #13003 from yujuhong/decouple_workers
kubelet: trigger pod workers independently
2015-08-26 09:53:25 -07:00
Jimmi Dyson
3a6701c85f Ensure container metrics are registered with prometheus even without
cadvisor http server

Fixes #13200
2015-08-26 13:35:32 +01:00
Yifan Gu
6ced66249d kubelet/dockertools: clear container reference when killing a container. 2015-08-25 18:22:08 -07:00
Yu-Ju Hong
b906e34576 kubelet: trigger pod workers independently
Currently, whenever there is any update, kubelet would force all pod workers to
sync again, causing resource contention and hence performance degradation.

This commit flips kubelet to use incremental updates (as opposed to snapshots).
This allows us to know what pods have changed and send updates to those pod
workers only. The `SyncPods` function has been replaced with individual
handlers, each handling an operation (ADD, REMOVE, UPDATE). Pod workers are
still triggered periodically, and kubelet performs periodic cleanup as well.

This commit also spawns a new goroutine solely responsible for killing pods.
This is necessary because pod killing could hold up the sync loop for
indefinitely long amount of time now user can define the graceful termination
period in the container spec.
2015-08-25 17:52:01 -07:00
Yu-Ju Hong
655645eb9c Merge pull request #13041 from yifan-gu/rkt_patch_fix
kubelet/rkt: merge environments instead of overriding.
2015-08-25 16:58:00 -07:00
Yu-Ju Hong
3bc2157889 Merge pull request #13100 from pweil-/cap-priv-sources
use privileged source object
2015-08-25 16:10:50 -07:00
Sreekanth Pothanis
c841a20361 Cinder Volume Plugin 2015-08-25 15:13:56 -07:00
Yifan Gu
7767dafb4d kubelet/rkt: include the pod restart count in service file.
Also remove the service file when the pod is killed.
2015-08-25 13:59:18 -07:00
Yifan Gu
763ffdb1fe kubelet/rkt: merge environments instead of overriding.
Merge the environments in container spec and in the image
manifest. Also allow empty app in image manifest.
2015-08-25 13:10:58 -07:00
Yu-Ju Hong
9f508e9422 Merge pull request #13076 from invenfantasy/master
Cleanup deprecated Forever function
2015-08-25 10:07:10 -07:00
Nikhil Jindal
8846c841a8 Merge pull request #12648 from samsabed/crashloop
back off restarts of crashlooping containers
2015-08-24 18:54:13 -07:00
Paul Weil
709e654686 use privileged source object 2015-08-24 16:53:43 -04:00
Yu-Ju Hong
1e26cdfb67 kubelet: fix container restart counts
This commit ensures that the container restart count increments monotonically
when there is no kubelet restarts.
2015-08-24 12:50:05 -07:00
Nikhil Jindal
a1c5f3f45d Merge pull request #12876 from yujuhong/pod_status
kubelet: switch to using pod UID as the key in status manager
2015-08-24 10:39:02 -07:00
Sam Abed
995cb15bb6 back off restarts of crashlooping containers
Signed-off-by: Sam Abed <samabed@gmail.com>
2015-08-24 21:43:17 +10:00
caogaojin
60cb4406e9 Cleanup deprecated Forever function
Since util.Forever function has been deprecated, we should cleanup these
pieces of code.
2015-08-24 10:31:59 +08:00
tamnd
906b279080 Support new docker config format for private registries 2015-08-22 15:37:25 +07:00
Zach Loafman
73d105e22c Merge pull request #12959 from smarterclayton/handle_pods_in_kubelet
Support graceful termination in the Kubelet (5/7)
2015-08-21 16:13:21 -07:00
Yifan Gu
a2b148b27b kubelet/rkt: fix rkt version parsing.
Use SemVer to parse the version string.
2015-08-21 10:45:11 -07:00
Clayton Coleman
f5c4a3e7a6 Handle graceful termination in the Kubelet
Supports pods that are gracefully deleted on the server being
handled in the Kubelet

preStop is limited to the grace period of the pod in execution.
2015-08-21 10:18:21 -04:00
k8s-merge-robot
44c76d5319 Merge pull request #12957 from smarterclayton/handle_terminating_pods
Auto commit by PR queue bot
2015-08-20 21:47:00 -07:00
Saad Ali
9c29733435 Merge pull request #12938 from yifan-gu/rkt_patch_container_log
kubelet/rkt: Add support for fetching per container log.
2015-08-20 17:27:49 -07:00
Saad Ali
1db153cee3 Merge pull request #12895 from lvlv/uts
use host uts namespace when pod.Spec.HostNetwork is true
2015-08-20 17:26:03 -07:00
Saad Ali
a90b67f276 Merge pull request #12880 from yifan-gu/pod_status
kubelet: refactor kubecontainer.Pod, remove PodStatus from it.
2015-08-20 17:25:29 -07:00
Saad Ali
9b01580946 Merge pull request #12872 from runningwild/master
Fix several problems with using rkt on gce
2015-08-20 15:46:16 -07:00
Saad Ali
3f66648ada Merge pull request #12832 from yifan-gu/rkt_patch_img
kubelet/rkt: update image related interfaces.
2015-08-20 14:32:55 -07:00
Yifan Gu
045a164362 kubelet/rkt: update image related interfaces.
Add RemoveImage(), ListImages().
Update PullImage(), IsImagePresent().
2015-08-20 11:16:18 -07:00
Clayton Coleman
02dbb95447 Add TerminationGracePeriodSeconds to API
Set defaulting for pod spec
2015-08-20 11:03:38 -04:00
Saad Ali
f396a7116d Merge pull request #12811 from mvdan/kubelet-restful
kubelet: Switch to restful for the REST api endpoints
2015-08-19 16:48:50 -07:00
Saad Ali
fb18b09306 Merge pull request #12885 from dchen1107/docker
Leave process 1 at root cgroup
2015-08-19 14:56:52 -07:00
Miciah Masters
8aa299da90 glog.Warning -> glog.Warningf
Fix three places where glog.Warning is used with a formatted string.
2015-08-19 16:22:28 -04:00
Yifan Gu
710c34a362 kubelet/rkt: Add support for fetching per container log. 2015-08-19 12:13:04 -07:00
Jonathan Wills
80e799fc0c Allow configuring the rkt binary in a kubelet with a flag.
This is necessary because coreos comes with rkt installed, and if we want to use a different version
we need some way to avoid the default one.
2015-08-19 09:42:13 -04:00
Lv Lv
7cf9ee19c7 add test for utsMode change 2015-08-19 16:56:19 +08:00
Lv Lv
0b90dfba3a use host uts namespace when pod.Spec.HostNetwork is true 2015-08-19 13:02:10 +08:00
Robert Bailey
08e6a43c1d Revert "Merge pull request #9165 from smarterclayton/graceful"
This reverts commit 4f856b595d, reversing
changes made to d78525a83b.

Conflicts:
	pkg/kubelet/status_manager.go
2015-08-18 17:34:49 -07:00
Yifan Gu
69f796f234 kubelet: refactor kubecontainer.Pod, remove PodStatus from it. 2015-08-18 16:27:22 -07:00
Dawn Chen
8b3937c9bf Leaving process 1 at root cgroup. 2015-08-18 16:21:28 -07:00
Dawn Chen
2339a7796f Remove stale comment. 2015-08-18 16:07:15 -07:00
Yu-Ju Hong
0c84b837cf kubelet: switch to using pod UID as the key in status manager
We chose to use podFullName (name_namespace) as key in the status manager
because mirror pod and static pod share the same status. This is no longer
needed because we do not store statuses for static pods anymore (we only
store statuses for their mirror pods). Also, reviously, a few fixes were
merged to ensure statuses are cleaned up so that a new pod with the same
name would not resuse an old status.

This change cleans up the code by using UID as key so that the code would
become less brittle.
2015-08-18 14:39:02 -07:00
Robert Bailey
11d5712278 Merge pull request #12736 from deads2k/relax-pull-secret-constraints
tolerate missing image pull secrets:
2015-08-18 11:48:01 -07:00
Daniel Martí
7862ed3656 kubelet: Switch to restful for the REST api endpoints 2015-08-18 11:28:34 -07:00
Kris Rousey
ae6c64d9bb Moving everyone to unversioned client 2015-08-18 10:23:03 -07:00
Clayton Coleman
780accb3ba Kubelet should garbage collect dead pods
The sync loop should check for terminated pods that are no longer
running and clear them. The status loop should never write status
if the pod UID changes. Mirror pods should be deleted immediately
rather than gracefully.
2015-08-18 09:08:44 -04:00
Clayton Coleman
89f1f3b1b8 Alter graceful deletion to not use TTL
Avoid TTL by deleting pods immediately when they aren't
scheduled, and letting the Kubelet delete them otherwise.

Ensure the Kubelet uses pod.Spec.TerminationGracePeriodSeconds
when no pod.DeletionGracePeriodSeconds is available.
2015-08-18 09:08:43 -04:00
Clayton Coleman
b842a7dd15 Revert "Revert "Gracefully delete pods from the Kubelet""
This reverts commit 98115facfd.
2015-08-18 08:57:02 -04:00
Brendan Burns
a9580a0ad0 Merge pull request #12595 from smarterclayton/add_pod_status_ip
Add status.podIP as a valid downward API target
2015-08-14 20:29:50 -07:00
Brendan Burns
eb8b1aa87e Merge pull request #12694 from yifan-gu/rkt_patch
kubelet/rkt: minor updates to match rkt v0.7.0.
2015-08-14 20:27:30 -07:00
Clayton Coleman
01f3785426 Add status.podIP as a valid downward API target
Getting the public IP a container is supposed to use is O(hard),
and usually involves ugly gyrations in python or with interfaces.
Using the downward API means that the IP Kube is announcing to
other endpoints is also visible inside the container for pods to
identify themselves.
2015-08-14 17:51:55 -04:00
deads2k
c24d176f65 tolerate missing image pull secrets: 2015-08-14 12:51:28 -04:00
xiejunan
f5446f2aa3 fix error in findPortByName
using ContainerPort instead of HostPort
2015-08-14 14:00:05 +08:00
Yifan Gu
558e692f93 kubelet/rkt: minor updates to match rkt v0.7.0. 2015-08-13 18:16:12 -07:00
Yifan Gu
d70a30c069 kubelet: refactor kubelet.Runtimehooks to container.ImagePuller. 2015-08-12 16:28:25 -07:00
jiangyaoguo
9ab4a46b9d Keep event reason in kubelet consistent with others 2015-08-12 19:00:09 +08:00
Piotr Szczesniak
1df0267f4a Merge pull request #12551 from eparis/underscore-to-dash
Update code and docs to use - in flag names instead of _
2015-08-12 07:16:31 +02:00
Yu-Ju Hong
56f4605f47 kubelet: refactor SyncPods for better readability
Eventually we would like to replace the all-encompassing SyncPods function with
more well-defined, smaller functions. This would not only help with the
readability and profiling of the code, it'd also set in motion for the plans to
trigger pod worker individually based on the content of the pod updates.

This commit serves as the first step of that, while avoiding breaking all unit
tests by preserving the SyncPods function for the time being.
2015-08-11 16:40:26 -07:00
Kris Rousey
565189f5b8 Correcting all go vet errors 2015-08-11 13:55:37 -07:00
Eric Paris
5aa495cdad Update code to use - in flag names instead of _ 2015-08-11 16:31:52 -04:00
Filip Grzadkowski
999eff1b7f Merge pull request #12510 from markturansky/improve_failed_mount_msg
Removed spew from failed volume mount event
2015-08-11 12:35:02 +02:00
Filip Grzadkowski
3f7b54cbdb Merge pull request #11669 from pweil-/sc-nonroot
add non-root directive to SC and kubelet checking
2015-08-11 10:30:53 +02:00
markturansky
0b72bb2458 removed spew from event error 2015-08-10 23:16:15 -04:00
Alex Robinson
e899a36de8 Merge pull request #12491 from yifan-gu/bump_appc
Godeps: bump appc/spec to v0.6.1+git.
2015-08-10 16:38:49 -07:00
Alex Robinson
20c189d752 Merge pull request #12471 from peter-edge/docker-new-client-from-env
Use docker.NewClientFromEnv for creation of docker.Client
2015-08-10 14:22:21 -07:00
Yifan Gu
7e5cfd137a Godeps: bump appc/spec to v0.6.1+git. 2015-08-10 11:21:28 -07:00
Paul Weil
e490c20c22 add non-root directive to SC and kubelet checking 2015-08-10 13:30:34 -04:00
Tamer Tas
f5d5befe17 Add documentation for pkg/kubelet/rkt 2015-08-10 19:34:36 +03:00
Marek Grabowski
5f9cefc1d8 Merge pull request #12441 from vlajos/typofixes-vlajos-20150807
typofix - https://github.com/vlajos/misspell_fixer
2015-08-10 16:33:52 +02:00
Marek Grabowski
8580e17ff1 Merge pull request #12374 from wulonghui/wulonghui-patch-1
Add NodeInternalIP for Node's Addresses when cloud provider is nil
2015-08-10 15:01:00 +02:00
peter-edge
0458d707ac use docker.NewClientFromEnv for creation of docker.Client 2015-08-10 13:29:56 +02:00
Marek Grabowski
e034712456 Merge pull request #11788 from HaiyangDING/ImproveClarityResource
Improve clarity around PodFitsResource(issue#11453)
2015-08-10 09:56:32 +02:00
Veres Lajos
9f77e49109 typofix - https://github.com/vlajos/misspell_fixer 2015-08-08 22:31:48 +01:00
Satnam Singh
4ece39ac20 Merge pull request #9452 from yifan-gu/img_pulling
kubelet: Add 'image pulling' event. Refactor dockerManager.createPodInfraContainer()
2015-08-07 15:23:24 -07:00
Satnam Singh
bee48f4ce5 Merge pull request #12035 from AnanyaKumar/requests
Add support for request
2015-08-07 14:27:34 -07:00
Satnam Singh
950ec96db0 Merge pull request #12182 from AnanyaKumar/qos-node
Add QoS support on node
2015-08-07 14:27:02 -07:00
Yifan Gu
053db8dba7 kubelet/dockertools: Refactor image pulling for pod infra container.
Replace the trunk of pull image code with dockerManagner.pullImage().
Also add tests to verify the image pulling/pulled events.
2015-08-07 11:42:04 -07:00
Ananya Kumar
6ef3de1d5f Add QoS support on node 2015-08-07 11:18:16 -07:00
Yifan Gu
eb0fb43453 kubelet: Add image pulling event.
Since it takes a while (1-2mins) for kubelet to pulling a big image
(>500MB). Just showing "Pending" for pod status is not very helpful.

This commit introduces a "pulling" event, and inserts it before the
kubelet starts to pull an image.
2015-08-07 10:50:39 -07:00
dinghaiyang
dab7280ae4 Improve clarity around PodFitsResource by showing pods limits in kubectl describe node 2015-08-07 16:58:11 +08:00
wulonghui
b50e736184 Add NodeInternalIP for Node's Addresses when cloud provider is nil 2015-08-07 09:08:56 +08:00
Rajat Chopra
1ce6d80a89 ipv6 test 2015-08-06 15:46:05 -07:00
Rajat Chopra
58a742e667 status hook for the container network 2015-08-06 15:46:04 -07:00
Wojciech Tyczynski
29aaf1a4d2 Merge pull request #12168 from brendandburns/stdin2
Support Stdin and TTY in the kubelet
2015-08-06 13:45:59 +02:00
Brendan Burns
901a04a3d6 Add support for interactive contaienrs to the kubelet 2015-08-05 22:14:56 -07:00
Mike Danese
fe6b15ba2f rewrite all links to issues to k8s links 2015-08-05 21:11:11 -07:00
Ananya Kumar
ef1e576810 Add support for request 2015-08-05 19:00:19 -07:00
Mike Danese
17defc7383 run gofmt on everything we touched 2015-08-05 17:52:56 -07:00
Mike Danese
8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07:00
deads2k
182885e897 make testclient more precise 2015-08-04 13:35:59 -04:00
Mike Danese
a23ee556ad Merge pull request #11999 from brendandburns/attach2
Add support for attach to kubectl
2015-07-31 12:51:08 -07:00
Piotr Szczesniak
41de62b465 Merge pull request #12022 from piosz/cadvisor
Update cadvisor dependency
2015-07-31 05:56:36 +02:00
Mike Danese
9582c7e54e Merge pull request #12024 from a-robinson/metadata
Support passing a header to the manifest URL in the kubelet.
2015-07-30 13:46:22 -07:00
Brendan Burns
e8e756a719 Add pod/attach to the APIServer. 2015-07-30 10:55:53 -07:00
Alex Robinson
a9f0c4683f Limit the logging from kubelet attempting to read its manifest URL.
Without this, it logs an error every 20 seconds if nothing is at the
provided URL.
2015-07-30 17:47:33 +00:00
Alex Robinson
cf011cad55 Support passing a header to the manifest URL in the kubelet.
Needed to support using GCE's v1 metadata API, which requires passing
the header "Metadata-Flavor: Google".
2015-07-30 17:11:27 +00:00
Piotr Szczesniak
7e305c43f0 Set maxHousekeepingInterval to 15 seconds. 2015-07-30 16:44:45 +02:00
Mike Danese
1b84fb7d74 make testclient threadsafe by guarding internal state with accessors 2015-07-29 16:17:17 -07:00
Mike Danese
f18b09963e Merge pull request #11766 from deads2k/kubelet-prefers-ipv4
make kubelet prefer ipv4 address if available
2015-07-29 10:33:23 -07:00
deads2k
2c06f11052 make kubelet prefer ipv4 address if available 2015-07-28 15:45:57 -04:00
Brendan Burns
64be76c14d Add support for Attach to the kubelet.
This is a pre-cursor to supporting 'kubectl attach ...' and 'kubectl run -it ...'
2015-07-27 21:48:55 -07:00
Marek Grabowski
00cd52dd68 Merge pull request #10656 from krousey/timeouts
Adding proper timeouts.
2015-07-27 10:56:58 +02:00
Mike Danese
b51b4e740f Merge pull request #10639 from caseydavenport/master
Allow specification of a network plugins directory when starting kubelet
2015-07-24 11:09:11 -07:00
Vish Kannan
136d53466a Merge pull request #10892 from nikhiljindal/beta1
Removing references to pre v1beta3 apis in code
2015-07-23 17:05:43 -07:00
Casey D
aeb7dc6b30 Allow specification of network plugins directory when starting kubelet 2015-07-23 11:21:39 -07:00
Wojciech Tyczynski
6524cd5e2a Merge pull request #11562 from MikaelCluseau/master
realContainerGC reports warning when err is nil
2015-07-23 13:39:24 +02:00
Vish Kannan
4421b3dfdd Merge pull request #10821 from jimmidyson/gc-container-volumes
Fixes #10803: Delete Docker container volumes on GC
2015-07-22 16:02:03 -07:00
Mikaël Cluseau
aff10f57bb realContainerGC reports warning when err is nil 2015-07-20 14:11:52 +11:00
Kris Rousey
1d033b9912 Adding proper timeouts. 2015-07-10 14:42:59 -07:00
Rohit Jnagal
affba42a05 Merge pull request #10958 from cjcullen/racefix
Remove race in setting/reading kubelet.podCIDR
2015-07-10 10:09:44 -07:00
CJ Cullen
da0bc5f690 Remove race in setting/reading kubelet.podCIDR 2015-07-08 14:58:14 -07:00
nikhiljindal
fc4da6844e removing references to pre v1beta3 apis 2015-07-08 13:51:43 -07:00
Jimmi Dyson
8e482462fb Fixes #8945: Cleanup log symlinks on remove & dead log symlinks 2015-07-08 08:43:59 +01:00
Jimmi Dyson
159c3c87de Fixes #10803: Delete Docker container volumes on GC 2015-07-07 13:11:28 +01:00
Yu-Ju Hong
b9cc548799 Merge pull request #10763 from bprashanth/timer_leak
Don't leak tickers during an exec probe
2015-07-06 11:59:24 -07:00
Yu-Ju Hong
b58e7c8c2d Merge pull request #10655 from dchen1107/cadvisor
Set minimal shares for containers with no cpu specified
2015-07-06 11:38:54 -07:00
Prashanth Balasubramanian
33e2f7cb8b Don't leak tickers in the exec probe 2015-07-05 17:52:52 -07:00
Justin Santa Barbara
fca7822800 Misc (non-code) spelling fixes 2015-07-04 10:39:37 -04:00
Dawn Chen
9ce11545c0 Explicitly configure master component containers and nginx with 200m each. 2015-07-02 10:46:39 -07:00
Nikhil Jindal
204b90e697 Merge pull request #10593 from lavalamp/kubeletRegister
Fix node not rejoining cluster on reboot
2015-07-02 10:39:17 -07:00
Wojciech Tyczynski
ef41ceb3e4 Merge pull request #10646 from yujuhong/reduce_noise
Kubelet: stop logging "Error on reading termination-log..." messages
2015-07-02 09:32:27 +02:00
Dawn Chen
4b85e02504 Set minimal shares for containers with no cpu specified 2015-07-01 21:17:07 -07:00
Zach Loafman
700a6441de Merge pull request #10313 from yujuhong/kubelet_delete
Add an e2e test to verify that pods are deleted on nodes
2015-07-01 16:47:30 -07:00
nikhiljindal
274792d7bb Stop exposing v1beta3 by default 2015-07-01 14:38:02 -07:00
Yu-Ju Hong
d6ff297a1f Kubelet: stop logging "Error on reading termination-log..." messages
If a pod was deleted and the associated volumes/directory were removed, there
could be a window where the pod worker is still active. If the pod worker tries
to inspect the logs, such an error would be logged. Since the pod has been
deleted, such error messages are meaningless.

This change stops logging this error, but stores the error string in the pod
status. The pod status will be updated for pods that are still alive, and will
be discarded eventually for deleted pods.
2015-07-01 14:20:42 -07:00
Zach Loafman
9363285b4a Merge pull request #10320 from yujuhong/kubelet_logging
Kubelet: add and modify some logging messsages
2015-07-01 14:16:23 -07:00
Daniel Smith
5911a12b14 Fix node not rejoining cluster on reboot
Also improve logging. Fixes #10368.

GCE's external ID apparently can change after a reboot.
2015-07-01 10:21:24 -07:00
Yu-Ju Hong
de75a42cb2 Add a kubelet /runningpods endpoint
/runningpods returns a list of pods currently running on the kubelet. The list
is composed by examining the container runtime, and may be different from the
desired pods to run known by kubelet.

This is useful for tests to verify that pods are indeed deleted on nodes.
2015-06-29 11:29:23 -07:00
Prashanth Balasubramanian
029e0ad350 Kubelet doesn't fight apiserver for cputime on the master. 2015-06-28 19:53:35 -07:00
Robert Bailey
0048eae8eb Merge pull request #9965 from stevekuznetsov/skuznets/allow-https
Allowing for HTTPS Probes
2015-06-26 10:43:37 -07:00
Steve Kuznetsov
3008ff6150 Changed HTTPGetAction to allow user-defined schemes 2015-06-25 16:59:12 -04:00
Maxwell Forbes
1904d4e1ce Merge pull request #10330 from brendandburns/addon
Use the namespace of the pod when creating the mirror.
2015-06-25 10:04:25 -07:00
Maxwell Forbes
2bb4cf3f8f Merge pull request #10266 from ArtfulCoder/kubelet_resolv
update docker's resolv.conf file with options ndots:5
2015-06-25 09:54:36 -07:00
Abhishek Shah
23caf446ae update docker's resolv.conf file with options ndots:5 2015-06-24 23:33:58 -07:00
Brendan Burns
c669fe300c Use the namespace of the pod when creating the mirror. 2015-06-24 21:49:40 -07:00
Maxwell Forbes
3afda5d566 Merge pull request #10312 from dchen1107/cleanup
Take 2: Fix the race between configuring cbr0 and restarting static pods
2015-06-24 17:59:50 -07:00
Maxwell Forbes
28946766a3 Merge pull request #9807 from krousey/container_manifest
Removing ContainerManifest
2015-06-24 17:55:29 -07:00
Dawn Chen
710fb4e413 add iptables rule for MASQUERADE for egress 2015-06-24 17:19:57 -07:00
Yu-Ju Hong
f7fd7e9687 Kubelet: add and modify some logging messsages
This helps debug #6651
2015-06-24 16:29:19 -07:00
Maxwell Forbes
befe545033 Merge pull request #10253 from yifan-gu/log
kubelet/status_manager: Small logging fix.
2015-06-24 15:01:40 -07:00
Kris Rousey
d13421e084 Removing ContainerManifest 2015-06-24 11:31:34 -07:00
Dawn Chen
6ddfa512de Revert "Revert "Fix the race between configuring cbr0 and restarting static pods""
This reverts commit fd0a95dd12.
2015-06-24 11:10:10 -07:00
Piotr Szczesniak
fd0a95dd12 Revert "Fix the race between configuring cbr0 and restarting static pods" 2015-06-24 09:56:49 +02:00
Jeff Lowdermilk
f4e7b5480d Merge pull request #10249 from mikedanese/unlink-test-libs
unlink testlibs from kube-apiserver and kubelet, remove test flags
2015-06-23 17:16:31 -07:00
Jeff Lowdermilk
50d50a3cb8 Merge pull request #10211 from dchen1107/cleanup
Fix the race between configuring cbr0 and restarting static pods
2015-06-23 17:09:01 -07:00
Dawn Chen
9dbe6fe4e4 Added more comments. 2015-06-23 16:28:41 -07:00
Jeff Lowdermilk
d212ea17cd Merge pull request #10182 from bprashanth/kubelet_status
Fix kubelet deadlock
2015-06-23 15:40:49 -07:00
Yifan Gu
384f022681 kubelet/status_manager: small logging fix. 2015-06-23 13:49:34 -07:00
Dawn Chen
23200d303f Fix several issues on running syncPods until network is configured.
Also fixed unittests and compiling.
2015-06-23 12:11:19 -07:00
Mike Danese
06c35a177c unlink testlibs from kube-apiserver and kubelet 2015-06-23 12:04:05 -07:00
Brendan Burns
192ffdfb25 Fix the container bridge so that it can create cbr0
Fix the kubelet so that it tries to sync status, even if Docker is down
2015-06-22 23:18:01 -07:00
Prashanth Balasubramanian
af175cc00b Add a pod status equality method to the status manager. 2015-06-22 13:49:49 -07:00
Jeff Lowdermilk
b7583b799f Merge pull request #10151 from brendandburns/explore
Remove some dead code.
2015-06-22 12:02:05 -07:00
Jeff Lowdermilk
85770295c2 Merge pull request #10004 from ArtfulCoder/kubelet_health
Augmented kubelet healthz with syncLoop check.
2015-06-22 10:53:05 -07:00
Prashanth Balasubramanian
5f61392e6f Add logging to debug container runtime failures 2015-06-22 10:22:35 -07:00
Prashanth Balasubramanian
64ad3e17ad Fix deadlock 2015-06-22 10:22:35 -07:00
Prashanth Balasubramanian
4b990d128a Don't flood the status manager with updates from multi-container pods 2015-06-22 10:22:28 -07:00
Anastasis Andronidis
101739a6be Added Reason in PodStatus 2015-06-21 17:05:34 +02:00
Brendan Burns
26b682d6a0 Remove some dead code. 2015-06-19 21:32:13 -07:00
Abhishek Shah
3556993179 Augmented kubelet healthz with syncLoop check.
Monit uses read-only port for health monitoring.
2015-06-19 18:14:01 -07:00
Satnam Singh
2012238204 Merge pull request #9457 from yujuhong/seen
Kubelet: record the initial pod processing latency
2015-06-19 15:24:16 -07:00
Yu-Ju Hong
f96a8d0935 Kubelet: record the initial pod processing latency
Add a new latency metric for the time from seeing the pod for the first time
to starting a pod worker for it.

Also, change PodStartLatency to include this initial processing latency.
2015-06-19 12:07:55 -07:00
Yifan Gu
40e46bbb37 kubelet: Remove newTestKubeletWithFakeRuntime() and other depreciated functions.
This cleans up the kubelet tests. Almost no docker specified tests now.
2015-06-19 10:28:27 -07:00
Yifan Gu
91e198cb70 kubelet: Move TestSyncPodWithTerminationLog() to dockertools package.
Update the fakeOptionGenerator to create the pod container directory,
so that fake docker client can see and record the termination log path.
2015-06-19 10:28:27 -07:00
Yifan Gu
6ddffdd736 kubelet: Move TestPortForwardNoSuchContainer() to dockertools package.
Also refactor TestPortForward() to be neutral to container runtime.
2015-06-19 10:28:27 -07:00
Satnam Singh
e584629272 Merge pull request #10048 from rajatchopra/master
Assign host's IPAddress to podIP when pod shares the host's network
2015-06-19 08:16:24 -07:00
Satnam Singh
d06a460007 Merge pull request #10066 from dchen1107/clean
Make kubelet first acknowledge time of a pod as Pod.Status.StartTime.
2015-06-19 08:05:15 -07:00
Dawn Chen
1145e4b80a Make kubelet first acknowledge time of a pod as Pod.Status.StartTime. 2015-06-18 15:54:48 -07:00
Satnam Singh
4c13f8957d Merge pull request #10057 from justinsb/aws_id_as_name_2
Fix of reverted #9728
2015-06-18 14:07:21 -07:00
Justin Santa Barbara
27b02d0913 Fix kubelet unit test; populate NodeName
When we build a Kubelet directly we need to populate NodeName
as well as hostname, because we bypass the functions that normally
do this for us.
2015-06-18 12:40:55 -07:00
Justin Santa Barbara
df87470ecf Allow cloud providers to return a node identifier different from the hostname 2015-06-18 12:40:05 -07:00
Justin Santa Barbara
dee8d4b90b For kubelet, differentiate between the nodeName and the hostname
This will allow us to use a nodeName that is not the hostname,
for example on clouds where the hostname is not the natural identifier
for a node.
2015-06-18 12:40:01 -07:00
Rajat Chopra
a6a57de646 Assign host's IPAddress to podIP when pod shares the host's network 2015-06-18 11:30:59 -07:00
Satnam Singh
e4f5529a2d Revert "Allow nodename to be != hostname, use AWS instance ID on AWS" 2015-06-18 11:27:55 -07:00
Brendan Burns
51fb753e11 Update the kubelet to ignore syncing Pods until the container runtime is up. 2015-06-18 10:27:04 -07:00
Satnam Singh
790ca2344f Merge pull request #9728 from justinsb/aws_id_as_name
Allow nodename to be != hostname, use AWS instance ID on AWS
2015-06-18 10:17:39 -07:00
Saad Ali
544b16d873 Merge pull request #9750 from rjnagal/ux
Update cadvisor dependency.
2015-06-17 14:22:38 -07:00
Dawn Chen
32d5f463d2 Add a sanity check to memory limit for /docker-daemon, and allocate
at least 150Mi at least.
2015-06-17 12:51:11 -07:00
Dawn Chen
ca95eb75e9 Configured resource-only container /docker-daemon with 70% of node memory
capacity. This is a workaround to docker memory leakage issue.
2015-06-17 11:40:30 -07:00
Saad Ali
d5e00d3990 Merge pull request #9523 from bprashanth/kl_stats
Scrape /metrics of kubelets from e2e tests
2015-06-17 11:30:28 -07:00
gmarek
c2c1045e09 Add startup latency e2e "test" 2015-06-17 17:40:07 +02:00
Justin Santa Barbara
efaead81dc Allow cloud providers to return a node identifier different from the hostname 2015-06-17 00:40:43 -04:00
Justin Santa Barbara
c28cdfbd43 For kubelet, differentiate between the nodeName and the hostname
This will allow us to use a nodeName that is not the hostname,
for example on clouds where the hostname is not the natural identifier
for a node.
2015-06-17 00:40:43 -04:00
Saad Ali
43889c612c Merge pull request #9918 from caesarxuchao/common_test
remove references to v1beta1 in common_test.go
2015-06-16 18:59:19 -07:00
Saad Ali
cc5756b2fc Merge pull request #9809 from bprashanth/stats_cache
Use runtime cache to serve container /stats requests
2015-06-16 18:51:53 -07:00
Chao Xu
b093af57ba cleanse common_test.go of v1beta1 2015-06-16 17:22:35 -07:00
Saad Ali
6ada940e7f Merge pull request #9706 from hurf/shorten_id
Shorten container ID in events
2015-06-16 15:58:30 -07:00
Saad Ali
f82accda25 Merge pull request #9582 from mnagy/fix_quoting
Quote integers correctly
2015-06-16 15:55:58 -07:00
Andy Goldstein
7748a02e37 Eliminate possible infinite loop in exec
If a user starts an exec session with a shell and leaves it idle long
enough, they will eventually hit the Kubelet's HTTP server's read/write
timeout of 5 minutes. At this time, the StartExec call to Docker exits,
but if the user requested a TTY, the exec'd process does not exit.
After StartExec finishes, we try to determine the exit code of the
exec'd process, but in this case, we'll never get it. This change exits
the loop after 5 tries if the process is still running.
2015-06-16 15:44:09 -04:00
Prashanth Balasubramanian
831d7a36d0 Scrape /metrics of kubelets from e2e tests 2015-06-16 09:50:40 -07:00
Dawn Chen
80c48aedb2 Merge pull request #9824 from dchen1107/clean
explicitly applying oom_score_adj(0) to processes of user containers
2015-06-15 17:06:48 -07:00
Dawn Chen
14f78b74cc Fix the unittests cause by applying oom_score_adj (0) to the user containers. 2015-06-15 16:16:34 -07:00
Dawn Chen
f6f9372d1a Apply oom_score_adj (0) to PID of user containers by default. 2015-06-15 16:16:34 -07:00
Fabio Yeon
bb5d2101a1 Merge pull request #9765 from brendandburns/fix-kubelet
Fix a bug where the network container could be torn down before other pods
2015-06-15 15:09:01 -07:00
Fabio Yeon
5f361c17af Merge pull request #9759 from mikedanese/actually-fix-logging
Fix excessively verbose logging in master's kubelet
2015-06-15 13:35:33 -07:00
Prashanth Balasubramanian
d761b1d4d7 Use runtime cache to serve container /stats requests 2015-06-15 12:39:25 -07:00
Rohit Jnagal
6849b381dc Update cadvisor dependency.
Godep also decided to remove unused appengine dependency.
2015-06-15 19:11:55 +00:00
hurf
d58768b351 Shorten container ID in events
Log only first 12 characters of container ID in events.
2015-06-15 17:01:27 +08:00
Brendan Burns
aac696d44c Fix a bug where the network container could be torn down before other pods.
This can break PreStop that hits localhost in the pod.
2015-06-12 21:18:40 -07:00
Mike Danese
64482907ab cover more codepaths that hit GetNode in standalone, as well as create better error message when we actually do hit GetNode() which is likely a programmer/config error 2015-06-12 17:45:17 -07:00
Abhi Shah
cdef8ae844 Merge pull request #9749 from dchen1107/podstatus
Add logging at RunInContainer for future debugging docker exec issues.
2015-06-12 17:10:12 -07:00
Dawn Chen
c1d1a01087 Add logging at RunInContainer for future debugging docker exec issues. 2015-06-12 16:38:24 -07:00
Dawn Chen
b1bbf653ab Merge pull request #9680 from mikedanese/fix-readiness-probe
Fix ReadinessProbe: seperate readiness and liveness in the code
2015-06-12 16:10:21 -07:00
Abhi Shah
3ce7fe8310 Merge pull request #9722 from mikedanese/host-ip-spam
Fix spammy GetHostIP error log in kubelet
2015-06-12 15:26:54 -07:00
Abhi Shah
928971cea4 Merge pull request #9710 from mesosphere/public-get-phase
export kubelet.GetPhase
2015-06-12 13:46:35 -07:00
Mike Danese
5896ac9e07 skip GetHostIP call on standalone mode kubelet to fix spammy log statement 2015-06-12 11:37:53 -07:00
Abhi Shah
52db576617 Merge pull request #8882 from mesosphere/upstream_k8sm
Upstream Kubernetes-Mesos framework
2015-06-12 06:36:20 -07:00
James DeFelice
3cf7739b42 export kubelet.GetPhase 2015-06-12 11:11:53 +00:00
Prashanth Balasubramanian
b5ed0e9b13 Dont generatePodStatus twice for new pods 2015-06-11 17:18:16 -07:00
Mike Danese
35771acdfa seperate readiness and liveness in the code 2015-06-11 15:09:27 -07:00
James DeFelice
7d66559725 added comments at the top of native k8s files which, if changed, might affect some of the k8sm code 2015-06-10 20:31:22 +00:00
Martin Nagy
ff2b5b78fa Quote integers correctly 2015-06-10 17:50:58 +02:00
krousey
f62a2a1bb6 Merge pull request #9451 from cjcullen/mig
Use Node IP Address instead of Node.Name in minion.ResourceLocation.
2015-06-09 15:52:12 -07:00
krousey
f413f30bea Merge pull request #9424 from mesosphere/export-generate-pod-status
add GetRuntime() to Kubelet for easier integration with 3rd party kubele…
2015-06-09 14:17:30 -07:00
krousey
dd1f4f392f Merge pull request #9425 from mesosphere/update-testify-dep
Update github.com/stretchr/testify rev to 7e4a149
2015-06-09 11:59:00 -07:00
James DeFelice
257bc9b1a3 add GetRuntime() to simplify integration with 3rd party kubelet extensions like kubernetes-mesos 2015-06-09 13:27:34 +00:00
CJ Cullen
2d85e4a094 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses.
2015-06-08 16:58:00 -07:00
Tomás Senart
2a3ffe4038 kubelet: Use assert.EqualValues instead of assert.Equal
The last update to github.com/stretchr/testify makes `assert.Equal`
consider the type of its arguments. This commit makes this test pass
again by only testing for value equality using `assert.EqualValues`.
2015-06-08 22:01:48 +02:00
krousey
66d2e1cb92 Merge pull request #9358 from dchen1107/podstatus
Passing memory swap limit -1 by default. Docker remote API never chec…
2015-06-08 10:19:28 -07:00
Dawn Chen
f714020a7a Passing memory swap limit -1 by default. Docker remote API never check if memory
swap is enabled by kernel or not, instead by default to set the limit to
memory * 2, and return API error 500 if swap is not enabled.
2015-06-05 18:12:05 -07:00
Prashanth Balasubramanian
99f8ddf304 Enable profiling endpoints for kubelet 2015-06-05 12:50:57 -07:00
Dawn Chen
636b40ffa1 Filtered out unfriendly error from docker when registry is not reachable(code: 502, 503, 504) 2015-06-05 11:29:35 -07:00
Yifan Gu
f197a9db4e kubelet: Minor refactors.
Remove some TODOs.
Unexport DockerManager.Puller and DockerManager.PodInfraContainerImage.
Add "docker" for all "go-dockerclient" imports.
2015-06-04 16:08:45 -07:00
Yu-Ju Hong
46e29cfb70 Kubelet: fix the warning message 2015-06-04 11:07:08 -07:00
Brian Grant
656fa7bea1 Merge pull request #9225 from caesarxuchao/add-v1-tests-general
Add v1 tests
2015-06-03 22:18:21 -07:00
Chao Xu
ca72165b20 remove most references to api.PreV1Beta3 2015-06-03 20:09:03 -07:00
Brian Grant
f72fa67924 Revert "Use Node IP Address instead of Node.Name in minion.ResourceLocation." 2015-06-03 18:19:22 -07:00
Chao Xu
97b29c7fe6 in pkg/kubelet/config/commont_test.go, remove check for v1beta1, add test cases for all registered version 2015-06-03 16:07:00 -07:00
Daniel Smith
3f454b7599 remove ro refs from more places 2015-06-03 15:41:09 -07:00
Chao Xu
d52cef11a4 add v1 tests to hack/test-go; let default value of Container.SecurityContext to be nil 2015-06-03 09:50:41 -07:00
Brian Grant
36a4ece87a Merge pull request #9080 from thockin/dns-new-search-kubelet
Insert 'svc' into the DNS search paths
2015-06-02 22:54:07 -07:00
Brian Grant
d4acb1d676 Merge pull request #9155 from cjcullen/mig
Use Node IP Address instead of Node.Name in minion.ResourceLocation.
2015-06-02 22:51:20 -07:00
Brian Grant
be2547bc39 Merge pull request #9149 from vmarmol/docker-errors
Kubelet: Add metric for tracking Docker error count
2015-06-02 22:50:50 -07:00
CJ Cullen
4e5d0da839 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses. Remove NodeLegacyHostIP
2015-06-02 20:01:49 -07:00
Victor Marmol
6b0d3d8df0 Add DockerErrors metric in the Kubelet.
Allows the tracking of errors by Docker operation.
2015-06-02 17:38:09 -07:00
Victor Marmol
1a805c711a Refactoring handling of latency recording. 2015-06-02 17:29:13 -07:00
Yu-Ju Hong
64aa958efb Make PodList span multiple lines for readability 2015-06-02 15:03:38 -07:00
Yu-Ju Hong
55f7b9b9b1 Adapt most CommandRunner tests to use FakeRuntime 2015-06-02 15:03:38 -07:00
Yu-Ju Hong
b3197bb49b Switch more tests from newTestKubelet to newTestKubeletWithFakeRuntime 2015-06-02 15:03:38 -07:00
Yu-Ju Hong
d4034f9c43 Move more docker-specific tests to dockertools/manager_test.go 2015-06-02 15:03:33 -07:00
Filip Grzadkowski
98115facfd Revert "Gracefully delete pods from the Kubelet" 2015-06-02 23:40:05 +02:00
Brian Grant
8a9700b2ba Merge pull request #8864 from ncdc/pluggable-docker-exec
Add support for pluggable Docker exec handlers
2015-06-02 14:13:06 -07:00
Brian Grant
0a28edf6e7 Merge pull request #8698 from vmarmol/with-limits
Reserve node resources for node services
2015-06-02 13:05:29 -07:00
Tim Hockin
a826529573 Insert 'svc' into the DNS search paths
Fixes #8569.

This requires the DNS server to be running kube2sky v1.6 or higher (part of
release 0.18).  Users with older kube2sky MUST NOT update to this kubelet until
they upgrade DNS.  Versions of kube2sky >= 1.6 support both old and new style
names.  Old style names are deprectaed and will be removed around the time of
kubernetes v1.0 release.
2015-06-01 17:02:17 -07:00
Clayton Coleman
72ee028cab Gracefully delete pods from the Kubelet
This commit wires together the graceful delete option for pods
on the Kubelet.  When a pod is deleted on the API server, a
grace period is calculated that is based on the
Pod.Spec.TerminationGracePeriodInSeconds, the user's provided grace
period, or a default.  The grace period can only shrink once set.
The value provided by the user (or the default) is set onto metadata
as DeletionGracePeriod.

When the Kubelet sees a pod with DeletionTimestamp set, it uses the
value of ObjectMeta.GracePeriodSeconds as the grace period
sent to Docker.  When updating status, if the pod has DeletionTimestamp
set and all containers are terminated, the Kubelet will update the
status one last time and then invoke Delete(pod, grace: 0) to
clean up the pod immediately.
2015-06-01 19:23:59 -04:00
Andy Goldstein
2a0d7ebb11 Add support for pluggable Docker exec handlers
Add support for pluggable Docker exec handlers. The default handler is
now Docker's native exec API call. The previous default, nsenter, can be
selected by passing --docker-exec-handler=nsenter when starting the
kubelet.
2015-06-01 16:59:59 -04:00
Victor Marmol
7283e662b5 Introduce SystemContainer to Kubelet ContainerManager.
This generalizes the handling of containers in the
ContainerManager.

Also introduces the ability to determine how much
resources are reserved for those system containers.
2015-05-29 17:32:34 -07:00
Kris
f4e2c738f6 Delete deprecated API versions
pkg/service:

There were a couple of references here just as a reminder to change the
behavior of findPort. As of v1beta3, TargetPort was always defaulted, so
we could remove findDefaultPort and related tests.

pkg/apiserver:

The tests were using versioned API codecs for some of their encoding
tests. Necessary API types had to be written and registered with the
fake versioned codecs.

pkg/kubectl:

Some tests were converted to current versions where it made sense.
2015-05-29 17:17:35 -07:00
Rohit Jnagal
233ce46b83 Merge pull request #8923 from caesarxuchao/TerminationToTerminated
Update ContainerState.Termination to ContainerState.Terminated
2015-05-29 14:51:09 -07:00
Rohit Jnagal
50b9d6284a Merge pull request #8681 from vmarmol/system-container
Create a system container
2015-05-29 09:41:06 -07:00
Chao Xu
2f6e5e2e08 Update ContainerState.Termination to ContainerState.Terminated in pkg/api/types.go and pkg/api/v1/types.go 2015-05-28 17:18:24 -07:00
Tim Hockin
bade36c7dd Merge pull request #8826 from markturansky/b2d_fix
Fixed setNodeStatus to allow running on pods on OS X
2015-05-28 16:54:42 -07:00
Tim Hockin
4318ca5a8b Rename 'portal IP' to 'cluster IP' most everywhere
This covers obvious transforms, but not --portal_net, $PORTAL_NET and
similar.
2015-05-28 16:10:44 -07:00
Tim Hockin
32bb3ae8f1 Merge pull request #7775 from simon3z/cloud-provider-id
api: add the ProviderID attribute to NodeSpec
2015-05-28 15:54:00 -07:00
Tim Hockin
081ab3abac Merge pull request #8853 from caesarxuchao/HostToNodeName
update PodSpec.Host to PodSpec.NodeName
2015-05-28 15:50:12 -07:00
Tim Hockin
3830c068b9 Merge pull request #8883 from yujuhong/kubelet_unittest2
Kubelet: clean up more unit tests
2015-05-28 15:00:02 -07:00
Chao Xu
9c1153322e update PodSpec.Host to PodSpec.NodeName in /pkg/api/types.go and /pkg/api/v1beta3/types.go 2015-05-28 14:10:06 -07:00
Federico Simoncelli
2a89428d44 api: add the ProviderID attribute to NodeSpec
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-28 13:01:58 -04:00
markturansky
8aa3cb22b5 added pod capacity to node.Status when cadvisor unavailable. defaults to kubelet's pod list length 2015-05-28 10:53:08 -04:00
Tim Hockin
c40dd59130 Merge pull request #8885 from lavalamp/no-ro-kubelettest
remove RO port from kubelet test
2015-05-27 16:25:33 -07:00
Brendan Burns
2ec4b409e1 Make exec more consistent with the rest of the kubectl commands. 2015-05-27 15:47:32 -07:00
Daniel Smith
ddcd2c89de remove RO port from kubelet test 2015-05-27 13:46:32 -07:00
Yu-Ju Hong
d9339fedbe Modify more tests to use FakeRuntime in kubelet_test.go 2015-05-27 13:01:45 -07:00
Yu-Ju Hong
697312bcd7 Migrate more docker-specific tests to dockertools/manager_test.go 2015-05-27 12:42:59 -07:00
Yu-Ju Hong
044894665d Delete TestSyncPodsDeletes in kubelet_test.go
This test verifies that kubelet doesn't kill non-kubelet-managed containers.
This is obsolete now since container runtime provides only the KillPod
function, and has no support for killing a container.
2015-05-27 10:02:52 -07:00
Yu-Ju Hong
ef5bef914f Kubelet: switch cadvisor-related unit tests to use FakeRuntime 2015-05-27 09:58:50 -07:00
Paul Morie
8b338860aa Make kubelet expand var refs in cmd, args, env 2015-05-27 00:13:57 -04:00
Victor Marmol
9a2630ac6e Make system container name configurable. 2015-05-26 20:49:55 -07:00
Victor Marmol
ddec34a000 Have the ContainerManager create a system container.
The system container is a resource-only container which contains all
non-kernel processes that are not already part of a container. This will
allow monitoring of their resource usage and limiting it (eventually).
2015-05-26 20:49:55 -07:00
Saad Ali
9ca4fb40dc Merge pull request #8844 from yujuhong/kubelet_unittest
Kubelet: clean up unit tests
2015-05-26 18:29:48 -07:00
Yu-Ju Hong
9a71fb9373 Kubelet: clean up kubelet_test.go
* Start using FakeRuntime to replace FakeDockerClient in unit tests.
 * Move and adapt docker-specific tests (e.g. creating/deleting infra
   containers) to manager_test.go in dockertools.
2015-05-26 17:11:24 -07:00
Yu-Ju Hong
8ea88d58d4 Kubelet: make FakeRuntime implement Runtime
We should start using FakeRuntime in kubelet_test.go. First, make it implement
Runtime correctly.
2015-05-26 16:49:46 -07:00
CJ Cullen
197115853e Report node.Ready == false until cbr0 is configured correctly 2015-05-26 10:48:29 -07:00
Robert Bailey
3302628db3 Fix kubelet tests for systems without functional dns to look up localhost. 2015-05-22 14:32:51 -07:00
Dawn Chen
677a4aa1a7 Merge pull request #8164 from cjcullen/cloudprovider
Route creation reconciler loop.
2015-05-22 12:27:50 -07:00
Tim Hockin
a29240f2c5 reduce verbosity of log line 2015-05-21 13:09:18 -07:00
David Oppenheimer
6b428ef1a8 Merge pull request #7170 from simon3z/node-events
Node events recording fixes
2015-05-21 12:54:38 -07:00
Dawn Chen
017fb6a818 Merge pull request #8575 from yifan-gu/kube_refactor
Minor kubelet/rkt refactors
2015-05-21 09:37:31 -07:00
Dawn Chen
0710976d43 Merge pull request #8490 from thockin/diff-proto
Allow same-hostport-different-protocol
2015-05-21 09:16:16 -07:00
Dawn Chen
9a5b05312f Merge pull request #8238 from thockin/probe-logs
Better kubelet logging for probes
2015-05-21 09:11:11 -07:00
Federico Simoncelli
fefc65164a kubelet: fix node ready condition logic
Fixes #8585

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-20 20:03:57 -04:00
Federico Simoncelli
2f503c57a5 nodecontroller: improve node status event recording
This patch substitutes the misleading reason "unknown" for the event
recording. For symmetry with kubelet's message "online" the conditions
Unknown and False are reported as "offline".

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-20 18:46:01 -04:00
CJ Cullen
bf646abf8d Revert "Revert "Modify nodes to register directly with the master.""
This reverts commit c53786ab31.
2015-05-20 14:21:03 -07:00
Quinton Hoole
c53786ab31 Revert "Modify nodes to register directly with the master." 2015-05-20 13:47:51 -07:00
Yifan Gu
6a5681e0fe kubelet: Move HashContainer to kubelet/container package. 2015-05-20 12:08:32 -07:00
Tim Hockin
9117a757e2 Revert "Introduce an 'svc' segment for DNS search" 2015-05-20 09:04:15 -07:00
Tim Hockin
75617e8760 Better kubelet logging for probes
Log when we actually run probes and event when they fail.  Print the output of
a probe, too.
2015-05-20 08:56:45 -07:00
Eric Tune
1f4172d23c Merge pull request #6949 from roberthbailey/node-register
Modify nodes to register directly with the master.
2015-05-19 11:29:43 -07:00
Dawn Chen
349d8b1a67 Merge pull request #8491 from vmarmol/fix-isolation
Fix setting resource isolation in Docker 1.6+
2015-05-19 11:26:27 -07:00
Daniel Smith
181124bc9b Merge pull request #7974 from deads2k/attach-pull-secrets-to-pods
Attach pull secrets to pods
2015-05-19 10:26:39 -07:00
Tim Hockin
711fa2f2c6 fix 2015-05-19 10:17:53 -07:00
Tim Hockin
c7bf373d98 Allow same-hostport-different-protocol 2015-05-19 10:00:35 -07:00
Robert Bailey
01467e0bb8 Modify nodes to register directly with the master.
- Delete nodes when they are no longer ready and don't exist in the
cloud provider.
 - Label each node with it's hostname.
 - Add flag to skip node registration.
 - Add a test for registering an existing node.
2015-05-19 09:55:07 -07:00
deads2k
72c0709f18 reduce scope of DockerConfigEntryWithAuth 2015-05-19 12:41:03 -04:00
Victor Marmol
deaa0e569d Set CPU and memory in Create() and Start().
This allows for backwards and forwards compatability since old Docker
versions expect it in Create() and newer ones do so in Start().

Fixes #8358
2015-05-19 09:26:15 -07:00
Brian Grant
2c81050e6f Merge pull request #8457 from davidopp/master
Fix stylistic isues with #5547. Closes #4910.
2015-05-19 07:43:21 -07:00
deads2k
5458f05679 create LocalObjectReference 2015-05-19 08:39:46 -04:00
David Oppenheimer
44b1e1ca0c Fix stylistic isues with #5547. Closes #4910. 2015-05-18 23:32:06 -07:00
Brian Grant
03535478a2 Merge pull request #8440 from thockin/api-type-names
Rename a few API types (non-breaking change)
2015-05-18 18:48:16 -07:00
Victor Marmol
c5da035d51 Merge pull request #8421 from yujuhong/active_deadline
Kubelet: move active deadline check to per pod worker
2015-05-18 17:42:21 -07:00
Tim Hockin
65833e42c4 rename CapabilityType Capability 2015-05-18 17:21:30 -07:00
Paul Morie
a58c7a0de7 rename rkt makeruntimePod 2015-05-18 19:24:10 -04:00
Vish Kannan
c5f7ee6f96 Merge pull request #8430 from vmarmol/logging
Don't run OOM watcher is cAdvisor is not available.
2015-05-18 14:41:24 -07:00
Yu-Ju Hong
2bf0646c76 Kubelet: do not remove directories of terminated pods
We recently changed `SyncPods` to filter out terminated pods at the beginning
for two reasons:

 * performance: kubelet no longer keeps goroutines to checks containers for
   terminated pods.
 * correctness: kubelet relies on inspecting dead containers to generate
   pod status. Because dead containers may get garbage collected and
   kubelet does not have checkpoints yet, syncing terminated pod could
   lead to modifying the status of a terminated pod.

However, even though kubelet should not *sync* the terminated pods, it
should not attempt to remove the directories and volumes for such
pods as long as they have not been deleted. This change fixes aggresive
directory removal by passing all pods (including terminated pods) to the
cleanup functions.
2015-05-18 13:23:49 -07:00
deads2k
0c14e0cbdb add pull secret references to pods 2015-05-18 16:18:16 -04:00
Victor Marmol
4a1100bb66 Don't run OOM watcher is cAdvisor is not available.
Fixes #8424.
2015-05-18 12:18:12 -07:00
Victor Marmol
a7341cfb77 Merge pull request #8386 from smarterclayton/make_kubelet_consumable
Make it easier to reuse kubelet server code
2015-05-18 11:26:55 -07:00
Victor Marmol
45874d5f76 Merge pull request #5547 from gmarek/client3
Add a resource specifying number of Pods that are allowed to run on Kubelet.
2015-05-18 11:11:43 -07:00
Yu-Ju Hong
050b8ba60b Kubelet: move active deadline check to per pod worker
Per-pod workers have sufficient knowledge to determine whether a pod has
exceeded the active deadline, and they set the status at the end of each sync.
Move the active deadline check to generatePodStatus so that per pod workers
can update the pod status directly. This eliminates the possibility of a race
condition where both SyncPods and the pod worker are updating the status, which
could lead to temporary erratic pod status behavior (pod phase: failed ->
running -> failed).
2015-05-18 10:52:41 -07:00
Yu-Ju Hong
25668ccc11 Kubelet: remove the getPodstatus method
Pod statuses are periodically writtien to the status manager, and status
manager sets the start time of the pod. All non-status-modifying code should
perform cache lookup and should not attempt to generate pod status on its own.
2015-05-18 10:52:36 -07:00
Satnam Singh
26b27b5e0f Merge pull request #8374 from jimmidyson/docker-log-symlink-separator
Docker log symlinks should use underscore separator
2015-05-18 08:59:07 -07:00
Michal Fojtik
7d11e226b7 Disable 'Timestamps' in Docker logs to prevent double-timestamps 2015-05-18 12:27:19 +02:00
Clayton Coleman
1f628f2340 Bump fake docker version to emulate Docker 1.6 2015-05-16 16:10:49 -04:00
Jimmi Dyson
2d4067f1fd Fixes #8374: Underscore separator in docker log symlink 2015-05-16 19:19:27 +01:00
Yu-Ju Hong
e1a153e841 Merge pull request #8340 from dchen1107/clean
Wait for docker to start cadvisor.
2015-05-15 14:36:10 -07:00
Yu-Ju Hong
b8dd790ca1 Merge pull request #8284 from yifan-gu/rkt_fix
kubelet/rkt: Fix rkt status parsing, and resource requirement convert…
2015-05-15 14:30:48 -07:00
Yifan Gu
aa7393b55e kubelet/rkt: Fix rkt status parsing, and resource requirement convertion. 2015-05-15 13:42:36 -07:00
derekwaynecarr
8216332611 Kubelet kills a pod that exceeds ActiveDeadlineSeconds 2015-05-15 16:33:37 -04:00
Dawn Chen
85ca8506bb Wait for docker to start cadvisor. 2015-05-15 13:24:24 -07:00
Victor Marmol
43e4654333 Merge pull request #8292 from yujuhong/rm_podinfo
Remove /podInfo endpoint on kubelet
2015-05-15 08:42:02 -07:00
Victor Marmol
e7750fa0c7 Merge pull request #8274 from yujuhong/filter_terminated
kubelet: filter out terminated pods before rejecting pods
2015-05-15 08:02:44 -07:00
gmarek
27d660d0ac Add a resource specifying number of Pods that are allowed to run on Kubelet. 2015-05-15 10:57:46 +02:00
Victor Marmol
296152ec6d Merge pull request #8281 from dchen1107/cleanup
OOM protected docker processes (-900)
2015-05-14 18:26:30 -07:00
Yu-Ju Hong
4b40db3367 Remove /podInfo endpoint on kubelet
Kubelet sends pod status updates to the API server now. This endpoint is no
longer needed.
2015-05-14 17:51:26 -07:00
Dawn Chen
ebbb130af8 OOM protected docker processes (-900) 2015-05-14 15:49:12 -07:00
Victor Marmol
353f304433 Merge pull request #8228 from yifan-gu/rkt_image_cat
kubelet/rkt: Add getImageManifest()
2015-05-14 13:32:52 -07:00
Yu-Ju Hong
a2d04a84de kubelet: filter out terminated pods before rejecting pods
Currently, kubelet doesn't filter out terminated pods before determining whether
a pod fits. This could lead to duplicated events for rejecting the pods. This
change fixes that.

This change also groups all related pod fitness checking functions into one
function to improve readability.
2015-05-14 13:02:36 -07:00
Yifan Gu
daf7c8d686 kubelet/rkt: Use RunContainerOptions to get the arguments. 2015-05-14 12:03:11 -07:00
Yifan Gu
2a87d56171 kubelet/rkt: Add getImageManifest() to retrive the image manifest for container. 2015-05-14 12:03:11 -07:00
Rohit Jnagal
532f6fdcef Merge pull request #7955 from hurf/refactor_scheduler
Move pkg/scheduler to plugin/pkg/scheduler
2015-05-14 10:28:52 -07:00
Dawn Chen
309a157665 Merge pull request #7984 from cjcullen/kubelet
Kubelet configure cbr0 instead of configure-vm.sh
2015-05-13 17:32:52 -07:00
Victor Marmol
67eab52b9e Merge pull request #8146 from yifan-gu/runtime_opt
kubelet/container: Refactor RunContainerOptions.
2015-05-13 11:09:56 -07:00
Yifan Gu
2617cb26b8 kubelet/container: Add tests for kubelet.makePortMappings(). 2015-05-13 10:01:01 -07:00
Yifan Gu
d164ac0ba0 kubelet/container: Refactor RunContainerOptions.
Make Envs, Mounts, PortMappings more generic.
Also add default name for PortMapping if it's not specified.
2015-05-13 10:01:00 -07:00
Victor Marmol
67d576cf48 Merge pull request #8161 from rjnagal/rc
Use non-root available space to trigger out-of-disk events.
2015-05-13 08:07:37 -07:00
hurf
6203ce9f85 Move pkg/scheduler to plugin/pkg/scheduler
As the TODO in plugin/pkg/scheduler/scheduler.go described:

move everything from pkg/scheduler into this package. Remove
references from registry.
2015-05-13 14:03:25 +08:00
CJ Cullen
31ea7d1295 Put cbr0-modifying stuff behind a flag. Address some other comments. 2015-05-12 23:00:28 -07:00
CJ Cullen
5e3d2b9138 Kubelet configure cbr0 instead of configure-vm.sh 2015-05-12 23:00:12 -07:00
Rohit Jnagal
7a2add5e0a Use non-root available space to trigger out-of-disk events. 2015-05-13 05:46:03 +00:00
Brendan Burns
3f49c556e6 Second try at implementing prestop. 2015-05-12 17:17:03 -07:00
Victor Marmol
40ec627cd4 Merge pull request #8108 from rjnagal/kubelet
Handle out of disk situation on kubelet.
2015-05-12 15:49:31 -07:00
Victor Marmol
3481db8aee Merge pull request #8136 from yifan-gu/runtime_opt
kubelet/container: Remove ipcMode and netMode from  RunContainerOptions.
2015-05-12 14:41:49 -07:00
Yifan Gu
a2dac158c2 kubelet/container: Remove ipcMode and netMode from RunContainerOptions.
Since createPodInfraContainer() is moved into dockertools. There is no
need to pass the ipcMode or netMode via RunContainerOptions.
2015-05-12 14:18:00 -07:00
Paul Morie
6ac55002d8 Improve kubelet test for env vars 2015-05-12 17:14:32 -04:00
Rohit Jnagal
fab980598a Merge pull request #8122 from vmarmol/docker-container
Run Docker Daemon in a Resource-only Container
2015-05-12 13:16:05 -07:00
Vish Kannan
a74522a738 Merge pull request #8011 from brendandburns/exec
Switch exec to look at exit code not output status.
2015-05-12 12:43:11 -07:00
Rohit Jnagal
2cf0dfb79d Handle out of disk situation on kubelets.
Kubelet will stop accepting new pods if it detects low disk space on root fs or fs holding docker images.
Running pods are not affected. low-diskspace-threshold-mb is used to configure the low diskspace threshold.
2015-05-12 18:23:09 +00:00
Victor Marmol
e1447618f4 Integrating ContainerManager into Kubelet 2015-05-12 10:13:23 -07:00
Victor Marmol
a9db69ecfa Implementation of ContainerManager
Implementation maintains a thread which ensures that the Docker daemon
is in a container.
2015-05-12 09:59:47 -07:00
Victor Marmol
0570480242 Kubelet: Add ContainerManager interface.
This component will manage containers on the machine not managed by the
runtime.
2015-05-12 09:58:21 -07:00
Rohit Jnagal
9eb01a6da1 Make SyncPodSync as the default SyncPodType.
We would like the default to be sync instead of create to easily differentiate
create operations in empty metrics map.
2015-05-12 06:25:48 +00:00
Tim Hockin
41033af256 Introduce an 'svc' segment for DNS search 2015-05-11 17:20:44 -07:00
Victor Marmol
43029345f9 Merge pull request #7973 from dchen1107/podstatus
Add kubectl log --previous support to view last terminated container log
2015-05-11 17:08:45 -07:00
Brendan Burns
fbd0143fa8 Merge pull request #7971 from deads2k/make-docker-keyring-handle-multiple-hits
make the dockerkeyring handle mutiple matching credentials
2015-05-11 17:01:37 -07:00
Victor Marmol
1465475401 Merge pull request #8079 from yifan-gu/rm_command_runner
kubelet/container: Move prober.ContainerCommandRunner to container.
2015-05-11 16:05:25 -07:00
Yifan Gu
7831b7da72 kubelet/container: Move prober.ContainerCommandRunner to container.
Also include the ContainerCommandRunner in Runtime interface, but
still keep the ContainerCommandRunner interface for testability.
2015-05-11 15:32:51 -07:00
Yu-Ju Hong
3f791db886 Kubelet: remove unused getHostFieldLabel function 2015-05-11 14:39:22 -07:00
Yu-Ju Hong
8b3130b112 Merge pull request #7980 from yifan-gu/fix_kubelet_tests
kubelet: Fix racy kubelet tests.
2015-05-11 14:09:44 -07:00
Dawn Chen
86479cc56c Add support to pull log for last terminated container 2015-05-11 12:54:04 -07:00
Yifan Gu
85b453091b kubelet: Add tests for fakePodWorkders. 2015-05-11 12:50:33 -07:00
Yifan Gu
52af792852 kubelet: Fix racy kubelet tests.
Add fakePodWorkders to run syncPod() in serial for testing.
2015-05-11 12:50:33 -07:00
Yu-Ju Hong
a9c9505206 Use VirtualSize of the docker image as the image size 2015-05-11 11:03:47 -07:00
Yu-Ju Hong
3599d81ef1 Remove some docker references 2015-05-11 11:03:47 -07:00
Yu-Ju Hong
3487a165b8 Unexport DockerManager.RunContainer 2015-05-11 11:03:41 -07:00
Nikhil Jindal
6bf5acd109 Merge pull request #8044 from pmorie/pod-volume-injection
Refactor volume interfaces to receive pod instead of ObjectReference
2015-05-11 10:11:00 -07:00
Victor Marmol
307d677e06 Merge pull request #8022 from ddysher/kubelet-privilege
Check Pod privileged container
2015-05-11 09:01:58 -07:00
deads2k
2ecb0ebd73 make the dockerkeyring handle mutiple matching credentials 2015-05-11 09:54:03 -04:00
Paul Morie
cd359ffa73 Refactor volume interfaces to receive pod instead of ObjectReference 2015-05-10 20:12:57 -04:00
Deyuan Deng
2f7183cba5 Check Pod privileged container 2015-05-09 17:30:35 -04:00
Deyuan Deng
72a563f618 Use error type from docker go-client instead of string 2015-05-09 15:20:45 -04:00
Yu-Ju Hong
d185bfd56a Record failure reason for image pulling 2015-05-08 17:37:11 -07:00
Brendan Burns
c9324e6e38 Switch exec to look at exit code not output status. 2015-05-08 16:51:37 -07:00
Yifan Gu
7e9ba26103 kubelet: Add container runtime option for rkt. 2015-05-07 23:39:37 -07:00
Yifan Gu
8b1174a3a7 kubelet/container: Move pty*.go to container runtime package.
This makes the labeld pty wrapper available for both container runtime.
2015-05-07 23:36:47 -07:00
Victor Marmol
65bd04fc51 Merge pull request #7916 from yifan-gu/rkt_rm_label
kubelet/rkt: Remove build label.
2015-05-07 16:24:32 -07:00
Victor Marmol
5074e98ee9 Merge pull request #7910 from yujuhong/hostname
Use the full hostname for mirror pod name.
2015-05-07 14:43:16 -07:00
Yifan Gu
41f8c79490 kubelet/rkt: Remove build label.
As we removed the linux specific dependency, now rkt can be built
on other platforms as well.
2015-05-07 13:42:05 -07:00
Victor Marmol
ecf8348609 Revert "kubelet: Add container runtime option for rkt." 2015-05-07 13:01:37 -07:00
Yu-Ju Hong
ab5e0e0b5c Use the full hostname for mirror pod name.
This change appends the full hostname to the mirror pod name (instead of taking
the first token) so that if the hostname is overriden, we'd not be creating
unncessary name conflicts. An example would be that a user overrides the
hostnames to be "127.0.0.1" and "127.0.0.2", and both of them were resolved to
"127" for the mirror pod name suffix.

Also, because `uname -n` could return a FQDN or not, this change takes only
the first token of it as the hostname for consistency.
2015-05-07 12:59:49 -07:00
Yifan Gu
4f6535ed8a kubelet: Add container runtime option for rkt. 2015-05-07 10:31:58 -07:00
Victor Marmol
35c644a45f Merge pull request #7870 from yifan-gu/rkt_volume
Add volumeGetter to rkt.
2015-05-07 08:58:00 -07:00
Wojciech Tyczynski
e26da316dc Set NodeReady=False when docker is dead 2015-05-07 09:30:25 +02:00
Yifan Gu
a8f86da35b kubelet/rkt: Add volumeGetter to rkt.
This enable rkt to fetch the volume mounts by the kubelet.
2015-05-06 19:30:33 -07:00
Victor Marmol
f6b7029475 Merge pull request #7859 from yifan-gu/rkt_remove_store
kubelet/rkt: Remove dependencies on rkt.store
2015-05-06 17:45:29 -07:00
Yifan Gu
8715c54bd3 kubelet/container: Move kubelet.volumeMap to container.VolumeMap.
This is a quick fix to solve circular dependency problem when
rkt references volume maps.
2015-05-06 16:50:57 -07:00
Victor Marmol
d6ea33fbb5 Merge pull request #7849 from yifan-gu/rkt_components
kubelet/rkt: Inject dependencies to rkt.
2015-05-06 16:00:02 -07:00
Yifan Gu
8cbe8938c9 kubelet/rkt: Remove getImageID().
Replace getImageID() with getImageByName(), this can remove the
dependency on rkt.store.
2015-05-06 15:59:31 -07:00
Paul Morie
df08b15121 Change signature of container runtime PullImage to allow pull w/ secret 2015-05-06 17:42:03 -04:00
Yifan Gu
dee060c8fd kubelet/rkt: Inject dependencies to rkt.
Add necessary components rkt.
2015-05-06 11:28:01 -07:00
Prashanth B
da42f13941 Merge pull request #7749 from yujuhong/stale_cache
Kubelet: record the timestamp correctly in the runtime cache
2015-05-06 09:20:30 -07:00
Victor Marmol
b4ae750e5d Merge pull request #7830 from rhcarvalho/fix-metric-label
Fix metric label
2015-05-06 09:08:29 -07:00
Rodolfo Carvalho
075ae79826 Fix metric label
Signed-off-by: Rodolfo Carvalho <rcarvalh@redhat.com>
2015-05-06 10:29:50 +02:00
Jerzy Szczepkowski
4d655e3fcf Merge pull request #7803 from yifan-gu/rkt_docker_image
kubelet/rkt: Add docker prefix to image string.
2015-05-06 09:22:50 +02:00
Yu-Ju Hong
c075719f05 Kubelet: fix the runtime cache to not cache the stale pods
If a pod worker sees stale pods from the runtime cache which were retrieved
before their last sync finished, it may think that the pod were not started
correctly, and attemp to fix that by killing/restarting containers.
There are two issues that may cause runtime cache to store stale pods:
  1. The timstamp is recorded *after* getting the pods from the container
     runtime. This may lead the consumer to think the pods are newer than they
     actually are.
  2. The cache updates are triggered by many goroutines (pod workers, and the
     updating thread). There is no mechanism to enforece that the cache would
     only be updated to newer pods.

This change fixes the above two issues by making sure one always record the
timestamp before getting pods from the container runtime, and updates the
cached pods only if the timestamp is newer.
2015-05-05 18:28:38 -07:00
Zach Loafman
875e83a741 Revert "Revert "Security context - types, kubelet, admission"" 2015-05-05 16:02:13 -07:00
Zach Loafman
3fcea23185 Revert "Revert "Revert "Kubelet: Add rkt as a runtime option""" 2015-05-05 15:55:12 -07:00
Yifan Gu
ec68f1a85a kubelet/rkt: Add docker prefix to image string.
This change makes rkt to run only docker image for now,
which enables us to test with all existing pods.
2015-05-05 15:41:13 -07:00
Zach Loafman
92ca92f43a Revert "Revert "Kubelet: Add rkt as a runtime option"" 2015-05-05 15:28:09 -07:00
Zach Loafman
f48904fd5e Revert "Security context - types, kubelet, admission" 2015-05-05 15:20:39 -07:00
Zach Loafman
6016408096 Revert "Kubelet: Add rkt as a runtime option" 2015-05-05 15:15:15 -07:00
Yu-Ju Hong
b2c0ea37b4 Merge pull request #7743 from vmarmol/runtime-switch
Kubelet: Add rkt as a runtime option
2015-05-05 13:36:46 -07:00
Paul Morie
1625e231dd Merge pull request #7343 from pweil-/security-context-types
Security context - types, kubelet, admission
2015-05-05 16:26:09 -04:00
Victor Marmol
9f283f356f Start ImageManager housekeeping in Run().
Fixes #7762
Fixes #5634
2015-05-05 11:15:12 -07:00
Victor Marmol
22297d316a Add rkt runtime to Kubelet init 2015-05-05 10:55:21 -07:00
Victor Marmol
5d0e5d7d61 Inject dependencies to rkt 2015-05-05 10:55:11 -07:00
Paul Weil
982bf19c20 security context initial implementation - squash 2015-05-05 13:46:13 -04:00
Yu-Ju Hong
a7dadfcc97 Merge pull request #7752 from vmarmol/rkt-compile
Add build labels to rkt
2015-05-05 09:26:59 -07:00
Victor Marmol
d84aac6498 rkt: Unexport runtime, use Runtime interface 2015-05-04 17:28:02 -07:00
Victor Marmol
f012d7f506 Add unsupported version of rkt. 2015-05-04 17:22:45 -07:00
Robert Bailey
5fe07e69b7 Merge pull request #7725 from pmorie/typo
Fix typo in runtime_cache.go
2015-05-04 17:03:42 -07:00
Brian Grant
df8521c468 Merge pull request #7592 from pmorie/dapi-example
Rename EnvVarSource.FieldPath -> FieldRef and add example
2015-05-04 17:02:17 -07:00
Victor Marmol
de2212983f Refactor rkt into one file.
This will make it easy to add build labels and stub out in non-Linux
builds.
2015-05-04 16:51:31 -07:00
Victor Marmol
fe7cb95be6 Merge pull request #7746 from vishh/exec_fix
Fix kubelet's docker RunInContainer implementation
2015-05-04 16:49:57 -07:00
Victor Marmol
a32d31d045 Merge pull request #7729 from yujuhong/runtime_up
Kubelet: wait until container runtime is up
2015-05-04 16:02:30 -07:00
Vishnu Kannan
ec01265643 Fix docker exec logic. Without this patch, kubelet was not receiving any output from docker exec
and was incorrectly handling the output.
2015-05-04 16:01:32 -07:00
Paul Morie
e949a623ff Change EnvVarSource.FieldPath -> FieldRef and add example 2015-05-04 18:41:09 -04:00
Yu-Ju Hong
d231eb6bef Kubelet: wait until container runtime is up
Instead of waiting for the docker client to be up, we wait for the container
runtime to be up.
2015-05-04 15:16:38 -07:00
Victor Marmol
b0129089da Merge pull request #7712 from rjnagal/kubelet
Expose pod name as a label on containers.
2015-05-04 14:52:16 -07:00
Rohit Jnagal
1511dbf0b5 Expose pod name as a label on containers.
Full pod name is exposed under key 'kubernetes.io/pod'.
It helps in introspection by looking at all containers in a pod through
docker ps -a -f label=kubernetes.io/pod=podXXX

We also plan to visualize this in cAdvisor.
2015-05-04 21:20:42 +00:00
Paul Morie
d90689bb71 Fix typo in runtime_cache.go 2015-05-04 16:33:48 -04:00
Victor Marmol
ba7e940a57 Make rkt implement the container Runtime 2015-05-04 11:16:33 -07:00
Victor Marmol
e44d9df0f4 Changes to rkt's PortForward to match Runtime API. 2015-05-04 11:16:33 -07:00
Victor Marmol
79fc8bee34 Change GetContainerLogs() signature.
This works for both runtimes. We need to eventually unify the ID scheme
for this method.
2015-05-04 11:16:32 -07:00
Victor Marmol
60a77221f5 Add dummy ListImages and RemoveImage to rkt runtime. 2015-05-04 11:14:54 -07:00
Victor Marmol
2ad933e124 Merge pull request #7674 from yujuhong/enable_runtime
Kubelet: replace DockerManager with the Runtime interface
2015-05-04 11:10:20 -07:00
Yu-Ju Hong
1ad4dd7803 Kubelet: replace DockerManager with the Runtime interface
This change instructs kubelet to switch to using the Runtime interface. In order
to do it, the change moves the Prober instantiation to DockerManager.

Note that most of the tests in kubelet_test.go needs to be migrated to
dockertools. For now, we use type assertion to convert the Runtime interface to
DockerManager in most tests.
2015-05-04 10:19:46 -07:00
Paul Morie
b538642464 Inject mounter into volume plugins 2015-05-04 11:28:57 -04:00
Daniel Smith
4a6ab7fd36 Merge pull request #7597 from eparis/copyright
Use generic copyright holder name in license boilerplate
2015-05-01 17:01:39 -07:00
Victor Marmol
c5a86387a4 Merge pull request #7657 from yujuhong/docker_runtime
Removes RunPod in the Runtime interface
2015-05-01 16:09:44 -07:00
Yu-Ju Hong
ae1b24f07f Merge pull request #7652 from vmarmol/runtime-switch
Kubelet: Add container runtime option.
2015-05-01 14:50:30 -07:00
Eric Paris
6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Yu-Ju Hong
4fe3366b04 Removes RunPod in the Runtime interface
SyncPod subsumes RunPod, so the latter is no longer needed.
After this change, DockerManager implements the Runtime interface.
2015-05-01 14:47:04 -07:00
Victor Marmol
d9d61c3511 Kubelet: Add container runtime option. 2015-05-01 14:26:54 -07:00
Yifan Gu
1b77615deb kubelet/rkt: Add SyncPod() to rkt. 2015-05-01 13:02:05 -07:00
Victor Marmol
3b9eba2c1b Add SyncPod() to DockerManager and use in Kubelet.
This allows us to abstract away the logic of syncing a pod by the
runtime. It will allow other runtimes to perform their own sync as well.
2015-05-01 11:03:08 -07:00
Victor Marmol
bb8ee5b0db Add lifecycle tests from kubelet_test to lifecycle. 2015-05-01 11:02:10 -07:00
Victor Marmol
7a737892f5 Extract out interface for GetPods().
This will remove the circular import with dockertools for
DockerManager. Eventually, this will be Runtime.
2015-05-01 11:02:10 -07:00
Vish Kannan
cadfde0bd1 Merge pull request #7277 from guenter/cgroup-parent
Add --cgroup_parent flag to Kubelet to set the parent cgroup for pods
2015-05-01 10:24:58 -07:00
Yu-Ju Hong
f74fab4e56 Merge pull request #7603 from vmarmol/runtime-syncpod-api
Add SyncPod() and remove Kill/Run InContainer().
2015-05-01 09:41:50 -07:00
Victor Marmol
6316b485ad Add SyncPod() and remove Kill/Run InContainer().
SyncPod allows us to abstract away how a pod is started and updated. It
also simplifies what the runtime has to implement.
2015-05-01 00:32:29 -07:00
Yifan Gu
3751ecc766 kubelet/container: Move ShouldContainerBeRestarted() to runtime. 2015-04-30 22:55:25 -07:00
Yifan Gu
428652bdc7 kubelet/rkt: Add KillPod() and GetPodStatus() for rkt. 2015-04-30 18:32:32 -07:00
Victor Marmol
03b5c32576 Merge pull request #7553 from yifan-gu/rkt_runner
kubelet/rkt: Add RunInContainer()/ExecInContainer()/PortForward().
2015-04-30 18:31:08 -07:00
Yifan Gu
9ce568a142 kubelet/rkt: Add GetPods() for rkt. 2015-04-30 18:00:18 -07:00
Yifan Gu
1636fd2e1c kubelet/rkt: Add RunPod() for rkt. 2015-04-30 17:31:35 -07:00
Yifan Gu
2e4be0bcf1 kubelet/rkt: Add RunInContainer()/ExecInContainer()/PortForward(). 2015-04-30 17:25:16 -07:00
Victor Marmol
262c34e7db Merge pull request #7543 from yifan-gu/pod_manifest
kubelet/rkt: Add routines for converting kubelet pod to rkt pod.
2015-04-30 17:18:19 -07:00
Victor Marmol
3235799595 Merge pull request #7601 from yujuhong/kill_container
Add KillContainerInPod in DockerManager
2015-04-30 17:05:00 -07:00
Victor Marmol
df8490f52f Merge pull request #7555 from yifan-gu/rkt_pod_info
kubelet/rkt: Add podInfo.
2015-04-30 17:04:51 -07:00
Yu-Ju Hong
b37f23f1eb Add KillContainerInPod in DockerManager
This changes adds one of the functions that DockerManager needs to implement
the Runtime interface.
2015-04-30 16:23:39 -07:00
Victor Marmol
441a4e6f30 Merge pull request #7578 from yujuhong/docker_manager
Add image-related methods to DockerManager
2015-04-30 16:16:39 -07:00
Victor Marmol
a94aeb27fa Merge pull request #7586 from yujuhong/container_info
Remove more docker references in kubelet
2015-04-30 16:16:23 -07:00
Yifan Gu
7e8afc7c96 kubelet/rkt: Add routines for converting kubelet pod to rkt pod. 2015-04-30 15:24:47 -07:00
Victor Marmol
0e89d65563 Merge pull request #7545 from yifan-gu/getlog
Getlog
2015-04-30 15:15:44 -07:00
Victor Marmol
57cc1218ca Merge pull request #7549 from yifan-gu/rkt_gc
Rkt gc
2015-04-30 15:15:07 -07:00
Alex Robinson
f3352d96e6 Merge pull request #7595 from a-robinson/typo
Fix typo in kubelet prober code
2015-04-30 14:42:18 -07:00
Yifan Gu
01841a8c19 kubelet/rkt: Add podInfo.
podInfo reprensents the state of rkt pods.
It is used to for reporting the pod and container status to kubelet.
2015-04-30 14:39:10 -07:00
Yu-Ju Hong
644ec0dbfb Remove ErrNoKubeletContainers
We no longer use it.
2015-04-30 13:35:21 -07:00
Yu-Ju Hong
83c599e4d4 Add image-related methods to DockerManager
This change is part of the efforts to make DockerManager implement the Runtime
interface.

The change also modifies the interface slightly to work with existing
code, and aggregates the type converting functions to convert.go.
2015-04-30 13:27:52 -07:00
Alex Robinson
faa3292bb3 Fix typo in kubelet prober code. 2015-04-30 13:17:10 -07:00
Yu-Ju Hong
2f7b951140 Remove more docker references in kubelet
This change also renames TrimRuntimePrefixFromImage to TrimRuntimePrefix to
better reflect that the usage is not limited to images (e.g. ID).
2015-04-30 13:16:11 -07:00
Victor Marmol
2c381a6f6f Merge pull request #7550 from yifan-gu/rkt_pull
Rkt pull
2015-04-30 13:09:14 -07:00
CJ Cullen
015c0656a6 Merge pull request #7568 from yujuhong/rm_getcontainers
Remove GetContainers from Runtime interface
2015-04-30 12:01:58 -07:00
Yu-Ju Hong
11be6811b3 Merge pull request #7563 from vmarmol/runtime-pre
Move lifecycle handlers to their own subpackage
2015-04-30 11:22:58 -07:00
Clayton Coleman
d03b5299f9 Merge pull request #7432 from piosz/termination_notice
Added TerminationGracePeriod field to PodSpec and grace-period flag to kubectl stop
2015-04-30 13:55:51 -04:00
Tobi Knaup
b96c4046a8 Add --cgroup_root flag to Kubelet to set the parent cgroup for all pods.
Implements #6991.
2015-04-30 10:32:27 -07:00
Yifan Gu
ca4643ef31 kubelet/rkt: Add GetContainerLogs() for rkt. 2015-04-30 10:31:31 -07:00
Yifan Gu
488f49a216 kubelet/rkt: Add GarbageCollection to rkt runtime. 2015-04-30 10:29:38 -07:00
Yifan Gu
01693c8233 kubelet/rkt: Add PullImage()/IsImagePresent() to rkt runtime. 2015-04-30 10:01:24 -07:00
Yu-Ju Hong
176fc9b9c6 Remove GetContainers from Runtime interface
This function is no longer considered needed.
2015-04-30 09:33:23 -07:00
Yu-Ju Hong
de32785e2e Merge pull request #7532 from vmarmol/runtime-images
Add image-related methods to Runtime interface.
2015-04-30 09:30:59 -07:00
Piotr Szczesniak
11a2dc496f Added TerminationGracePeriod field to PodSpec and grace-period flag to kubectl stop
Those are changes which touch users required by Termination Notice

Addresses #6804
2015-04-30 18:00:33 +02:00
Victor Marmol
238b3c6f4e Move lifecycle handlers to its own sub package.
This will allow injecting it into the runtimes.
2015-04-30 08:47:23 -07:00
Victor Marmol
4db5127073 Make HttpGetter a shared Kubelet type. 2015-04-30 08:47:23 -07:00
Victor Marmol
037295ac4c Merge pull request #7533 from yujuhong/get_containers
Clean up dockertools/manager.go and add more unit tests
2015-04-30 08:38:27 -07:00
Victor Marmol
946dac4f7c Merge pull request #7465 from yifan-gu/split_rkt
kubelet/rkt: Add basic rkt runtime routines.
2015-04-30 08:37:24 -07:00
Victor Marmol
0a6584cafe Merge pull request #7487 from njuicsgz/master
readinessProbe calls livenessProbe.Exec.Command which cause "invalid memory address or nil pointer dereference".
2015-04-30 08:36:54 -07:00
Yu-Ju Hong
baaea11cd5 Merge pull request #7520 from vmarmol/runtime-pull
Add RuntimeHooks to abstract Kubelet logic
2015-04-30 08:33:19 -07:00
Gao Zheng
95f2d1378f change probe.runner to probe.Runner as based 2015-04-30 10:36:38 +08:00
Gao Zheng
74975eff03 Fixes issue #7352
readinessProbe calls livenessProbe.Exec.Command which cause
"invalid memory address or nil pointer dereference".
2015-04-30 10:19:49 +08:00
Yu-Ju Hong
919d78281f Clean up dockertools/manager.go and add more unit tests.
This change refactors the GetPods function and add some basic unit tests.
We should start migrating docker specific tests from kubelet_test to
manager_test.go.
2015-04-29 18:32:52 -07:00
Victor Marmol
090d0c95fa Remove ImagePull metric in Kubelet.
There is an equivalent metric from our Docker metrics and this one is
harder to maintain with the RuntimeHooks.
2015-04-29 17:12:03 -07:00
Yifan Gu
305345efe1 kubelet/rkt: Add basic rkt runtime routines. 2015-04-29 17:09:32 -07:00
Victor Marmol
2a01a2c7e9 Use RuntimeHooks in Kubelet.
Used in functionality that will be moved to the runtimes.
2015-04-29 17:06:49 -07:00
Victor Marmol
61d51243c5 Add RuntimeHooks interface and Kubelet implementation.
This interface will be used to inject functionality and logic into the
runtimes that should be shared accross runtimes.
2015-04-29 17:06:49 -07:00
Yu-Ju Hong
d81ecc58f8 Adapt pod killing and cleanup for generic container runtime
This change removes docker-specifc code in killUnwantedPods. It
also instructs the cleanup code to move away from interacting with
containers directly. They should always deal with the pod-level
abstraction if at all possible.
2015-04-29 16:08:09 -07:00
Yu-Ju Hong
ba1140a54f Merge pull request #7480 from vmarmol/runtime-syncpod
Move ComputePodChanges to the Docker runtime
2015-04-29 16:05:20 -07:00
Victor Marmol
4d09b79529 Add image-related methods to Runtime interface.
This includes RemoveImage() and ListImages().
2015-04-29 16:00:36 -07:00
Victor Marmol
293828c93c Merge pull request #7515 from brendandburns/kubelet
Fix YAML parsing for v1beta3 objects in the kubelet for file/http
2015-04-29 14:31:49 -07:00
Victor Marmol
209b4fcbef Merge pull request #6718 from vishh/sys_oom1
Adding system oom events from kubelet
2015-04-29 14:29:38 -07:00
Victor Marmol
fe4600ba17 Move ComputePodChanges to DockerManager.
This logic is specific to the Docker runtime. This move is the first
step towards making syncPod() runtime-agnostic.
2015-04-29 14:00:37 -07:00
Brendan Burns
48d269e6ab Fix YAML parsing for v1beta3 objects in the kubelet for file/http 2015-04-29 11:38:36 -07:00
Vishnu Kannan
020950fd0f Adding events for system ooms.
Kubelet will continuously watch for system OOMs and generate events whenever it
encounters a system OOM.
2015-04-29 11:19:11 -07:00
Victor Marmol
f38c607285 Move Prober to its own subpackage.
This will allow it to be reused by the runtimes.
2015-04-29 10:11:28 -07:00
Yu-Ju Hong
33b8f487f6 Merge pull request #7449 from vmarmol/runtime-network-plugins
Move network plugin TearDown to DockerManager
2015-04-29 10:09:58 -07:00
Victor Marmol
02231ea75d Merge pull request #7503 from jsafrane/devel/fix-volume-rm
Fixed kubelet deleting data from volumes on stop (#7317).
2015-04-29 10:01:16 -07:00
Victor Marmol
dfadc10fcb Merge pull request #7488 from yifan-gu/get_container_logs
kubelet/container: Add GetContainerLogs to runtime interface.
2015-04-29 08:24:20 -07:00
Victor Marmol
38831237b2 Merge pull request #7477 from yifan-gu/refactor_runonce
kubelet: Refactor isPodRunning() in runonce.go
2015-04-29 08:24:09 -07:00
Jan Safranek
9b9e98a22f Fixed kubelet deleting data from volumes on stop (#7317).
We must not clear the pod directory in killUnwantedPods(), volumes are still
mounted there at this time. There already is cleanupOrphanedPodDirs(),
called later in the SyncPods() sequence, which should remove these pod
directories.
2015-04-29 10:41:19 +02:00
Yifan Gu
fb1c55aa11 kubelet/container: Add GetContainerLogs to runtime interface. 2015-04-28 20:26:16 -07:00
Yifan Gu
ba1389de3c kubelet/container: Update the runtime interface.
Make some of them (RunInContainer, ExecInContainer, etc) to have
same function signatures as current docker and rkt implementation.
2015-04-28 17:55:41 -07:00
Yifan Gu
c848fa447d kubelet: Refactor isPodRunning() in runonce.go
Replace InspectContainer() with generic GetPodStatus().
2015-04-28 17:44:13 -07:00
Victor Marmol
787d42d50b Move network plugin teardown to DockerManager.
This teardown is Docker-specific and will let us also do the setup in
the manager in future cleanups.
2015-04-28 16:58:54 -07:00
Victor Marmol
de0957ccb1 Create Kubelet types package for common shared types. 2015-04-28 16:57:45 -07:00
Vishnu Kannan
820d0f3e83 Adding a 'PastEventf' method to EventRecorder interface. This will be
useful for recording the timestamp of events that happened in the past.
2015-04-28 16:13:29 -07:00
Vishnu Kannan
2f68cddbd2 Adding events API to cadvisor interface. 2015-04-28 16:13:29 -07:00
Dawn Chen
af5d017911 Merge pull request #7386 from vmarmol/rkt-pull-image
Kubelet: Factor out and remove pullImageAndRunContainer
2015-04-28 09:28:16 -07:00
Dawn Chen
1de4c45115 Merge pull request #7401 from vmarmol/rkt-kill-pod
Kubelet: Move killPod() logic to DockerManager's KillPod()
2015-04-28 09:25:12 -07:00
Sam Ghods
5ceebb4a5f Add error message to log of docker error 2015-04-27 21:49:46 -07:00
Dawn Chen
4b79e5a3db Merge pull request #7403 from vmarmol/rkt-deps
Remove DockerPrefix references in Kubelet.
2015-04-27 19:05:43 -07:00
Victor Marmol
6b0db76e85 Move killPod() logic to DockerManager KillPod().
This moved Docker specific logic there and allows it to align with the
runtime API. There is still a pod infra container reference in the
function due to network plugins. We can handle this in the Kubelet since
we'll need to be explicit in stating that the network plugin will not
work in a non-Docker runtime.
2015-04-27 17:15:37 -07:00
Dawn Chen
5ea5fff586 Merge pull request #7391 from vmarmol/rkt-portforward
Add PortForward to runtime API.
2015-04-27 17:10:37 -07:00
Victor Marmol
42a2059a5d Remove DockerPrefix references in Kubelet.
Makes this usage generic and usable by other runtimes.
2015-04-27 15:55:13 -07:00
Victor Marmol
1d6913779b Use kubecontainer.Pod instead of api.Pod in KillPod.
We don't need the full api.Pod and the uses today use kubecontainer.Pod.
2015-04-27 15:36:06 -07:00
Victor Marmol
3082bb291c Remove pullImageAndRunContainer().
Relevant logic is now in shared helpers.
2015-04-27 15:13:11 -07:00
Victor Marmol
b232eef5f7 Move image PullPolicy logic to pullImage().
This will allow us to remove the Docker-specific logic in
pullImageAndRunContainer() and re-use pullImage() in other runtimes.
2015-04-27 15:13:11 -07:00
Dawn Chen
aa487b7cab Merge pull request #7382 from vmarmol/rkt-deps
Move Docker-specific log handling to DockerManager.
2015-04-27 15:10:14 -07:00
Victor Marmol
3a61421711 Add PortForward to runtime API. 2015-04-27 14:56:32 -07:00
Victor Marmol
7404b7019c Move Docker-specific log handling to DockerManager.
Eases the separation of Docker-specific code into the Docker-specific
runtime.
2015-04-27 13:10:10 -07:00
Brian Grant
2648ae86d6 Merge pull request #6739 from pmorie/downward-api
Env var sources / downward API
2015-04-27 12:46:00 -07:00
Paul Morie
7d30f09ebf Add downward API for environment vars 2015-04-27 14:13:11 -04:00
Victor Marmol
0c52f7b6a5 Move CreatePodInfraContainer to DockerManager.
This will allow us to start making it an implementation detail of the
Docker runtime.
2015-04-27 11:07:38 -07:00
Yifan Gu
6c98b9daee kubelet/metrics: Move instrumented_docker.go to dockertools.
This can solve the circular import problem when we move the
kubelet.pullImage to kubelet/metrics or kubelet/container package.
2015-04-24 22:03:11 -07:00
Victor Marmol
d0288f7143 Merge pull request #7301 from yujuhong/no_resurrection
Kubelet: filter out terminated pods in SyncPods
2015-04-24 16:17:06 -07:00
Yu-Ju Hong
b0e6926f67 kubelet: filter out terminated pods in SyncPods
Once a pod reaches a terminated state (whether failed or succeeded), it should
not transit out ever again. Currently, kubelet relies on examining the dead
containers to verify that the container has already been run. This is fine
in most cases, but if the dead containers were garbage collected, kubelet may
falsely concluded that the pod has never been run. It would then try to restart
all the containers.

This change eliminates most of such possibilities by pre-filtering out the pods
in the final states before sending updates to per-pod workers.
2015-04-24 15:28:03 -07:00
Victor Marmol
270d8aec8b Raise cAdvisor stats cache to 2m.
This used to be 60ns which was a bug from when we switched from number
of stats to duration. Seems like the type was silently
converted/ignored.
2015-04-24 14:44:13 -07:00
Brian Grant
60d7bad147 Merge pull request #7128 from nikhiljindal/fixbeta1tests
Removing more references to v1beta1 from pkg/
2015-04-24 11:07:53 -07:00
nikhiljindal
dcc368c781 Removing more references to v1beta1 from pkg/ 2015-04-24 00:45:17 -07:00
Yifan Gu
b5a1b32aa4 kubelet/dockertools: Move RunContainer into container runtime.
Also removed ContainerRunner interface.
2015-04-23 16:40:37 -07:00
Yifan Gu
6ed27d06f7 kubelet: Move KillContainer to container runtime.
Rename KillContainerID(string) with KillContainer(string).
Delete the old KillContainer(*kubecontainer.Container).
2015-04-23 15:44:00 -07:00
David Oppenheimer
8667ebddff Merge pull request #7249 from yifan-gu/generator
kubelet/container: Introduce RunContainerOptionsGenerator.
2015-04-23 14:59:23 -07:00
Dawn Chen
6207c518b3 Merge pull request #7254 from yifan-gu/readiness
kubelet/dockertools: Add readinessManage/containerRefManager to dockerManager.
2015-04-23 14:34:43 -07:00
Yifan Gu
e8d485a3a1 kubelet/dockertools: Add readinessManage/containerRefManager to dockerManager.
This can enable us to move KillContainer() to container runtime.
2015-04-23 14:20:34 -07:00
Yifan Gu
bd7132bc07 kubelet/container: Introduce RunContainerOptionsGenerator.
This interface wraps the kubelet to provide the options for
container runtime to run a container.
2015-04-23 13:55:50 -07:00
Dawn Chen
f7831dcd93 Merge pull request #7229 from vmarmol/stats
Kubelet: Add /stats/container endpoint for raw containers
2015-04-23 13:43:23 -07:00
Yifan Gu
de6e81fb4a kubelet/container: Add Pull() and IsImagePresent() to runtime interface. 2015-04-23 11:58:51 -07:00
Victor Marmol
15e2a7fe38 Merge pull request #7200 from yifan-gu/containerID
Introduce container ID type.
2015-04-23 11:33:32 -07:00
Yifan Gu
afb9a896cb Introduce container ID type. 2015-04-23 10:43:27 -07:00
Victor Marmol
c29d328c55 Kubelet: Add /stats/container endpoint.
This endpoint exposes container stats for all raw containers on the
machine. The addition is backwards compatible.
2015-04-23 10:38:29 -07:00
Yifan Gu
af1e9f737f kubelet: Introduce volume manager.
The volume manager book-keeps the information for the volume mounts
on the kubelet, so we can avoid passing the volumeMap around.
2015-04-23 10:37:02 -07:00
Victor Marmol
e2f37f81a9 Add SubcontainerInfo() to cAdvisor API.
Returns information about a container and its subcontainers.
2015-04-23 10:20:05 -07:00
Dawn Chen
f9156c281a Merge pull request #7123 from satnam6502/logging
Propagate pod and container name for log files
2015-04-23 10:13:08 -07:00
Victor Marmol
de6d5cc165 Add RunInContainer/ExecInContainer to container Runtime API. 2015-04-22 18:09:24 -07:00
Satnam Singh
2444c1f943 Propagate pod and container name for log files 2015-04-22 15:08:51 -07:00
Victor Marmol
45575d95b3 Merge pull request #7177 from yifan-gu/runner
kubelet/dockertools: Remove dockerContainerCommandRunner.
2015-04-22 13:24:50 -07:00
Yifan Gu
f59013410a kubelet/container: Move Prober/HandlerRunner interface to container/helpers.go
This enables us to pass them to container runtime as parameters.
2015-04-22 11:56:15 -07:00
Yifan Gu
c55c879ffe kubelet/dockertools: Remove dockerContainerCommandRunner.
Replace with docker manager.
2015-04-22 11:00:54 -07:00
Victor Marmol
1a41ec9c86 Merge pull request #7116 from yujuhong/container_status
Print container statuses in `kubectl get pods`
2015-04-22 09:18:14 -07:00
Victor Marmol
914a6febfb Merge pull request #7010 from yifan-gu/compute
kubelet: Refactor computePodContainerChanges().
2015-04-22 08:05:18 -07:00
Brian Grant
8dbbf3da5c Merge pull request #7138 from pravisankar/unschedulable-event
Record an event on node schedulable changes
2015-04-22 07:11:14 -07:00
Dawn Chen
a666c1e731 Merge pull request #7134 from yifan-gu/version
kubelet: Refactor GetDockerVersion().
2015-04-21 16:49:45 -07:00
Yu-Ju Hong
06125f37d3 Print container statuses in kubectl get pods
`kubectl get pod` already prints one container per line. This change fills in
the status for each container listed. This aims to help users quickly identify
unhealthy pods (e.g. in a crash loop) at a glance.

 - The first row of every pod would display the pod information and status
 - Each row of the subsequent rows corresponds to a container in that pod:
    * STATUS refers to the container status (Running, Waiting, Terminated).
    * CREATED refers to the elapsed time since the last start time of the
      container.
    * MESSAGE is a string which explains the last termination reason, and/or
      the reason behind the waiting status.
2015-04-21 15:42:18 -07:00
Derek Carr
cf27fd12c1 Merge pull request #6278 from akram/fix_port_forward_listner_parsing_ipv4_ipv6
Fixes an issue with hosts having an IPv6 address on localhost
2015-04-21 18:04:02 -04:00
Yifan Gu
611fb25926 kubelet: Refactor GetDockerVersion().
Remove GetDockerServerVersion() from DockerContainerCommandRunner interface,
replaced with runtime.Version(). Also added Version type in runtime for version
comparision.
2015-04-21 14:52:08 -07:00
Ravi Sankar Penta
f1d88f6d2f Record an event on node schedulable changes 2015-04-21 14:14:59 -07:00
Yifan Gu
5594981340 kubelet: Refactor computePodContainerChanges().
Pull generatePodStatus() and makePodDataDirs() out as they are the
common part for container runtimes.
2015-04-21 13:53:20 -07:00
derekwaynecarr
3445bd5806 Fixup event object reference generation to allow downstream objects to have an event 2015-04-21 15:31:38 -04:00
Akram Ben Aissi
b7fc22be8a Fixes an issue with hosts having an IPv6 address on localhost
- When 'getent hosts localhost' returns '::1' the creation of the
  listener fails because of the port parsing which uses ":" as a
separator
- Use of net.SplitHostPort() to do the job
- Adding unit tests to ensure that the creation succeeds
- On docker.go: adds a test on the presence the socat command which was
  failing silenty if not installed

- Code Review 1
  - Fixed typo on Expected
  - The UT now fails if the PortForwarder could not be created

- Code Review 2
  - Simplify socat error message
  - Changing t.Fatal to to.Error on unit tests

- Code Review 3
  - Removing useless uses cases in unit tests

- Code Review 4
  - Removing useless initiliasiation of PortForwarder
  - Changing error message

- Code Review 5
  - Simplifying TestCast struct
  - Adding addition test in one test case
  - Closing the listener

- Code Review 6
  - Improving unit test
2015-04-21 20:16:22 +02:00
Victor Marmol
4b9a64bcd8 Merge pull request #7098 from yifan-gu/handler
kubelet: Refactor runHandler().
2015-04-21 08:14:42 -07:00
Yifan Gu
c23b83b0ca kubelet: Refactor runHandler().
Use new HandlerRunner type to replace runHandler()
2015-04-20 21:31:11 -07:00
Daniel Smith
462534ca5d Merge pull request #7068 from krousey/api_pod_pointer
Changing  a few more instances of api.Pod to *api.Pod
2015-04-20 17:09:28 -07:00
Kris Rousey
594f514843 Changing a few remaining instances of passing pods around by value. I
avoided changing api.PodList.Items to []*api.Pod.
2015-04-20 15:26:45 -07:00
Victor Marmol
d44e9b4880 Merge pull request #7048 from yujuhong/para_cleanup
Kubelet: parallelize cleaning up containers in unwanted pods
2015-04-20 14:59:07 -07:00
Yu-Ju Hong
275002173e Kubelet: parallelize cleaning up containers in unwanted pods
Kubelet kills unwanted pods in SyncPods, which directly impact the latency of a
sync iteration. This change parallelizes the cleanup to lessen the effect.

Eventually, we should leverage per-pod workers for cleanup, with the exception
of truly orphaned pods.
2015-04-20 14:42:12 -07:00
Brendan Burns
01b891770f Merge pull request #7054 from ncdc/dockerclient-version
Use go-dockerclient's APIVersion
2015-04-20 14:20:57 -07:00
Andy Goldstein
a0a80ea76e Use go-dockerclient's APIVersion
Use go-dockerclient's APIVersion to check the minimum required Docker
version, as it contains methods for parsing the ApiVersion response from
the Docker daemon and for comparing 2 APIVersion objects.
2015-04-20 13:48:18 -04:00
Yu-Ju Hong
cd61aa9484 Merge pull request #7009 from yifan-gu/kube_dep
kubelet: Refactor prober.
2015-04-20 10:23:04 -07:00
Victor Marmol
cf27de61c6 Merge pull request #7035 from smarterclayton/turn_down_kubelet_for_what
Tone down kubelet logs for already run containers
2015-04-20 08:05:25 -07:00
Xiang Li
2f2247dae3 pkg/kubelet: no more self receiver in kubelet pkg 2015-04-19 20:26:07 -07:00
Clayton Coleman
9e87924983 Tone down kubelet logs for already run containers 2015-04-19 22:55:38 -04:00
Yifan Gu
1d58992df7 kubelet: Refactor prober.
Decompose the health check prober from the kubelet.
2015-04-17 15:54:28 -07:00
Yu-Ju Hong
1f3e47f6f7 Merge pull request #7005 from yifan-gu/kube_dep
kubelet: Refactor shouldContainerBeRestarted():
2015-04-17 15:05:41 -07:00
Yifan Gu
29a5da231d kubelet: Refactor shouldContainerBeRestarted():
Remove the function's dependency on kubelet.
2015-04-17 14:35:39 -07:00
Kris Rousey
81497f3ed2 Changing the scheduler package to use *api.Pod instead of api.Pod to
avoid unnecessary shallow copies. The change rippled through a lot of
code.
2015-04-17 13:34:31 -07:00
Yu-Ju Hong
26a70a52e6 Merge pull request #6843 from xiang90/cleanup
pkg/kubelet: clean up pod manager
2015-04-17 11:27:14 -07:00
Yu-Ju Hong
13b29cd64b Merge pull request #6595 from guenter/kubelet-update-channel-closed
kubelet syncloop should stop if/when updates chan closes
2015-04-17 10:42:05 -07:00
Xiang Li
28c1726232 pkg/kubelet: minor cleanup in pod_manager.go 2015-04-17 10:24:38 -07:00
Xiang Li
864f9b4a8a pkg/kubelet: drop unnecessary receiver in pod_manager.go 2015-04-17 10:24:38 -07:00
Xiang Li
ede4fb4a37 pkg/kubelet: remove unnecessary wrapper code in pod_manager.go 2015-04-17 10:24:38 -07:00
Dawn Chen
fa4363d493 Merge pull request #6924 from yujuhong/data_race
Fix data race in kubelet_test.go
2015-04-16 11:56:40 -07:00
Yu-Ju Hong
2fd87597a4 Fix data race in kubelet_test.go
Ensure that FakeDockerClient make a copy of the internal list and return it.
2015-04-16 11:36:10 -07:00
Victor Marmol
abab9ea31f Merge pull request #6844 from yifan-gu/cleankube
kubelet: Clean up computePodContainerChanges.
2015-04-15 13:53:21 -07:00
Yu-Ju Hong
967405f0bb Fix locking issue in pod manager 2015-04-15 11:39:57 -07:00
Victor Marmol
902e1196ac Merge pull request #6867 from pmorie/libcontainer-bug
Remove workaround for libcontainer Getfilecon bug
2015-04-15 11:02:46 -07:00
Dawn Chen
d912398d07 Merge pull request #6813 from vmarmol/in-container
Run Kubelet and Kube-proxy in resource-only containers.
2015-04-15 10:37:00 -07:00
Paul Morie
68f22a40f3 Remove workaround for libcontainer Getfilecon bug
https://github.com/docker/libcontainer/issues/499 has been fixed
2015-04-15 13:29:20 -04:00
Yifan Gu
3b28c6262b kubelet: Clean up computePodContainerChanges.
More `continue`, less `else` to make it less indent and more readable.
2015-04-15 10:13:57 -07:00
Victor Marmol
54406a5b7c Merge pull request #6794 from yujuhong/restart_counts
Kubelet: persist restart count of a container
2015-04-14 16:01:49 -07:00
Yu-Ju Hong
fd34441d2d Kubelet: persist restart count of a container
Currently, restart count are generated by examine dead docker containers, which
are subject to background garbage collection. Therefore, the restart count is
capped at 5 and can decrement if GC happens.

This change leverages the container statuses recorded in the pod status as a
reference point. If a container finished after the last observation, restart
count is incremented on top of the last observed count. If container is created
after last observation, but GC'd before the current observation time, kubelet
would not be aware of the existence of such a container, and would not increase
the restart count accordingly. However, the chance of this should be low, given
that pod statuses are reported frequently. Also, the restart cound would still
be increasing monotonically (with the exception of container insepct error).
2015-04-14 15:06:42 -07:00
markturansky
e1481fb9c2 Refactored Volume plugins to use InternalVolume instead of API types 2015-04-14 14:25:01 -04:00
Victor Marmol
fb3c351fe1 Run Kubelet on "/kubelet" container. 2015-04-14 10:29:05 -07:00
Victor Marmol
ca9e209ccb Merge pull request #6795 from yifan-gu/cache
kubelet/container: Replace DockerCache with RuntimeCache.
2015-04-14 09:37:34 -07:00
Dawn Chen
8420abeea8 Merge pull request #6786 from yifan-gu/cleankube
kubelet: Remove unused docker functions.
2015-04-14 09:16:53 -07:00
Victor Marmol
e265f2c58d Merge pull request #6799 from xiang90/kerr
pkg/kubelet: fix error msg in GetHostIP
2015-04-14 08:40:34 -07:00
Xiang Li
4a152290f4 pkg/kubelet: fix error msg in GetHostIP 2015-04-13 22:44:23 -07:00
Yifan Gu
e1feed9a8b kubelet/container: Replace DockerCache with RuntimeCache. 2015-04-13 18:16:05 -07:00
Yifan Gu
a5e6bea9b5 kubelet/container: Update the cache interface. 2015-04-13 17:38:18 -07:00
Yifan Gu
7fedb14c27 kubelet: Remove unused docker functions.
Remove kubelet.getPodInfraContainer().
Remove dockertools.RemoveContainerWithID().
Remove dockertools.FindContainersByPod().

Also replace the useless test with a test for GetPods().
2015-04-13 16:32:18 -07:00
Yifan Gu
4cdb1bf9ce kubelet: Introduce PodInfraContainerChanged().
Update tests.
2015-04-13 16:18:52 -07:00
Yifan Gu
d14cb8f1dd kubelet: Introduce PodInfraContainerChanged().
This functions computes in ahead whether we need to restart the pod
infra container.
2015-04-13 16:18:52 -07:00
Yifan Gu
dda600e45c kubelet/dockertools: Add puller interfaces in the containerManager. 2015-04-13 15:34:22 -07:00
Dawn Chen
a0fa592b80 Merge pull request #6778 from yifan-gu/getpods
kubelet/dockertool: Move Getpods() to DockerManager.
2015-04-13 14:50:52 -07:00
Yifan Gu
a3675e08f2 kubelet/dockertool: Move Getpods() to DockerManager. 2015-04-13 14:05:22 -07:00
Paul Morie
c98e89fca0 Set rootcontext of emptyDir tmpfs mounts correctly 2015-04-13 12:50:36 -04:00
Paul Morie
042ac3d800 Fix build (kubelet/util.go) 2015-04-13 12:29:36 -04:00
Victor Marmol
ab68bcb97f Merge pull request #6733 from xiang90/kub_cap
pkg/kubelet: move the capabilities related code to util.go
2015-04-13 09:02:36 -07:00
Victor Marmol
4e3b4bd10e Merge pull request #6731 from xiang90/util-kubulet
pkg/kubelet: kill a TODO in util.go
2015-04-13 09:01:00 -07:00
Xiang Li
cef744ecaa pkg/kubelet: move the capabilities related code to util.go 2015-04-11 12:09:11 -07:00
Xiang Li
d24f60b5b8 pkg/kubelet: clean up status manager 2015-04-11 11:37:07 -07:00
Xiang Li
cea38a2f4e pkg/kubelet: kill a TODO in util.go
Move kubelet.CapabilitiesSetup to capabilities.Setup
2015-04-11 10:55:39 -07:00
Tobi Knaup
3932dfd8bb Log an error when update channel is closed. 2015-04-10 17:30:04 -07:00
Dawn Chen
fff6cebb5f Merge pull request #6711 from yujuhong/container_status
Kubelet: surface the container creation/start failure reason
2015-04-10 17:19:32 -07:00
Yu-Ju Hong
bb417e82d7 Kubelet: surface the container creation/start failure reason
Container creation/start failure cannot be reproduced by inspecting the
containers. This change caches such errors so that kubelet can retrieve it
later.

This change also extends FakeDockerClient to support setting error response
for a specific function.
2015-04-10 16:02:27 -07:00
Deyuan Deng
868e05ce96 Remove nodeinfo endpoint from kubelet 2015-04-10 15:47:32 -04:00
Daniel Smith
e2093798cb Merge pull request #6675 from wojtek-t/nodes_support_field_selector
FieldSelector for node List()
2015-04-10 10:30:55 -07:00
Victor Marmol
1563a7636a Merge pull request #6652 from dchen1107/podstatus
Populate last terminated container information
2015-04-10 09:21:58 -07:00
Clayton Coleman
fce3e5a2bb Merge pull request #6574 from ncdc/exec-portforward-no-command-pipes
Don't use command pipes for exec/port forward
2015-04-10 12:07:21 -04:00
Wojciech Tyczynski
88eb0b0295 FieldSelector for node List() 2015-04-10 12:53:16 +02:00
Abhishek Shah
964bc6b85d fix compilation 2015-04-09 17:19:13 -07:00
Victor Marmol
7ce5e7bc73 Merge pull request #6661 from vishh/sys_oom
Updating cadvisor deps and adding events cadvisor interface to kubelet
2015-04-09 16:28:20 -07:00
Dawn Chen
563f2965ba Populate last terminated container information 2015-04-09 16:10:13 -07:00
Vishnu Kannan
de79209970 Adding events API to cadvisor interface. 2015-04-09 16:02:34 -07:00
Daniel Smith
f16abee122 Merge pull request #6653 from yifan-gu/fix_pid_test
kubelet/fake_docker_client: Use self's PID instead of 42 in testing.
2015-04-09 16:01:10 -07:00
Daniel Smith
629d94657e Merge pull request #6624 from gmarek/status_to_subresource
Update NodeStatus use subresources.
2015-04-09 16:00:15 -07:00
Yifan Gu
12b382ce76 kubelet/fake_docker_client: Use self's PID instead of 42 in testing.
This is safer to use self's PID than some arbitrary PID (say 42),
since the kubelet will set the oom_score_adj for real.
2015-04-09 14:31:44 -07:00
Andy Goldstein
00e24603cb Fix TestServeExecInContainerIdleTimeout flake
Remove creation of stream from TestServeExecInContainerIdleTimeout as
it's not necessary to very idle timeout.

Increase stream creation and ack timeouts to 30 seconds.

Fixes #5628
2015-04-09 16:44:56 -04:00
Victor Marmol
40acaef454 Merge pull request #6607 from yujuhong/mirror_update
Kubelet: recreate mirror pod if the static pod changes
2015-04-09 10:29:55 -07:00
Yifan Gu
b868f421e0 kubelet: Move pod infra container image setting to dockertools. 2015-04-09 09:53:07 -07:00
gmarek
ccc56d3c3c Update NodeStatus use subresources. 2015-04-09 14:07:40 +02:00
Yu-Ju Hong
d7cf294c99 Kubelet: recreate mirror pod if the static pod changes
If a static pod changes, delete the corresponding mirror pod. When kubelet
could not see mirror pod from the API server update, it'd attemp to create a
new mirror pod with up-to-date specs.
2015-04-08 18:06:21 -07:00
Yifan Gu
d4513c2890 kubelet/DockerManager: Fix returning empty error from GetPodStatus(). 2015-04-08 17:55:30 -07:00
Vish Kannan
43949b41d4 Merge pull request #6586 from dchen1107/podstatus
small cleanup by removing useless generatePodStatus
2015-04-08 14:59:23 -07:00
Tobi Knaup
3efff6d4e8 kubelet syncloop should stop if/when updates chan closes 2015-04-08 14:45:16 -07:00
Dawn Chen
914616a195 Merge pull request #6592 from vishh/kubelet_logging
Improve kubelet logging around startup.
2015-04-08 14:35:53 -07:00
David Oppenheimer
4ffc2aad21 Merge pull request #6146 from kazegusuri/node_client_label
List in NodesInterface takes label selector
2015-04-08 14:22:53 -07:00
Vishnu Kannan
2b5cad6acf Improve kubelet logging around startup. This might help detect any lockup issues during startup. 2015-04-08 21:02:15 +00:00
Dawn Chen
b6d846aea5 small cleanup by removing useless generatePodStatus 2015-04-08 13:38:06 -07:00
Andy Goldstein
4c1cba5312 Don't use command pipes for exec/port forward
Switch to passing the streams for Stdin/Stdout/Stderr instead of using
StdinPipe() etc because the pipes are incompatible with Run()/Wait().
2015-04-08 13:42:42 -04:00
Yifan Gu
4b945e7218 kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
Add unit tests to test the restart behaviour under different
restart policy.
2015-04-08 09:44:23 -07:00
Yifan Gu
ddf323ee00 kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
Always call GetPodStatus().
2015-04-08 09:44:23 -07:00
Yifan Gu
6103b144e0 kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
Use the pod status to get the recent stopped containers in
shouldContainerBeRestarted().
2015-04-08 09:44:23 -07:00
Masahiro Sano
d04cc5ced4 List in NodesInterface takes label selector 2015-04-08 23:41:27 +09:00
Wojciech Tyczynski
8a5c76356c Revert "Stop the bleeding for #6059"
This reverts commit 6be09c5e97.
2015-04-08 13:29:29 +02:00
gmarek
72182735b9 Remove Node Controllers ability to pull status from Kubelet 2015-04-08 09:44:42 +02:00
Daniel Smith
c1390a0836 version field selector field names in the client 2015-04-07 16:59:57 -07:00
Quinton Hoole
c670071e87 Revert "kubelet: Remove GetRecentDockerContainersWithNameAndUUID." 2015-04-07 14:25:10 -07:00
Nikhil Jindal
842b9d8d3a Merge pull request #6493 from smarterclayton/make_client_pluggable
Make the client.Fake more powerful by standardizing how the fake loads data
2015-04-07 12:48:27 -07:00
Victor Marmol
cb0850d7cf Merge pull request #6527 from yujuhong/remove_unused
Remove unused code in kubelet/server_test.go
2015-04-07 12:30:39 -07:00
Clayton Coleman
51db3bd654 Create a new testclient package that can be backed by disk files
Standardize how our fakes are used so that a test case can use a
simpler mechanism for providing large, complex data sets, as well
as represent queries over time.
2015-04-07 14:56:15 -04:00
Yu-Ju Hong
d6b4633432 Remove unused code in kubelet/server_test.go
The code creates a channel and a go routine waiting for update, which is never
used by any test. Remove the unused code.
2015-04-07 11:55:19 -07:00
David Oppenheimer
402bf60366 Merge pull request #6214 from gmarek/move_consts_to_flags
Move NodeController constants to flags
2015-04-07 11:31:11 -07:00
Victor Marmol
ef3cdb2f18 Merge pull request #6491 from yifan-gu/depreciate_getkubeletdockercontainers
kubelet: Refactor RunInContainer/ExecInContainer/PortForward.
2015-04-07 11:00:16 -07:00
Cesar Wong
e64d7337b3 Move flushwriter from Kubelet server to a common util package
Exposes a Wrap function to wrap a given writer into a writer that
flushes with every write if the writer also implements the io.Flusher
interface.
2015-04-07 07:46:30 -04:00
gmarek
321a81047c Move NodeController constants to flags 2015-04-07 12:33:03 +02:00
Yifan Gu
ba1ad9fad2 kubelet: Refactor RunInContainer/ExecInContainer/PortForward.
Replace GetKubeletDockerContainers() with findContainer().
2015-04-06 17:14:46 -07:00
Victor Marmol
7716804a0d Merge pull request #6470 from yifan-gu/get_recent
kubelet: Remove GetRecentDockerContainersWithNameAndUUID.
2015-04-06 14:25:59 -07:00
Yifan Gu
a8c02412b2 kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
Use the pod status to get the recent stopped containers in
shouldContainerBeRestarted().
2015-04-06 12:43:49 -07:00
James DeFelice
d194af6b4f allow for more easily customized kubelet creation and initialization 2015-04-06 18:51:42 +00:00
Yu-Ju Hong
0e1bd18b3e Fix the kubelet node watch 2015-04-04 09:59:39 -07:00
Eric Tune
e49424785e Merge pull request #6380 from roberthbailey/kubelet-ssl
Configure the kubelet to use HTTPS (take 2)
2015-04-03 13:43:00 -07:00
Dawn Chen
67c1678e7e Merge pull request #6378 from yujuhong/docker_manager
RFC: Kubelet: a step towards to better encapsulation of docker functions
2015-04-02 14:22:26 -07:00
Daniel Smith
6be09c5e97 Stop the bleeding for #6059 2015-04-02 13:54:10 -07:00
Yu-Ju Hong
d01bc660b5 Kubelet: a step towards to better encapsulation of docker functions
We want to stop leaking more docker details into kubelet, and we also want to
consolidate some of the existing docker interfaces/structs. This change creates
DockerManager as the new home of some functions in dockertools/docker.go. It
also absorbs containerRunner. In addition, GetDockerPodStatus is renamed to
GetPodStatus with the entire pod passed to it so that it is simialr to the what
is defined in the container Runtime interface.

Eventually, DockerManager should implement the container Runtime interface, and
integrate DockerCache with a flag to turn on/off caching. Code in kubelet.go
should not be using docker client directly.
2015-04-02 13:26:39 -07:00
Brian Grant
414be101b6 Merge pull request #6352 from piosz/api
Removed PodStatus.Host
2015-04-02 13:16:24 -07:00
Robert Bailey
4488ff95a2 Create an insecure (http) read-only port on the kubelet so that
heapster can collect metrics. Update the heapster config to
point to the non-secured port.
2015-04-02 10:45:49 -07:00
Victor Marmol
f8f14b1cc1 Merge pull request #6349 from wojtek-t/node_watch_fields
Kubelet watching only its own Node object
2015-04-02 10:20:39 -07:00
Wojciech Tyczynski
6b08958264 Kubelet watching only its own Node 2015-04-02 18:39:59 +02:00
Piotr Szczesniak
5c6439d449 Removed PodStatus.Host
Fixes #6165
2015-04-02 16:38:45 +02:00
Mike Danese
32c7de290c fix readiness probe 2015-04-02 06:56:34 -07:00
Dawn Chen
db28ca67f6 Using gcr.io/google_containers/pause by default 2015-04-01 14:59:44 -07:00
Paul Morie
0335e350c7 Fix issue 6294: networking e2e should set args, not command 2015-04-01 11:40:23 -04:00
Victor Marmol
2de37624e8 Merge pull request #6252 from krousey/string_format_cleanup
Fixing a lot of string formatting issues
2015-03-31 16:57:36 -07:00
Kris Rousey
6904c4d585 Fixing a lot of string formatting issues with regards to:
* Improper format specifier (e.g. %s for bools or %s for ints)
  * More or less parameters than format specifiers
  * Not calling a formatting function when it should have (e.g. Error() instead of Errorf())
2015-03-31 16:47:10 -07:00
Brian Grant
3354cffbf0 Merge pull request #6182 from thockin/plural_services_20
Implement multi-port Services
2015-03-31 12:55:21 -07:00
Victor Marmol
9bbf0b1546 Merge pull request #6100 from pmorie/entrypoint
Add control over container entrypoint
2015-03-31 09:58:40 -07:00
Victor Marmol
d6d370d8ae Merge pull request #6211 from dchen1107/docker
publish node components version information
2015-03-31 09:47:08 -07:00
Dawn Chen
5b9a6d47e8 publish node components version information 2015-03-31 09:32:29 -07:00
Paul Morie
7628b37d78 Add control over container entrypoint 2015-03-31 12:32:03 -04:00
Tim Hockin
186818d787 WIP: Implement multi-port Services 2015-03-30 19:28:11 -07:00
Yifan Gu
7b1ea6b41d kubelet_test: Fix copy bug.
Initialize the slice before copying in verifyUnorderedCalls()
and verifyStringArrayEqualsAnyOrder().
2015-03-30 17:17:42 -07:00
Daniel Smith
acd67ebea0 Merge pull request #5535 from saad-ali/fix5327
Make each new instance of kubelet generate a new event channel
2015-03-30 17:05:27 -07:00
Victor Marmol
a501bd29ad Merge pull request #6189 from sdodson/liveness-probe-logging
Add some logging to kubelet probes
2015-03-30 15:34:47 -07:00
Yu-Ju Hong
73452fd26e Merge pull request #6091 from vmarmol/record
Record event when image GC fails.
2015-03-30 15:08:56 -07:00
Scott Dodson
7661a42058 Add some logging to kubelet probes 2015-03-30 17:23:56 -04:00
saadali
e0f71cb21f Make each new instance of kubelet generate a new event channel (instead of reusing existing). 2015-03-30 14:22:16 -07:00
Scott Dodson
de87048def Fix comment typo probeContainerReadiness 2015-03-30 15:54:05 -04:00
Victor Marmol
de35c8f2af Record event when image GC fails. 2015-03-30 10:32:51 -07:00
Federico Simoncelli
0e60374346 nodes: record an event on NodeReady changes
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-30 12:01:09 -04:00
Federico Simoncelli
fe2d1f6762 node: move the reboot detection logic to kubelet
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-30 09:33:07 -04:00
Federico Simoncelli
604e0ad328 kubelet: move getNodeReference logic into a function
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-30 09:33:00 -04:00
Dawn Chen
296fafa955 Merge pull request #6129 from yujuhong/container_status
Kubelet: allow docker to examine terminated container
2015-03-27 18:18:18 -07:00
Yu-Ju Hong
3ad0e22cdd Kubelet: allow docker to examine terminated container
Removing the if statement so that docker can continue returning the status of
terminated containers.
2015-03-27 18:04:50 -07:00
Yu-Ju Hong
372c5c9f3a Kubelet: set host field in the pending pod status
Otherwise, the apiserver would reject the update.
2015-03-27 17:26:47 -07:00
Victor Marmol
e4fc45c26f Merge pull request #6054 from fgrzadkowski/fix_pod_status
Do not fail pod status update if failed to get host IP
2015-03-27 09:10:44 -07:00
Victor Marmol
4ed3346587 Merge pull request #6039 from yifan-gu/readiness
kubelet: Add container readiness manager.
2015-03-27 09:04:00 -07:00
Filip Grzadkowski
fe2f7f25c6 Do not fail if failed to get host IP 2015-03-27 14:15:41 +01:00
Yifan Gu
6fecda710c kubelet: Add container readiness manager.
Move the readiness managing logic into pkg/kubelet/container package
to facilitate the pluggable container runtime.
2015-03-26 18:45:23 -07:00
Vish Kannan
13ae40681a Merge pull request #6029 from vishh/1726
Update pod ip using active container only.
2015-03-26 17:50:35 -07:00
Vish Kannan
f2c7dda6da Merge pull request #6026 from dchen1107/clean
kubectl describe nodes id reports related events
2015-03-26 17:39:21 -07:00
Vishnu Kannan
14a48ad026 Update pod ip using active container only. 2015-03-27 00:38:43 +00:00
Victor Marmol
58aee31625 Merge pull request #6024 from yujuhong/hostname
Use the first token of hostname for generating static pod names
2015-03-26 16:35:42 -07:00
Dawn Chen
f662d7d11c Kubelet reports node related events with empty namespace for now. 2015-03-26 16:30:23 -07:00
Yu-Ju Hong
793a3c0c63 Use the first token of hostname for generating static pod names
This increases the readability of pods by avoiding long names.

This fixes #5936
2015-03-26 16:12:49 -07:00
Victor Marmol
0fb131c4f9 Merge pull request #5975 from yifan-gu/refactor_runContainer
kubelet: Refactor kubelet.runContainer.
2015-03-26 15:50:37 -07:00
Yifan Gu
e6820bd0ca kubelet_test: Fix verifyStringArrayEqualsAnyOrder().
Old implementation can not tell cases where strings are
repetitive. e.g. {"a", "b", "b"} and {"a", "a", "b"} will
be treated as correct.
2015-03-26 15:26:32 -07:00
Yifan Gu
aa2e7fe688 kubelet_test: Add verifyUnorderedCalls().
This fixes TestSyncPodsDeletesWithNoPodInfraContainer.
Since we need to sync two pods in parallel, we should not verify
the docker calls in strict order.
2015-03-26 15:25:51 -07:00
Yifan Gu
5f08555f45 kubelet: Refactor kubelet.runContainer.
Push the run container logic into container runtime.
2015-03-26 13:43:45 -07:00
Victor Marmol
1cad0df268 Merge pull request #6004 from yifan-gu/ref_manager
kubelet: Move container reference manager to pkg/kubelet/container.
2015-03-26 13:04:34 -07:00
Brian Grant
3b0db99692 Merge pull request #5915 from piosz/api
Changed PodInfo to be a list
2015-03-26 12:46:50 -07:00
Yifan Gu
9f62b929b8 kubelet: Move container reference manager to pkg/kubelet/container.
This enables other package to use it, such as docktools.
2015-03-26 11:53:44 -07:00
Victor Marmol
a59e5f8995 Refactor pod killing to be done in a single killPod(). 2015-03-26 11:25:48 -07:00
Victor Marmol
106cc037ee Merge pull request #5995 from ArtfulCoder/pause_no_port_forward_for_net_host
Kill running Pod running with -net=true if kubelet does not allow it
2015-03-26 11:03:58 -07:00
Victor Marmol
d2ea1a793b Merge pull request #5982 from yifan-gu/ref_manager
kubelet: Add container reference manager.
2015-03-26 10:20:13 -07:00
Abhishek Shah
5c42070eeb Kill running Pod running with -net=true if kubelet does not allow it 2015-03-26 10:13:06 -07:00
Yifan Gu
a06bc96414 kubelet: Add container reference manager.
Move the reference managing logic into container reference manager.
This enables pluggable container runtime to manage the container references.
2015-03-26 09:50:54 -07:00
gmarek
5a11748018 Move Capacity from NodeSpec to NodeStatus 2015-03-26 15:28:48 +01:00
Piotr Szczesniak
31901ed9d0 Changed PodInfo to be a list
This change is to make API consistent with our convention.

Fixes #3622
2015-03-26 10:15:25 +01:00
Victor Marmol
8183a4805e Merge pull request #5973 from ArtfulCoder/pause_no_port_forward_for_net_host
Stop port forwarding from pause in net=host mode
2015-03-25 18:13:04 -07:00
Abhishek Shah
cd5ed38250 Stop port forwarding from pause in net=host mode 2015-03-25 17:55:37 -07:00
Victor Marmol
b1c06eb52e Merge pull request #5969 from yujuhong/selflink
Kubelet: no need to overwrite SelfLink for pods from the apiserver
2015-03-25 16:59:56 -07:00
Yu-Ju Hong
4e909c6cee Kubelet: no need to overwrite SelfLink for pods from the apiserver
Pods from the apiserver should already have SelfLink set. There is no need to
create one ourselves.
2015-03-25 16:34:02 -07:00
Victor Marmol
9e77c3d7e5 Use default ContainerInfoRequest in Kubelet HTTP.
Fixes #5777.
2015-03-25 15:37:06 -07:00
Yu-Ju Hong
6145b3b9c4 Merge pull request #5738 from smarterclayton/cleanup_clients
Clients should not check conditions, UpdateStatus() is inconsistent
2015-03-25 13:59:47 -07:00
David Oppenheimer
76889fa3ae Merge pull request #5818 from simon3z/boot-id
nodecontroller: record node reboot event
2015-03-25 13:50:21 -07:00
Clayton Coleman
b1ab14315b Clients should not check conditions, UpdateStatus() is inconsistent
Corrects some of the cargo culting that has crept into the API.
2015-03-25 16:25:04 -04:00
Yu-Ju Hong
5d628770c1 Merge pull request #5926 from vmarmol/fast-test
Reduce testing time of status_manager_test.
2015-03-25 12:52:27 -07:00
Federico Simoncelli
afbf401464 nodeinfo: add boot id system information
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-25 15:06:53 -04:00
Victor Marmol
65070d6d81 Reduce testing time of status_manager_test.
Adds tests for syncBatch().
2015-03-25 11:45:06 -07:00
Victor Marmol
cf7e2756b5 Add HostNetworkSources capability to limit use of HostNetwork. 2015-03-25 11:23:06 -07:00
Victor Marmol
d9cd7a78f7 Allow starting a container with --net=host. 2015-03-25 11:22:03 -07:00
Victor Marmol
5eb373692b Merge pull request #5928 from yujuhong/pod_status
Kubelet: pass the acutal pod for status update
2015-03-25 10:51:32 -07:00
Victor Marmol
f7135b3dd4 Merge pull request #5827 from spothanis/master
added cloud provider flag to kubelet
2015-03-25 10:50:18 -07:00
Yu-Ju Hong
b4b0bc75c4 Kubelet: pass the acutal pod for status update
Pod status update should include the ObjectMeta of the pod. This change is
required for #5738 to merge.
2015-03-25 09:58:46 -07:00
Filip Grzadkowski
74da3b14b0 Delete pod_cache and rely on updating pod status by kublet. 2015-03-25 15:08:09 +01:00
Sreekanth Pothanis
1c06cde4c4 added cloud provider flag to kubelet
This is to fix issue #5667
2015-03-24 19:32:50 -07:00
Yu-Ju Hong
ff3d36edc5 Fix flakey TestGetSetPods 2015-03-24 18:29:35 -07:00
Yu-Ju Hong
a9c9d27fdd Merge pull request #5893 from vmarmol/remove-server
Remove unused ServerSource.
2015-03-24 18:09:32 -07:00
Victor Marmol
bacd859b33 Remove unused ServerSource.
We no longer use server as a source in the Kubelet.
2015-03-24 17:47:09 -07:00
Yifan Gu
e02c6994dc kubelet.container: Fix volume map type. 2015-03-24 16:08:04 -07:00
Yifan Gu
31bb11ac2a kubelet: Move pod name helpers to pkg/kubelet/container/runtime.go 2015-03-24 16:08:04 -07:00
Yifan Gu
13250c904f kubelet: Replace GetKubeletDockerContainers with GetPods in syncPod/SyncPods. 2015-03-24 16:01:38 -07:00
Yifan Gu
eec6456f51 kubelet.container: Add helpers in container runtime to filter pod/containers. 2015-03-24 16:01:38 -07:00
Yifan Gu
f4c3ccf639 dockertools: Introduce GetPods() for docker runtime. 2015-03-24 16:01:37 -07:00
David Oppenheimer
30c3583900 Merge pull request #5806 from ddysher/condition-rename
Rename ConditionFull->ConditionTrue, ConditionNone->ConditionFalse
2015-03-24 15:50:11 -07:00
Victor Marmol
270c850b3b Merge pull request #5826 from yujuhong/pod_manager
Kubelet: refactor pod manager
2015-03-24 15:33:54 -07:00
Yu-Ju Hong
08e4a883b6 Kubelet: refactor pod manager
This change cleans up the pod manager extensively so that
 * Mirror pods are actually stored in the pod manager.
 * Both (non-mirror) pods and mirror pods are indexed by UID and full name for
   easy lookup and mapping. This is required for the next change to send
   full pod along with the pod status update.

This change also renames mirrorManager as mirrorClient since it is merely a
client to contact the API server and create/delete mirror pods.
2015-03-24 15:10:26 -07:00
Deyuan Deng
ca68f4a9d1 Rename ConditionFull->ConditionTrue, ConditionNone->ConditionFalse 2015-03-24 17:28:59 -04:00
David Oppenheimer
c1730989cb Merge pull request #5870 from dchen1107/podstatus
Fix a bug of running node selector predicate on kubelet introduced by #5...
2015-03-24 14:05:27 -07:00
David Oppenheimer
3f57378972 Merge pull request #5399 from ddysher/nc-keep-sync
Node controller monitor node status
2015-03-24 13:30:06 -07:00
Dawn Chen
e2e1d9e943 Fix a bug of running node selector predicate on kubelet introduced by #5715.
part of #5207, and fixed #5810
2015-03-24 13:13:25 -07:00
Deyuan Deng
c5675b8924 Use fake time in nodecontroller unittest; rename receiver 's' to 'nc' 2015-03-24 14:23:48 -04:00
Deyuan Deng
b51d491f05 Delete all pods based on condition transition time. 2015-03-24 14:23:48 -04:00
Deyuan Deng
cf548765c9 Change kubelet update frequency to 2s, and make it a constant. 2015-03-24 14:23:48 -04:00
markturansky
2fd82f60f4 Move escape function to util and clarify name 2015-03-24 13:52:31 -04:00
Filip Grzadkowski
632ca506ce * Update pod status only when it changes.
* Refactor syncing logic into a separate struct
2015-03-24 16:41:00 +01:00
Victor Marmol
07f928be64 Cap container hostname length to 63 chars.
Fixes #5829.
2015-03-23 19:36:45 -07:00
Yu-Ju Hong
f440989017 Kubelet: add podManager for managing internal pod storage
This change moves pod array and mirrorPods into podManager, along with all
methods accessing these internal pod storages. This is the first step of the
refactoring, and no function change is involved.
2015-03-23 15:11:10 -07:00
Clayton Coleman
d020ca00b8 Pass hostname to all kubelet config sources instead of os.Hostname()
Make applyDefaults be tied to the current config source.
2015-03-23 15:58:45 -04:00
Clayton Coleman
b442f76961 Syntax errors in file_test were added right as validation became more strict 2015-03-23 14:43:09 -04:00
Saad Ali
e8f70428fb Merge pull request #5715 from jszczepkowski/kubelet-nodesel
Running node selector predicate on kubelet.
2015-03-23 11:06:00 -07:00
Victor Marmol
adac4328e8 Merge pull request #5713 from AAzza/kubelet_build_parse_dockername
Refactor build/parse DockerName from Kubelet. #3511
2015-03-23 08:45:53 -07:00
Victor Marmol
4e3c07543e Merge pull request #5784 from wojtek-t/applyDefaultsInTryDecode
Hide applyDefaults method under pkg/kubelet/config
2015-03-23 07:32:00 -07:00
Wojciech Tyczynski
b395c40e19 Refactor pkg/kubelet/config 2015-03-23 10:29:46 +01:00
Jerzy Szczepkowski
34a8a3a844 Running node selector predicate on kubelet.
Added checking on kubelet if scheduled pods have matching node selector. This is the last step to fix #5207.
2015-03-23 08:21:58 +01:00
Clayton Coleman
65425f690c Move field errors to pkg/util/fielderrors
Allows pkg/api to take a reference to labels.Selector and fields.Selector
2015-03-22 17:43:34 -04:00
Nataliia Uvarova
73c2338320 Refactor build/parse dockername. #3511
Functions Build/ParseDockerName now work with struct instead of the long
list of arguments. This new struct also was reused in the kubelet.go
instead of auxilary podContainer struct.
2015-03-21 09:09:03 +01:00
Victor Marmol
4d2e7981bb Merge pull request #5730 from yujuhong/static_stats
Kubelet: support retrieving stats using UID of mirror pods
2015-03-20 17:05:23 -07:00
Yu-Ju Hong
f3f3c8f151 Fix volume imports 2015-03-20 16:22:35 -07:00
Yifan Gu
3b4685ef6c kubelet.runtime: update the import path for volume. 2015-03-20 16:16:27 -07:00
Yu-Ju Hong
15e9760bd4 Kubelet: support retrieving stats using UID of mirror pod
Kubelet supports retrieving stats for pods/containers with and without UID.
This does not always work for the static pods because users may get the UIDs of
the mirror pods from the API server, and use them to query Kubelet. In this
case, Kubelet would fail to locate the containers due to mismatched UIDs.

This change adds a intenral mirror to static pod UID mapping and teaches all
public-facing functions to perform UID lookup before proceeding. This allows
users to use either mirror or static pod's UID to retrieve stats.
2015-03-20 15:40:49 -07:00
Vish Kannan
f118ca8fb4 Merge pull request #5642 from thockin/volume_multi_plugins
Prep for multiple kinds of volume plugins
2015-03-20 15:12:30 -07:00