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
1b84fb7d74
make testclient threadsafe by guarding internal state with accessors
2015-07-29 16:17:17 -07:00
nikhiljindal
274792d7bb
Stop exposing v1beta3 by default
2015-07-01 14:38:02 -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
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
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
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
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
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
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
Abhi Shah
928971cea4
Merge pull request #9710 from mesosphere/public-get-phase
...
export kubelet.GetPhase
2015-06-12 13:46:35 -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
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
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
0a28edf6e7
Merge pull request #8698 from vmarmol/with-limits
...
Reserve node resources for node services
2015-06-02 13:05:29 -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
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
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
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
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
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
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
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
Dawn Chen
017fb6a818
Merge pull request #8575 from yifan-gu/kube_refactor
...
Minor kubelet/rkt refactors
2015-05-21 09:37:31 -07: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
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
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
David Oppenheimer
44b1e1ca0c
Fix stylistic isues with #5547 . Closes #4910 .
2015-05-18 23:32:06 -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
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
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
derekwaynecarr
8216332611
Kubelet kills a pod that exceeds ActiveDeadlineSeconds
2015-05-15 16:33:37 -04: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
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
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
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
Paul Morie
6ac55002d8
Improve kubelet test for env vars
2015-05-12 17:14:32 -04: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
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
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
Dawn Chen
86479cc56c
Add support to pull log for last terminated container
2015-05-11 12:54:04 -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
Deyuan Deng
2f7183cba5
Check Pod privileged container
2015-05-09 17:30:35 -04:00
Yu-Ju Hong
d185bfd56a
Record failure reason for image pulling
2015-05-08 17:37:11 -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
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
Paul Morie
e949a623ff
Change EnvVarSource.FieldPath -> FieldRef and add example
2015-05-04 18:41:09 -04: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
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
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
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
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
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
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
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
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
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
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
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
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
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
Paul Morie
7d30f09ebf
Add downward API for environment vars
2015-04-27 14:13:11 -04: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
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
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
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
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
Satnam Singh
2444c1f943
Propagate pod and container name for log files
2015-04-22 15:08:51 -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
Victor Marmol
914a6febfb
Merge pull request #7010 from yifan-gu/compute
...
kubelet: Refactor computePodContainerChanges().
2015-04-22 08:05:18 -07: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