Commit Graph

1522 Commits

Author SHA1 Message Date
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
Dawn Chen
fbd362d3c7 Merge pull request #5572 from yifan-gu/rkt_support
Add container runtime
2015-03-20 14:38:48 -07:00
Yu-Ju Hong
0206115703 Merge pull request #5697 from vmarmol/doc
Correct documentation about stats arguments.
2015-03-20 14:22:33 -07:00
Victor Marmol
5cfe0c04f8 Merge pull request #5705 from wojtek-t/refactor_file_test
Refactor pkg/kubelet/config/file_test.go
2015-03-20 14:08:06 -07:00
Tim Hockin
bfadae77e0 Promote volume plugins, prep for persistent vols
Move pkg/kubelet/volume/... to pkg/volume/...
Some renames to make the soon-to-come persistent volumes work clearer.
2015-03-20 13:49:40 -07:00
Yifan Gu
487d34e409 kubelet: add container runtime cache and fake runtime. 2015-03-20 13:15:20 -07:00
Yifan Gu
319d537cf9 kubelet: add container runtime interface. 2015-03-20 13:15:20 -07:00
Wojciech Tyczynski
9c4ef28b2d Comments 2015-03-20 20:13:16 +01:00
Wojciech Tyczynski
3b367f8ab8 Refactor file_test.go 2015-03-20 20:13:16 +01:00
Abhishek Gupta
b0c23c1046 Headless Services: Adding option to specify None for PortalIP 2015-03-20 12:10:03 -07:00
Victor Marmol
c5f73516b6 Merge pull request #5704 from wojtek-t/kubelet_file_read_pod
Kubelet read pods from file
2015-03-20 10:00:49 -07:00
Victor Marmol
e94c5c3fa9 Merge pull request #5677 from smarterclayton/remove_healthz_global
Remove global map from healthz
2015-03-20 08:32:39 -07:00
Wojciech Tyczynski
7a7e64331c Kubelet file read both ContainerManifest and Pod 2015-03-20 12:09:09 +01:00
Wojciech Tyczynski
c5d8c391fb Refactor kubelet/config to share code 2015-03-20 09:40:52 +01:00
Victor Marmol
fc8f4411ef Correct documentation about stats arguments. 2015-03-19 22:11:04 -07:00
Clayton Coleman
84ab8f7254 Reduce probe logging level
Too chatty for normal operation
2015-03-19 23:06:21 -04:00
Yu-Ju Hong
0d0fb5f07b Kubelet: per-pod workers should avoid grabbing the pod array lock
Per-pod worker syncs the pod and container status, and write the pod status in
the pod status cache. Given that it already owns a copy of the pod, it can
bypass the additional pod lookup step completely. This change adds a new
generatePodStatusByPod() method to achieve this. In general, per-pod worker
should avoid accessing the internal pod array completely, as this would may
lead to high contention.

This change also changes the return type of GetPodByFullName to reflect the
name, and consolidates GetPodByFullName() and GetPodByName().
2015-03-19 18:25:41 -07:00
Clayton Coleman
015bc3b7bd Remove global map from healthz
It currently is impossible to use two healthz handlers on different
ports in the same process.  This removes the global variables in favor
of requiring the consumer to specify all health checks up front.
2015-03-19 19:49:44 -04:00
Tim Hockin
1cbde2c5c7 Merge pull request #5664 from calfonso/nfs_mount_plugin
Addresses cross compile for syscall.Unmount by delegating to Mount.
2015-03-19 16:19:01 -07:00
Tim Hockin
4ee6eb8c73 Make net plugins build on non-unix 2015-03-19 16:15:33 -07:00
CJ Cullen
7ddcecfd1c Revert "Revert "[WIP] southbound networking hooks in kubelet"" 2015-03-19 16:14:13 -07:00
Zach Loafman
b5d1e538df Revert "[WIP] southbound networking hooks in kubelet" 2015-03-19 16:08:08 -07:00
Rajat Chopra
7857aa7751 kubelet networking plugin 2015-03-19 14:15:52 -07:00
Chris Alfonso
9d0c9e7dc3 Addresses cross compile for syscall.Unmount by delegating to Mount. 2015-03-19 16:46:14 -04:00
Jerzy Szczepkowski
c0ff504ad3 Merge pull request #5501 from jszczepkowski/kubelet-spechost
Running resource predicate on kubelet.
2015-03-19 21:34:27 +01:00
Victor Marmol
6f6485909e Merge pull request #5598 from wojtek-t/kubelet_http_read_pod
Kubelet read pods from http
2015-03-19 11:49:28 -07:00
Tim Hockin
9bc2b0c2db Merge pull request #4601 from calfonso/nfs_mount_plugin
NFSMount storage plugin for kubelet.
2015-03-19 11:19:12 -07:00
Wojciech Tyczynski
c512c549a1 Kubelet http read both ContainerManifest and Pod 2015-03-19 18:57:00 +01:00
Dawn Chen
4910be6dcb Remove PodIP from ContainerStatus 2015-03-19 10:42:01 -07:00
Chris Alfonso
1a45e37d17 NFSMount storage plugin for kubelet.
* If you want to test this out when an actual NFS export a good place
 to start is by running the NFS server in a container:

docker run -d --name nfs --privileged cpuguy83/nfs-server /tmp

More detail can be found here:
https://github.com/cpuguy83/docker-nfs-server
2015-03-19 13:37:38 -04:00
Filip Grzadkowski
f89f91b7bd Validate that there is at least one container in the pod 2015-03-19 12:31:53 +01:00
Jerzy Szczepkowski
5845f6ad48 Running resource predicate on kubelet.
Added checking on kubelet if scheduled pods do not exceed resources. Related to #5207.
2015-03-19 10:40:10 +01:00
Yu-Ju Hong
187cbcfabf Merge pull request #5627 from vmarmol/fix-test
Fix data race in imageManager test.
2015-03-18 18:24:18 -07:00
Yu-Ju Hong
05c61d2e47 Merge pull request #5622 from vmarmol/http
Add SelfLink to Kubelet http source.
2015-03-18 18:09:05 -07:00
Victor Marmol
6db6e41a34 Merge pull request #5632 from yujuhong/manifest
kubelet/config/http_test: use versioned ContainerManifest
2015-03-18 17:58:19 -07:00
Yu-Ju Hong
7b71780dfc kubelet/config/http_test: use versioned ContainerManifest 2015-03-18 17:40:40 -07:00
Dawn Chen
52e1ee9d5b Merge pull request #5619 from vmarmol/rate
Spread out pod status updates to apiserver.
2015-03-18 17:26:02 -07:00
Victor Marmol
3a3b950009 Fix data race in imageManager test.
The background monitoring thread was using the DockerClient before we
had written our fake data. This commit stops the background thread from
running during tests.

Fixes #5611.
2015-03-18 17:02:03 -07:00
Victor Marmol
ce96182cc3 Add SelfLink to Kubelet http source. 2015-03-18 16:38:41 -07:00
Victor Marmol
cda4b6c598 Spread out pod status updates to apiserver.
Lowers pod status interval to every 2m and spreads updates within that
time window.
2015-03-18 15:43:07 -07:00
Yifan Gu
027f6854d0 kubelet: Remove docker container in prober's interface
Also change
kubelet.docketIDToRef[dockertools.DockerID]*api.ObjectReference{} to
kubelet.containerIDToRef[string]*api.ObjectReference{}.
2015-03-18 14:28:27 -07:00
Yu-Ju Hong
6e8a8b741a Kubelet: simplify the lock acquring pattern
Avoid holding both podStatusesLock and podLock at the same time.
2015-03-18 11:45:29 -07:00
Victor Marmol
9586b39bb7 Merge pull request #5555 from fgrzadkowski/sync_pod_status
Periodically update pod status from kubelet.
2015-03-18 10:14:07 -07:00
Dawn Chen
f746123438 Merge pull request #5580 from ncdc/docker-ParseRepositoryTag
Use docker's ParseRepositoryTag when pulling
2015-03-18 08:55:56 -07:00
Dawn Chen
9e781bc57d Merge pull request #5569 from vmarmol/image-gc
Garbage collecting images in the Kubelet.
2015-03-18 08:55:08 -07:00
Filip Grzadkowski
1a352b74ba Periodically update pod status from kubelet. 2015-03-18 12:11:39 +01:00
Victor Marmol
d78ecf820e Garbage collecting images in the Kubelet.
Integrated the imageManager into the Kubelet and applies the garbage
collection policy every 5 minutes. The default policy allows up to 90%
disk usage, after which images are garbage collected to bring limit back
down to 80%.

Fixes #157.
2015-03-17 17:56:02 -07:00
Andy Goldstein
7b07960758 Use docker's ParseRepositoryTag when pulling 2015-03-17 20:15:13 -04:00
Yu-Ju Hong
b84de4e986 Merge pull request #5571 from vmarmol/fix
Adding errors to Kubelet events.
2015-03-17 16:14:58 -07:00
Dawn Chen
cbe4a1a679 Merge pull request #5510 from vmarmol/gc
Introduce and implement container GC policy
2015-03-17 16:02:17 -07:00
Victor Marmol
0c664a343c Adding errors to Kubelet events.
This will help while debugging issues that generate events.

Also removed unecessary log line.
2015-03-17 15:55:25 -07:00
Zach Loafman
5496686f33 Revert "Use docker's ParseRepositoryTag when pulling" 2015-03-17 15:16:33 -07:00
Salvatore Dario Minonne
31ddefc347 Finalize fields.Selector 2015-03-17 22:55:43 +01:00
Dawn Chen
2a5610dbcb Merge pull request #5558 from ncdc/docker-ParseRepositoryTag
Use docker's ParseRepositoryTag when pulling
2015-03-17 12:56:22 -07:00
Victor Marmol
d1ed571e28 Use containerGC in the Kubelet.
New policy default is 100 containers max.

Fixes #5457.
2015-03-17 10:50:32 -07:00
Victor Marmol
4c17c09a8f Separate GC policy into containerGC struct.
The policy today takes a min GC age, max dead containers per pod, and
max containers overall. When GC is called, only dead containers created
more than min GC age ago are considered. The policy tries to keep one
dead instance of every pod's containers.
2015-03-17 10:50:06 -07:00
Dawn Chen
5a04bf6316 Merge pull request #5512 from vmarmol/igc
Introduce and implement image GC policy
2015-03-17 10:36:22 -07:00
Andy Goldstein
c08f41c18b Use docker's ParseRepositoryTag when pulling 2015-03-17 13:23:17 -04:00
Victor Marmol
6bcbf12a3d Add image garbage collection policy to imageManager. 2015-03-17 09:19:04 -07:00
Victor Marmol
303a1f7ea1 Adding cAdvisor API to get image usage information. 2015-03-17 09:17:38 -07:00
Yu-Ju Hong
929fb63b33 Sync static pods from Kubelet to the API server
Currently, API server is not aware of the static pods (manifests from
sources other than the API server, e.g. file and http) at all. This is
inconvenient since users cannot check the static pods through kubectl.
It is also sub-optimal because scheduler is unaware of the resource
consumption by these static pods on the node.

This change syncs the information back to the API server by creating a
mirror pod via API server for each static pod.

 - Kubelet creates containers for the static pod, as it would do
   normally.

 - If a mirror pod gets deleted, Kubelet will re-create one. The
   containers are sync'd to the static pods, so they will not be
   affected.

 - If a static pod gets removed from the source (e.g. manifest file
   removed from the directory), the orphaned mirror pod will be deleted.

Note that because events are associated with UID, and the mirror pod has
a different UID than the original static pod, the events will not be
shown for the mirror pod when running `kubectl describe pod
<mirror_pod>`.
2015-03-17 08:45:56 -07:00
Filip Grzadkowski
18b728ff44 Revert "Periodically update pod status from kubelet." 2015-03-17 13:51:45 +01:00
Victor Marmol
009737e69e Merge pull request #5205 from fgrzadkowski/sync_pod_status
Periodically update pod status from kubelet.
2015-03-16 17:04:31 -07:00
Tim Hockin
b42652cd3d Retool mount detection for tests 2015-03-16 16:17:47 -07:00
Filip Grzadkowski
336525a27d Periodically update pod status from kubelet. 2015-03-16 23:03:03 +01:00
Tim Hockin
1725c23eb2 Implement volume plugin wrappers
Convert git_repo and secret into wrappers around empty_dir.
2015-03-16 14:07:58 -07:00
Victor Marmol
bdc1981eb5 Merge pull request #5433 from wojtek-t/remove_bound_pods
Remove BoundPods from Kubelet
2015-03-16 13:38:24 -07:00
Wojciech Tyczynski
5d95e9e671 Remove BoundPods from Kubelet 2015-03-16 19:17:21 +01:00
Jeff Lowdermilk
e37fd2a84d Merge pull request #5477 from dchen1107/clean
Convert RestartPolicy to string for v1beta3.
2015-03-16 10:23:52 -07:00
Dawn Chen
34e9c82c70 Convert RestartPolicy to string for v1beta3.
Fixed #3607 and spiritually support #5475
2015-03-13 18:38:07 -07:00
Victor Marmol
dc96ea6300 Run cAdvisor inside the Kubelet.
cAdvisor is started as a Kubelet dependency during startup of the
Kubelet before the sync loops start.
2015-03-13 16:06:02 -07:00
Victor Marmol
b00e82ed93 Merge pull request #5466 from dchen1107/docker
Fix a regression introduced lately: When any given PodInfraContainer on ...
2015-03-13 16:04:01 -07:00
Satnam Singh
ce7658a302 Merge pull request #5445 from vmarmol/unused
Remove unused handleUpdate() in Kubelet.
2015-03-13 16:00:17 -07:00
Dawn Chen
732d4cb2b9 Fix a regression introduced lately: When any given PodInfraContainer on a node
is killed, kubelet kills all remaining containers no matter which pod that
container belongs to.

Fixed #5373
2015-03-13 15:46:30 -07:00
Dawn Chen
0cc2b62b4a Merge pull request #5265 from ddysher/kubelet-post-status
kubelet post node status to master
2015-03-13 15:29:22 -07:00
Tim Hockin
caca5e7358 Add tmpfs support to EmptyDir
# *** ERROR: *** docs are out of sync between cli and markdown
# run hack/run-gendocs.sh > docs/kubectl.md to regenerate

#
# Your commit will be aborted unless you regenerate docs.
    COMMIT_BLOCKED_ON_GENDOCS
2015-03-13 13:36:13 -07:00
Vish Kannan
13253d09e1 Merge pull request #5444 from vmarmol/lock
Lock access and update to Kubelet pods.
2015-03-13 11:06:50 -07:00
Victor Marmol
04233cdb88 Remove unused handleUpdate() in Kubelet. 2015-03-13 10:35:50 -07:00
Victor Marmol
0e485310cf Lock access and update to Kubelet pods. 2015-03-13 10:31:26 -07:00
gmarek
3489d1ae01 Refactor kubelet syncPod method 2015-03-13 18:22:42 +01:00
Victor Marmol
4675fcc57d Make ParseDockerName() return an error.
This forces callers to handle cases where the container name could not
be parsed.
2015-03-12 16:33:16 -07:00
Dawn Chen
ee4e887183 Merge pull request #5395 from vmarmol/fix
Garbage collect unidentified Kubernetes containers.
2015-03-12 12:58:22 -07:00
Victor Marmol
51122998e3 Garbage collect unidentified Kubernetes containers.
These containers may be caused by a change in the Kubernetes naming
convention. The old containers are killed, the new ones started, but the
old ones are never GC'd. This change makes Kubelet GC all Kubernetes
containers, old and new.

Fixes #5372.
2015-03-12 11:40:35 -07:00
Brian Grant
19b6c85fa5 Merge pull request #5363 from wojtek-t/no_bound_pods_in_scheduler
Make scheduler to watch PodSpec.Host instead Status.Host
2015-03-12 10:57:03 -07:00
Victor Marmol
2939abb6cb Merge pull request #5383 from wojtek-t/kubelet_test
Speedup pkg/kubelet/runonce_test.go
2015-03-12 10:22:03 -07:00
Victor Marmol
f9d2ab6e48 Use time.Sleep() instead of <-time.After(). 2015-03-12 09:25:09 -07:00
Wojciech Tyczynski
dca3db0a50 Speedup pkg/kubelet/runonce_test.go 2015-03-12 17:12:04 +01:00
Timothy St. Clair
308bb84cf3 Minor cleanup for etcd cleaning from kubelet 2015-03-12 09:39:22 -05:00
Wojciech Tyczynski
9f2f10d6db Make scheduler to watch PodSpec.Host instead Status.Host 2015-03-12 13:38:58 +01:00
Eric Tune
ae9bc28f8b Remove mentions of etcd in kubelet. 2015-03-11 16:40:20 -07:00
Eric Tune
ac7bf05079 Kubelet has not even heard of etcd. 2015-03-11 16:29:31 -07:00
Brendan Burns
b53b2e1de0 Add and extend timeouts. 2015-03-11 14:12:46 -07:00
Dawn Chen
88e0b04916 Merge pull request #5287 from ncdc/master
Remove debugging log message from ExecInContainer
2015-03-11 09:45:37 -07:00
Wojciech Tyczynski
0ffd607c79 PodWorkers test. 2015-03-11 16:58:22 +01:00
Wojciech Tyczynski
80576dfed3 Change PodWorkers to have desired cache. 2015-03-11 16:38:31 +01:00
Andy Goldstein
0c798bbe52 Remove debugging log message from ExecInContainer 2015-03-11 10:07:14 -04:00
Deyuan Deng
9982aaa960 kubelet post node status to master 2015-03-10 23:17:36 -04:00
Brian Grant
9aa744925e Merge pull request #5030 from simon3z/nodeinfo
Add support for fetching node collected information
2015-03-10 14:05:41 -07:00
Paul Morie
a486ab078f Fix selfLink issues in integration test 2015-03-10 14:40:16 -04:00
markturansky
c7e619d4a0 Change volume.NewBuild arg from podUID to ObjectReference 2015-03-10 14:40:16 -04:00
Brian Grant
186f17737e Merge pull request #5252 from erictune/remove_etcd_flags
Remove --etcd_servers flag from kubelet and proxy.
2015-03-10 11:06:12 -07:00
Dawn Chen
106e38ebb3 Merge pull request #5213 from yifan-gu/clean_syncPod
Refactor pkg/kubelet/kubelet.go: shouldContainerBeRestarted().
2015-03-10 09:44:32 -07:00
Brian Grant
6062e14313 Merge pull request #5220 from nikhiljindal/camelCaseFieldSelectors
Changing v1beta3 field selectors to be camelCased
2015-03-10 09:35:03 -07:00
Eric Tune
2ca265ae3b Remove --etcd_servers flag from kubelet and proxy.
All the distros that use this have been updated,
or have PRs out to update them, or owners
have been asked to fix RPMs.

Removing this prevents further use of this model.

Remove now dead code: EtcdClientOrDie

Remove now dead pkg/proxy/config/etcd.go.

Remove unused imports.
2015-03-10 09:29:09 -07:00
Federico Simoncelli
644d775bc1 kubelet: retport system info in node information
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-10 10:11:02 -04:00
Federico Simoncelli
1b18440f35 kubelet: add GetNodeInfo implementation
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-10 10:11:01 -04:00
Mike Danese
c1b1f29bdc migrate healthz in pkg/kubelet/server.go to custom health checks 2015-03-09 19:26:07 -07:00
nikhiljindal
916ca9cc68 Changing v1beta3 field selectors to be camelCased 2015-03-09 18:01:01 -07:00
Yifan Gu
241ef34fba Refactor pkg/kubelet/kubelet.go: shouldContainerBeRestarted().
Simplify the function signature.
2015-03-09 17:42:57 -07:00
Victor Marmol
e187be9fe1 Merge pull request #5143 from vmarmol/cadvisor-pkg
Refactoring Kubelet's cAdvisor interface into a package.
2015-03-09 11:36:03 -07:00
Victor Marmol
ab3c9de34b Refactoring cAdvisor interface into a package.
This will make it easier to start running the real cAdvisor alongside
Kubelet. This change is primarily no-op refactoring. The main behavioral
change is that we always create a cAdvisor interface and expect it to
always be available. When we make a request, if cAdvisor is not
connected the request fails with a connection error. This failure is
handled today as well.
2015-03-09 11:19:05 -07:00
Rohit Jnagal
77546692a7 Merge pull request #5187 from vmarmol/wait-docker
Kubelet: wait up to 5m for Docker to come up.
2015-03-09 10:09:09 -07:00
Victor Marmol
ca84aae454 Kubelet: wait up to 5m for Docker to come up.
The Kubelet assumes Docker is running during its execution and on
machine boot it is a race between Docker coming up and Kubelet calling
Docker. This PR waits for Docker to be up before the Kubelet begins
doing useful work. On timeout, Kubelet exits and expects to be
restarted.
2015-03-09 09:50:34 -07:00
Clayton Coleman
0f87337667 Kubelet tests broken on Macs with uppercase names
Hostname behavior across operating systems is inconsistent (Macs can
have uppercase host names, so can some other systems).  In general,
always strings.ToLower(os.Hostname()).
2015-03-08 23:44:32 -04:00
Vish Kannan
53ec66caf4 Merge pull request #5152 from vmarmol/cadvisor-dep
Rename cAdvisor info API to cadvisorApi
2015-03-06 18:09:28 -08:00
Victor Marmol
1866adddd3 Merge pull request #5157 from yifan-gu/clean_prober
Adjust prober's logging verbose.
2015-03-06 18:04:12 -08:00
Yifan Gu
da5d7c7814 Adjust prober's logging. 2015-03-06 17:30:29 -08:00
Victor Marmol
798513844c Merge pull request #5148 from yifan-gu/clean_prober
Refactor pkg/kubelet/kubelet.go: probeContainer().
2015-03-06 17:04:57 -08:00
Yifan Gu
276fb1731c Refactor pkg/kubelet/kubelet.go: probeContainer().
Put the retry loop in probe.go into a function.
2015-03-06 16:57:20 -08:00
Yifan Gu
131e8a0e35 Refactor pkg/kubelet/kubelet.go: probeContainer().
Update the probe_test.go.
2015-03-06 16:38:09 -08:00
Yifan Gu
09af0cd3b5 Refactor pkg/kubelet/kubelet.go: probeContainer().
Split the function into probeContainerLiveness() and probeContainerReadiness().
2015-03-06 16:37:58 -08:00
Victor Marmol
43b469bd9f Rename cAdvisor info API to cadvisorApi 2015-03-06 16:06:38 -08:00
Dawn Chen
9439c0f3bd Merge pull request #5103 from yujuhong/naming
kubelet: revamp the pod/container naming scheme
2015-03-06 15:58:58 -08:00
Victor Marmol
a35f4374c5 Update cAdvisor ContainerInfo references to v1 API.
The cAdvisor data structures were versioned recently. We use the v1
versions so this commit makes that explicit.
2015-03-06 15:42:06 -08:00
Yu-Ju Hong
fe70be9261 kubelet: revamp the pod/container naming scheme
There are two main goals for this change.

 1. Fix the naming scheme in kubelet so that it accepts DNS subdomain
    name/namespaces correctly (#4920). The design is discussed in #3453.

 2. Prepare for syncing the static pods back to the apiserver(#4090). This
    includes

  - Eliminate the source component in the internal full pod name (#4922). Pods
    no longer need sources as they will all be sync'd via apiserver.

  - Changing the naming scheme for the static (file-, http-, and etcd-based)
    pods such that they are distinguishable when syncing back to the apiserver.

The changes includes:
  *	name = <pod.Name>-<hostname>
  * namespace = <cluster_namespace> (i.e. "default" for now).
  * container_name = k8s_<contianer_name>.<hash_of_container>_<pod_name>_<namespace>_<uid>_<random>

Note that this is not backward-compatible, meaning the kubelet won't recognize
existing running containers using the old naming scheme.
2015-03-06 13:14:45 -08:00
Yu-Ju Hong
32fd331e73 Revert "Split up kubelet "source seen" logic"
We want to sync pods from file/http/etcd sources to the apiserver, hence
differentiating sources is no longer desired.

This reverts commit 110ab6f1bd.
2015-03-06 12:57:48 -08:00
Deyuan Deng
50de1a80c2 kubelet should take a client interface 2015-03-06 15:01:55 -05:00
Dawn Chen
2d0743b143 Merge pull request #5019 from yujuhong/reject_pods
kubelet: reject pods on host port conflict
2015-03-06 11:42:04 -08:00
Dawn Chen
3835e0e6e6 Merge pull request #4943 from vmarmol/image-manager
Implementing ImageManager to take over image lifecycle.
2015-03-06 11:09:38 -08:00
Victor Marmol
4f3f073f3c Implementing ImageManager to take over image lifecycle.
All images are tracked, when they were created and when they were last
used. FreeSpace() evicts these images in least recently used order,
breaking ties with oldest first.
2015-03-06 10:48:28 -08:00
Yu-Ju Hong
3ccdb8db98 kubelet: reject pods on host port conflict
When a host port conflict is detected, kubelet should set the pod status to
fail. The failed status will then be polled by other components at a later time,
which allows replication controller to create a new pod if necessary.

To achieve this, this change stores the pod status information in a status map
upon the detecton of port conflict. GetPodStatus() consults this status map
before attempting to query docker. The entries in the status map will be removed
when the pod is no longer associated with the node.
2015-03-06 10:46:49 -08:00
gmarek
4a01a4dbf5 Refactor Kubelets syncPod function by wrapping some functionalities into functions 2015-03-06 18:32:11 +01:00
Brendan Burns
d4755704b1 Merge pull request #5104 from liggitt/secure_kubelet
Plumb tls and cert options into kubelet start
2015-03-06 15:32:23 +01:00
Dawn Chen
54b2b47caa Merge pull request #4756 from vishh/kubelet
Relax constraints on container status while fetching container logs
2015-03-05 21:49:48 -08:00
Victor Marmol
79f2773745 Merge pull request #5120 from dchen1107/docker
monit health check kubelet and restart unhealthy one
2015-03-05 17:39:03 -08:00
Dawn Chen
7a47ea8913 Ask monit health check kubelet; if failed, restart. 2015-03-05 17:29:38 -08:00
Dawn Chen
43b4f41202 Allow /healthz check from localhost 2015-03-05 17:27:56 -08:00
Victor Marmol
b314dc6025 Merge pull request #5032 from yifan-gu/clean_syncPod
Refactor pkg/kubelet/kubelet.go: syncPod().
2015-03-05 17:24:20 -08:00
Yifan Gu
ed1823e276 Refactor pkg/kubelet/kubelet.go: syncPod().
Makes the syncPod() takes only the containers that belongs to the pod.
2015-03-05 16:40:50 -08:00
Victor Marmol
33e6c3ebb3 DockerCache doesn't get containers at startup.
Fixes #5092.
2015-03-05 16:25:13 -08:00
Vishnu Kannan
f6910803a9 Relax constraints on container status while fetching container logs 2015-03-06 00:19:52 +00:00
Jordan Liggitt
02622b1401 Plumb tls and cert options into kubelet start 2015-03-05 16:30:52 -05:00
Daniel Smith
6453bf3e61 Merge pull request #4974 from pmorie/record-sources
Allow multiple sources to be used with record package
2015-03-05 11:51:08 -08:00
Paul Morie
02b18edac6 Allow multiple sources to be used with record package 2015-03-05 13:54:29 -05:00
Paul Morie
8ef04a8425 Factor mount utility code out gce_pd volume plugin 2015-03-05 13:49:32 -05:00
Tim Hockin
fdea7252a4 Merge pull request #5001 from brendandburns/api3
Embed VolumeSource in v1beta3 and internal.
2015-03-04 09:50:14 -08:00
Eric Tune
fd8361edf2 Merge pull request #5021 from justinsb/log_kubelet_internalerror
Log HTTP InternalServerErrors in the kubelet
2015-03-04 08:22:15 -08:00
Eric Tune
2ec257eb49 Merge pull request #5023 from justinsb/fix_typo_in_test
Fix typo in test
2015-03-04 08:12:08 -08:00
Justin Santa Barbara
7725cd23ec Fix typo in test 2015-03-04 10:10:08 -05:00
Derek Carr
cb1e044a60 Merge pull request #4923 from lavalamp/fix4
Allow reflector to do full resync periodically
2015-03-04 09:58:03 -05:00
Justin Santa Barbara
b681a45fb6 Log HTTP InternalServerErrors in the kubelet
Otherwise we just get a stack trace and no message
2015-03-04 09:48:44 -05:00
Brendan Burns
fb90b56bf6 Embed VolumeSource in v1beta3 and internal. 2015-03-04 02:25:40 -08:00
Victor Marmol
71e545bf81 Merge pull request #4970 from dchen1107/podstatus
Hide POD container from end users
2015-03-02 17:15:24 -08:00
Dawn Chen
dad365fb2b Hide POD container from end users 2015-03-02 17:03:28 -08:00
Daniel Smith
c4822dc060 Revert "Revert "Adding converter functions to convert field label selectors to internal version before matching""
This reverts commit 5f35a67002.
2015-03-02 15:00:09 -08:00
Brendan Burns
fe973461f5 Merge pull request #4916 from thockin/plural_21_endpoints
Rename type Port to ContainerPort
2015-03-02 10:53:32 -08:00
Zach Loafman
5f35a67002 Revert "Adding converter functions to convert field label selectors to internal version before matching" 2015-02-28 11:42:49 -08:00
Tim Hockin
ea548b8260 Rename type Port to ContainerPort
Sadly I had to do this by hand - I just could not get gorename to fix up
users of it.
2015-02-27 21:05:59 -08:00
Daniel Smith
554b1c847c add occasional polling to reflector 2015-02-27 16:59:14 -08:00
Dawn Chen
0fec31a11e Merge pull request #4918 from vmarmol/handle-crash
Handle crash in per-pod thread and container killer.
2015-02-27 16:54:37 -08:00
Victor Marmol
c7e7ecdf2c Handle crash in per-pod thread and container killer. 2015-02-27 16:33:46 -08:00
Daniel Smith
d68c738fcf Merge pull request #4575 from nikhiljindal/versionedFieldSelector
Adding converter functions to convert field label selectors to internal version before matching
2015-02-27 16:33:15 -08:00
nikhiljindal
48e7945f65 Versioning the field selectors 2015-02-27 16:10:59 -08:00
Victor Marmol
cc3c4414f8 Merge pull request #4915 from yujuhong/hostport
kubelet: record an event with a clear reason on host port conflict
2015-02-27 16:04:04 -08:00
Yu-Ju Hong
241df2d3be kubelet: record an event with a clear reason on host port conflict
Currently, kubelet silently ignores pods that caused host port conflict. This
commit surfaces the error by recording an event.

It also makes sure that kubelet iterates through the pods in the order of the
creation timestamp, which ensures that pods created later are ignored on
conflict.
2015-02-27 15:51:53 -08:00
Victor Marmol
556acc792b Adding ContainersPerPodCount metric.
This will let us know the composition of pods in clusters.
2015-02-27 11:27:09 -08:00
Victor Marmol
a9301b1996 Adding metric for latency of SyncPods (synching all pods). 2015-02-27 11:11:43 -08:00
Victor Marmol
cbf93822ac Adding metrics to measure latency of Docker operations.
Part of #4604.
2015-02-27 10:26:06 -08:00
Victor Marmol
ed0f5885b5 Adding sync pod latency metric (again).
Latency is broken down by create, update, and sync pods.

Part of #4604.
2015-02-27 09:35:20 -08:00
Wojciech Tyczynski
a973f57d6b Thread per pod 2015-02-27 13:27:29 +01:00
Sami Wagiaalla
9150cb9d95 Catch kubelet-master hostname mismatch during health check
During the kubelet's /healthz responce check to see if the
hostname used by the master matches the hostname the kubelet
knows itself by. If not fail the health check.

Signed-off-by: Sami Wagiaalla <swagiaal@redhat.com>
2015-02-26 10:22:03 -05:00
Vish Kannan
e3af23e6e9 Merge pull request #4792 from vmarmol/mon-containers-per-pod
Add Kubelet metrics for pod and container counts.
2015-02-25 18:51:22 -08:00
Victor Marmol
95464349d5 Add Kubelet metrics for pod and container counts.
Part of #4604.
2015-02-25 12:18:59 -08:00
Daniel Smith
ec8ecf3993 Merge pull request #4494 from brendandburns/race
Add protection for the pods member varaible.
2015-02-25 10:41:32 -08:00
Brendan Burns
801ad909ca Add protection for the pods member varaible.
Address comments.
2015-02-24 19:36:11 -08:00
Vish Kannan
0b15f2ff65 Merge pull request #4784 from vmarmol/pod-restart
Kill infra pod when a container is restarted.
2015-02-24 13:37:08 -08:00
Vish Kannan
c561c8b0b1 Merge pull request #4753 from vmarmol/mon
First Kubelet metric and overall plumbing.
2015-02-24 12:51:34 -08:00
Victor Marmol
aadbf221d2 Kill infra pod when a container is restarted.
Revert 0e20f7d736.
Fixes #4759.
2015-02-24 11:52:05 -08:00
Rohit Jnagal
e77322a561 Merge pull request #4755 from yifan-gu/cleanup
pkg/kubelet: Fix logging.
2015-02-24 10:12:02 -08:00
Rohit Jnagal
590a62ffe5 Merge pull request #4767 from mikedanese/kind-to-type
Rename {Node,Pod}ConditionKind -> {Node,Pod}ConditionType
2015-02-24 10:10:57 -08:00
Yifan Gu
1a5a842ac5 pkg/kubelet: Fix logging. 2015-02-24 09:47:10 -08:00
Wojciech Tyczynski
dcef5e2955 Introduce DockerCache in Kubelet. 2015-02-24 09:10:07 +01:00
Mike Danese
5267127af1 api: rename conditionkind -> conditiontype 2015-02-23 22:13:21 -08:00
Victor Marmol
c40a60e945 Adding image pull latency metric.
Also adding TODOs for other metrics.

Part of #4604.
2015-02-23 16:30:29 -08:00
Rohit Jnagal
50700419ea Merge pull request #4732 from yifan-gu/cleanup
Remove outdated const.
2015-02-23 16:06:32 -08:00
Victor Marmol
f5beb04c53 Adding Prometheus /metrics handler. 2015-02-23 15:42:04 -08:00
Victor Marmol
d880be0301 Merge pull request #4738 from vmarmol/fix-pull
Remove pullLock from Kubelet.
2015-02-23 14:34:10 -08:00
Rohit Jnagal
b261d8c60a Merge pull request #4724 from mikedanese/readiness-states-cleanup
Don't lock readinessStates on concurrent reads
2015-02-23 14:29:11 -08:00
Rohit Jnagal
cbcd35539f Merge pull request #4718 from cjcullen/pdtest
Fix PD detach (fix the mount path/device name calculation).
2015-02-23 14:28:02 -08:00
Daniel Smith
650f6cb826 Revert "Multi-port Endpoints" 2015-02-23 13:53:21 -08:00
Tim Hockin
eed36455a7 Merge pull request #4653 from thockin/secret_fixups
Secrets fixups
2015-02-23 13:49:19 -08:00
Victor Marmol
a6d975c929 Remove pullLock from Kubelet.
The lock was only ever used to grab a read lock before container pulls.
2015-02-23 13:27:55 -08:00
Tim Hockin
607b736a3f Rename volume source types to be consistent. 2015-02-23 12:39:57 -08:00
CJ Cullen
54e8240916 Fix PD detach (fix the mount path/device name calculation).
Fix readonly PD attach (don't try to format).
Add an e2e test to verify that PDs are attached and detached correctly.
Add an e2e test to verify that readonly PDs can be attached to >1 pods.
2015-02-23 12:19:22 -08:00
Yifan Gu
a631252abf Remove outdated const. 2015-02-23 11:00:38 -08:00
Mike Danese
d6fb8ce05a Don't lock readinessStates on concurrent reads. 2015-02-23 10:49:39 -08:00
Tim Hockin
e0fd83096c Rename type Port to ContainerPort
Sadly I had to do this by hand - I just could not get gorename to fix up
users of it.
2015-02-21 22:26:38 -08:00
Victor Marmol
ccdbad89ce Merge pull request #4677 from vmarmol/ooms
Check Docker init PID is valid before we use it.
2015-02-20 13:53:01 -08:00
Andy Goldstein
bd2eb2fa8f Fix flaky exec/portforward tests
Fixes #4676
2015-02-20 16:29:57 -05:00
Victor Marmol
da2f4b6d61 Check Docker init PID is valid before we use it.
This gives us an error if the PID is not returned as we expect.
2015-02-20 13:10:40 -08:00
Tim Hockin
7fe7f8a542 move pkg/kubelet/server to cmd/kubelet/app 2015-02-20 08:49:12 -08:00
Tim Hockin
646621e0e8 Merge pull request #3763 from ncdc/remote-exec-port-forward
Add streaming remote command execution and port forwarding
2015-02-20 08:40:33 -08:00
Victor Marmol
d22fefd72d Merge pull request #4650 from xiang90/cadvisor
pkg/kubelet: minor fixes for cadvisor.go
2015-02-20 08:35:27 -08:00
Andy Goldstein
5bd0e9ab05 Add streaming command execution & port forwarding
Add streaming command execution & port forwarding via HTTP connection
upgrades (currently using SPDY).
2015-02-20 09:57:02 -05:00
rsokolowski
e81ef667c2 Fix broken kubelet_test.go. 2015-02-20 11:20:12 +01:00
Dawn Chen
efac150039 Merge pull request #4563 from xiang90/syncpod
pkg/kubelet: recreate infra pod if the pod is changed
2015-02-20 00:29:26 -08:00
Dawn Chen
530c1559e1 Merge pull request #4647 from vmarmol/ooms
Make POD container last OOM victim
2015-02-20 00:25:52 -08:00
Xiang Li
5dc20421dc pkg/kubelet: drop the unnecessary method receiver 2015-02-19 21:40:17 -08:00
Xiang Li
c6d8bd8f5e pkg/kubelet: return error when there is no cadvisor connection 2015-02-19 21:35:57 -08:00
Xiang Li
ce1ced4322 pkg/kubelet: make comments follow go-style 2015-02-19 21:34:52 -08:00
Xiang Li
6433e2dd2b pkg/kubelet: uncaptialize the error message in cadvisor.go 2015-02-19 21:30:24 -08:00
Victor Marmol
8649628c6c Make POD container last OOM victim.
Setting the oom_score_adj of the PID of the POD container to -100 which is less
than the default of 0. This ensures that this PID is the last OOM victim
chosen by the kernel.

Fixes #3067.
2015-02-19 19:24:01 -08:00
Victor Marmol
2d1a8d0da0 Allow ApplyOomScoreAdj to specify what PID to adjust for. 2015-02-19 17:16:31 -08:00
Daniel Smith
b7b537efc7 fix confusing defer 2015-02-19 17:11:32 -08:00
Victor Marmol
40cb417901 Merge pull request #4531 from wojtek-t/batch_requests_in_kubelet
Batch updates of multiple Pods.
2015-02-19 10:50:26 -08:00
Jerzy Szczepkowski
d614fc7fcc Fire event for pod when mount fails.
Implemented firing event for pod when mount of external volume fails. Fixes #4540.
2015-02-19 11:08:36 +01:00
Wojciech Tyczynski
702ad7732f Applied comments 2015-02-19 08:01:16 +01:00
Eric Tune
af67829eca Merge pull request #4515 from pmorie/secrets_wip
Secret volume plugin iteration 1
2015-02-18 15:57:31 -08:00
Xiang Li
0e20f7d736 pkg/kubelet: recreate infra pod if the pod is changed 2015-02-18 15:05:16 -08:00
Dawn Chen
8022c74b55 Merge pull request #4473 from xiang90/server
pkg/kubelet/server.go: minor fixes
2015-02-18 14:50:51 -08:00
Paul Morie
a42ff94c8f Add secret volume plugin and e2e test 2015-02-18 16:27:44 -05:00
Xiang Li
6b91901bd3 pkg/kubelet: minor fixes in server.go 2015-02-18 13:18:45 -08:00
Prashanth Balasubramanian
9427f75788 Cadvisor returns richer errors to the kubelet server. 2015-02-18 09:31:28 -08:00
Wojciech Tyczynski
25c8f07c67 Batch updates of multiple Pods. 2015-02-18 16:46:16 +01:00
Dawn Chen
c843adbd8f Create docker.Container obj with Name. Integration test is using fake_docker_client
to create and start a fake container. When StartContainer, it pass a name as docker
ID for testing purpose, but leave Name uninitialized. This PR fixes such issue.

Fixed #4472.
2015-02-17 15:23:21 -08:00
Dawn Chen
bafa240187 Add debugging information for #4472 2015-02-17 13:28:15 -08:00
Clayton Coleman
4859aa7cd8 Merge pull request #4453 from derekwaynecarr/make_quota_more_efficient
Make ListWatch work with a ListFunc and WatchFunc
2015-02-17 14:48:11 -05:00
Nikhil Jindal
81d0a88f1e Merge pull request #4459 from xiang90/kubulete
kubelet: minor cleaning up
2015-02-17 10:18:47 -08:00
Xiang Li
042dc1faa3 pkg/kubelet: uncaptialize error message 2015-02-16 09:33:20 -08:00
Xiang Li
2437e94248 pkg/kubelet: fix wrong code path in runContainer 2015-02-16 09:32:37 -08:00
Xiang Li
13bb378d1c pkg/kubelet: reduce indentation 2015-02-16 08:46:41 -08:00
Xiang Li
edc926ffcb pkg/kubelet: capitalize message in print 2015-02-16 08:40:07 -08:00
Xiang Li
da6d1da12d pkg/kubelet: remove unused var in handlers.go 2015-02-16 08:38:10 -08:00
Mike Danese
4ba8ecd1fb move api.Probe timeout default to central defaults 2015-02-15 23:44:55 -08:00
Xiang Li
3c2ead5b29 pkg/kubelet: minor cleanup for probe.go 2015-02-15 22:25:14 -08:00
derekwaynecarr
c0ce15c588 Make list watch take a ListFunc and WatchFunc, provide default funcs from client 2015-02-15 22:26:05 -05:00
Dawn Chen
20dc1c2481 Merge pull request #4410 from brendandburns/fixer
Don't delete the pod infrastructure container on health check failures.
2015-02-13 15:18:27 -08:00
Victor Marmol
5d6ad845cc Use Docker name (not ID) to parse Kubernetes components.
Since the parsing function doesn't return an error all the components
returned empty strings. This caused us to enforce the MaxContainerLimit
as a global limit instead of a per-container limit.

Fixes #4413.
2015-02-13 13:08:15 -08:00
Brendan Burns
4ad3ea438d Revert "Revert "Add an event for health check failures.""
This reverts commit fc4e711a8c.
2015-02-13 09:23:13 -08:00
Clayton Coleman
09f18031fe Merge pull request #4285 from brendandburns/auth
Add a more detailed error message for potential auth fails in docker pull.
2015-02-13 12:08:48 -05:00
Saad Ali
fc4e711a8c Revert "Add an event for health check failures." 2015-02-13 08:10:45 -08:00
Saad Ali
c112f8f1bb Merge pull request #4408 from brendandburns/printing
Add an event for health check failures.
2015-02-13 07:59:26 -08:00
Brendan Burns
5e49a606e1 Address changes. 2015-02-12 21:39:42 -08:00
Brendan Burns
8b7dfc9359 Return logs for failed and succeeded pods too. 2015-02-12 21:36:25 -08:00
Brendan Burns
4dbf98e98f Don't delete the pod infrastructure container on health check failures. 2015-02-12 21:28:32 -08:00
Brendan Burns
c03a435501 Add an event for health check failures. 2015-02-12 19:08:23 -08:00
Brendan Burns
0532c46217 Add a more detailed error message for potential auth fails in docker pull. 2015-02-12 17:00:59 -08:00
Eric Tune
dd8f335380 Merge pull request #4376 from dchen1107/podstatus
Fix podstatus issue caused by docker's resource temporarily unavailable issue
2015-02-12 13:16:09 -08:00
Dawn Chen
af54c62766 Fix podstatus issue caused by docker's resource temporarily unavailable error 2015-02-11 23:52:58 -08:00
Vishnu Kannan
922881fcd2 Improve error handling for '/containerLogs' API in kubelet. 2015-02-12 02:22:26 +00:00
Eric Tune
9ea4d2f814 Merge pull request #4323 from dchen1107/podstatus
Check if kubelet does know such Pod before querying status.
2015-02-11 11:13:50 -08:00
Dawn Chen
f5f2b6f773 Check if kubelet does know such Pod before querying status. 2015-02-11 10:16:04 -08:00
Dawn Chen
c55921676c Merge pull request #4271 from ArtfulCoder/logging_etcd
Updated etcd-pod-dir-fetch logging.
2015-02-10 13:41:06 -08:00
Abhishek Shah
febf8c9b2c Fixed formattting issues in etcd.go 2015-02-10 12:03:40 -08:00
Mike Danese
c72c2a0d1e added tests 2015-02-10 08:30:13 -08:00
Mike Danese
3d0cd81feb refactor pkg/probe ProbeRunners to interfaces and move global probers into kubelet field for testability 2015-02-10 08:30:11 -08:00
Mike Danese
043794492e implement readiness. 2015-02-10 08:30:09 -08:00
Abhishek Shah
f136886dde Updated logging. If etcd-pod-dir-fetch fails because dir was absent, an info message is logged. 2) For all other reasons, the regular error message is logged. 2015-02-09 18:03:58 -08:00
Brendan Burns
cc7279f6a8 Actually use the safeFormatAndMounter... 2015-02-06 17:01:05 -08:00
Zach Loafman
b77abb5945 Merge pull request #4221 from brendandburns/pd_fix
Make gce_safe_format_and_mount actually work correctly.
2015-02-06 14:50:20 -08:00
Brendan Burns
3d6c9fc9e8 Fix gce_pd to only use safe_format_and_mount when mounting block devices. 2015-02-06 12:41:21 -08:00
Brendan Burns
35fa143b29 Revert "Revert "Start using GCE safe format and mount for mounting disks.""
This reverts commit 858a85e8fe.
2015-02-06 10:09:00 -08:00
Brendan Burns
94d852e8a6 Merge pull request #4214 from brendandburns/pd_fix
Revert "Start using GCE safe format and mount for mounting disks."
2015-02-06 09:58:51 -08:00
Brendan Burns
858a85e8fe Revert "Start using GCE safe format and mount for mounting disks."
This reverts commit 3f109d6d46.
2015-02-06 09:58:03 -08:00
Dawn Chen
05de54249f Merge pull request #4191 from simon3z/master
api: add image's id to ContainerStatus
2015-02-06 09:35:44 -08:00
Federico Simoncelli
e01df69565 api: add image's id to ContainerStatus
Sometimes for external applications it is important to identify
exactly what images are running. Since tags can be moved to point
to newer builds this information can be used to identify old images
running.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-02-06 09:01:14 -05:00
Brian Grant
175e9caa55 Merge pull request #4194 from dchen1107/podstatus
Kubelet decides podStatus
2015-02-05 17:18:39 -08:00
Brendan Burns
3f109d6d46 Start using GCE safe format and mount for mounting disks.
This removes the need for disks to be formatted.
2015-02-05 17:01:37 -08:00
Mike Danese
14bfec92f2 rename probe.Status to probe.Result. 2015-02-05 15:49:58 -08:00
Dawn Chen
f762e062f2 Kubelet decides podStatus 2015-02-05 15:49:41 -08:00
Brendan Burns
8e6f5c7201 Merge pull request #3593 from commonlisp/master
Add timeouts to HealthChecks and retry checks
2015-02-05 15:40:22 -08:00
Brendan Burns
8b25b43039 Merge pull request #4117 from wojtek-t/validate_docker_version
Check Docker version in Kubelet /healthz handler
2015-02-05 10:06:33 -08:00
George Kuan
e8c33b7916 Add timeouts to HealthChecks and retry checks
Fixes issue #3532. Added timeouts for HTTP and TCP checks
and enabled kubelet/probe to kubelet#maxRetries times
before declaring Failure.

Added Probe.TimeoutSecs to API

Probe variants now check container.LivenessProbe.TimeoutSeconds
Also added a test for timeouts in http_test.go.
2015-02-05 06:04:45 -08:00
Wojciech Tyczynski
1a3419f970 Fix the min allowed Docker version. 2015-02-05 02:34:04 +01:00
Brendan Burns
cfe5b14114 Wait until containers actually finish running before trying to clean up
volumes or pods.
2015-02-04 17:28:41 -08:00
Wojciech Tyczynski
524cdba101 Fix hack/test-cmd.sh test. 2015-02-05 01:58:26 +01:00
Brendan Burns
6e897524be Merge pull request #4093 from nelcy/master
Fix orphaned pod & volume cleanup order. Volumes need to be unmounted before pod cleanup.
2015-02-04 14:38:20 -08:00
Wojciech Tyczynski
ead67108ce Use existing method to get Docker version. 2015-02-04 20:50:21 +01:00
Wojciech Tyczynski
78f66a6ce9 Check Docker version in Kubelet /healthz handler 2015-02-04 18:31:24 +01:00
chakri
9508b2bf12 Fix orphaned pod & volume cleanup order. Volumes need to be unmounted before pod cleanup. 2015-02-04 01:46:28 +00:00
Yu-Ju Hong
4a72addaeb Factor out API defaulting from validation logic
Currently, the validation logic validates fields in an object and supply default
values wherever applies. This change factors out defaulting to a set of
defaulting callback functions for decoding (see #1502 for more discussion).

 * This change is based on pull request 2587.

 * Most defaulting has been migrated to defaults.go where the defaulting
   functions are added.

 * validation_test.go and converter_test.go have been adapted to not testing the
   default values.

 * Fixed all tests with that create invalid objects with the absence of
   defaulting logic.
2015-02-03 00:55:42 -08:00
Brian Grant
2903fce2b8 Merge pull request #4031 from jbeda/hyperkube-kubelet
Convert kubelet and proxy to hyperkube
2015-02-02 18:08:59 -08:00
Tim Hockin
1ee1702be0 Merge pull request #3808 from brendandburns/master
Add a mounter that uses google's safe_format_and_mount.
2015-02-02 16:29:10 -08:00
Brendan Burns
ac21ac24fa Add a mounter that uses google's safe_format_and_mount. 2015-02-02 16:16:20 -08:00
Tim Hockin
ac399fb354 Merge pull request #3967 from brendandburns/fixer
Be a little more careful when removing mount points.
2015-02-02 15:46:18 -08:00
Joe Beda
76df5471b5 Covert the kubelet binary to hyperkube.
This leaves `pkg/kubelet/server/server.go` looking a little ugly as there is an extra layer of "config" structs that isn't needed.  This is left as a TODO for now.
2015-02-02 14:03:13 -08:00
Joe Beda
d96afdd645 Move 'pkg/standalone' package to 'pkg/kubelet/server'.
This paves the way to hyperkube for the kubelet.
2015-02-02 14:03:13 -08:00
Brendan Burns
7f06fbb081 Be a little more careful when removing mount points. 2015-02-02 12:35:24 -08:00
Vishnu Kannan
5e36f63f8b Adding ResourceRequirementSpec to v1beta1, v1beta2, and v1beta3 APIs. The old resource
quantities 'CPU' and 'Memory' will be preserved until support for v1beta1 and v1beta2 APIs are
dropped.
Improved resource validation in the process.
2015-02-01 02:19:55 +00:00
Clayton Coleman
556e59b512 Merge pull request #3810 from ironcladlou/cache-namespacing
Support namespacing in cache.Store
2015-01-30 13:19:41 -05:00
Brian Grant
207d0f5d40 Merge pull request #3878 from thockin/infra_name
Use a constant for the pod infra container name
2015-01-30 09:18:00 -08:00
Ye Yin
248624fc1f Add docker's add/drop capabilites 2015-01-30 15:09:31 +08:00
Brendan Burns
a0b8429d2e Reverse the order of unmounting and removing the pd disk.
This should mean that we retry detaching if the original detach fails for some reason.
2015-01-29 16:13:12 -08:00
Dan Mace
5ee943d683 Support namespacing in cache.Store implementations
Support namespacing in cache.Store by framing the interface functions
around interface{} and providing a key function to each Store implementation.

Implementation of a fix for #2294.
2015-01-29 17:39:49 -05:00
Mrunal Patel
19e0605f5b Replace "net" by "pod infra" in docs and format strings. 2015-01-28 15:03:06 -08:00
Tim Hockin
804643a04b Merge pull request #3818 from mikedanese/probe-refactor
break api.Probe out of api.LivenessProbe
2015-01-28 12:41:35 -08:00
Dawn Chen
b0bcee7b40 Increase timeout for all testcases in file_test.go 2015-01-28 11:27:15 -08:00
Mike Danese
78f33e950a rename api.LivenessProbe to api.Probe and break out Actions 2015-01-28 11:20:44 -08:00
Tim Hockin
c8f61885df Merge pull request #3695 from mikedanese/ready
refactor pkg/health into more reusable pkg/probe
2015-01-28 11:00:32 -08:00
Tim Hockin
70ab406751 Use a constant for the pod infra container name
This is an implementation detail that has leaked out of kubelet.  Use a
constant to prevent divergence, for now.  Plan to get rid of it.

@dchen1107
2015-01-28 10:13:02 -08:00
Paul Morie
962bdda0dc Fix typo in kubelet 2015-01-28 12:00:53 -05:00
Tim Hockin
371637a5fc Merge pull request #3845 from brendandburns/disk
Detach the PD disk from the VM in some failure cases.
2015-01-27 15:46:36 -08:00
Tim Hockin
7e6f3af937 Merge pull request #3817 from mrunalp/feature/shared_ipc
Shared IPC namespace for containers in a pod
2015-01-27 15:41:34 -08:00
Brendan Burns
bc055d2bd0 Detach the PD disk from the VM in some failure cases. 2015-01-27 13:58:42 -08:00
Mike Danese
5dc6362f8a rename probe.Healthy to probe.Success and renam probe.Unhealthy to probe.Failure. 2015-01-27 11:20:30 -08:00
Mike Danese
6eb0b89cbd add Probers to Probe pkgs. 2015-01-27 11:20:30 -08:00
Mike Danese
a298402bd4 remove pkg/health and move everything over to pkg/probe 2015-01-27 11:20:30 -08:00
Mike Danese
5ee4071cf1 migrated tests 2015-01-27 11:20:29 -08:00
Mike Danese
ee56a1d3e3 create pkg/probe as successor to pkg/health. 2015-01-27 11:20:29 -08:00
Brendan Burns
7e558a7535 Merge pull request #3813 from mattmoor/master
Fix for issue 3797.
2015-01-27 09:56:49 -08:00
Mrunal Patel
b6a0ff1003 IP: Shared IPC. 2015-01-27 09:26:36 -08:00
Brendan Burns
e5c38a825b Fix unit tests @ main. 2015-01-26 22:12:24 -08:00
Matt Moore
2d396797a9 Fix for issue 3797.
Docker's logic for resolving credentials from .dockercfg accepts two kinds of matches:
1. an exact match between the dockercfg entry and the image prefix
2. a hostname match between the dockercfg entry and the image prefix

This change implements the latter, which permits the docker client to take .dockercfg entries of the form:
   https://quay.io/v1/
and use them for images of the form:
   quay.io/foo/bar
even though they are not a prefix-match.
2015-01-26 14:06:12 -08:00
Tim Hockin
d63162b7e7 Make kubelet's HTTP source go through conversion 2015-01-22 14:09:37 -08:00
Tim Hockin
4ff2865cd1 Make kubelet's file source go through conversion
See comments for details.  Same problem exists in HTTP source, but I want to
float this for review first.
2015-01-22 13:10:59 -08:00
Tim Hockin
ffb2b62726 Merge pull request #3725 from dchen1107/cleanup
Generate pod.Name when pod.Name == "" for both HTTP and file sources.
2015-01-22 13:10:27 -08:00
Dawn Chen
ec77507915 Generate pod.Name when pod.Name == "" for both HTTP and file sources.
Fix #3584
2015-01-22 12:53:30 -08:00
Tim Hockin
30219f8dfa Merge pull request #3664 from thockin/pull-if
Pull if
2015-01-21 13:05:28 -08:00
Tim Hockin
81343aac63 Change PullPolicy constants to match 2015-01-21 12:48:56 -08:00
Tim Hockin
819803b79f Make VolumeSource not be a pointer
There's no reason for it to be a pointer.
2015-01-20 17:54:04 -08:00
Brian Grant
dd45246150 Merge pull request #3587 from dchen1107/image
Clean up Kubernetes PullPolicy
2015-01-20 17:18:26 -08:00
Tim Hockin
60ec08db93 Rename HostDir to HostPath in v1beta3 2015-01-20 15:56:44 -08:00
Brendan Burns
9192a4ce22 Merge pull request #3642 from dchen1107/clean
Remove image GC.
2015-01-20 14:07:00 -08:00
Dawn Chen
d1af520bd0 Merge pull request #3589 from filbranden/fix_nil_interface_pointer_without_reflect1
Fix comparison of EtcdClient to nil so that it does not run into the pointer vs. interface issue
2015-01-20 13:55:25 -08:00
Dawn Chen
2299c04cea Remove image GC.
Fix #3617,#3611, and #3393.
2015-01-20 13:43:08 -08:00
Dawn Chen
3101a33d32 Kubelet stop using api/helper.go for PullPolicy 2015-01-20 11:54:22 -08:00
Dawn Chen
aec4594a8d Introduce validatePullPolicyWithDefault to validation. 2015-01-20 11:54:22 -08:00
Tim Hockin
6cb275829f Implement volumes as plugins.
Break up the monolithic volumes code in kubelet into very small individual
modules with a well-defined interface.  Move them all into their own packages
and beef up testing along the way.
2015-01-20 11:45:45 -08:00
Andrew Seidl
6dee1d7fa4 Fix typos in user-facing strings 2015-01-18 01:32:34 -06:00
Filipe Brandenburger
79ff06ffa1 Fix comparison of EtcdClient to nil so that it does not run into the pointer vs. interface issue
This is a partial rollback of commit 6e6f465a36 ("Fix a crash for
kubelet when without EtcdClient") in which we used the `reflect` module
to inspect that the pointer stored inside the interface was `nil`, but
as pointed out by @lavalamp, the correct solution is to make the
function return the interface type, in which case a `return nil` will
return the interface nil and not a nil pointer that turns into a non-nil
value when coerced into an interface.

For more details, see http://golang.org/doc/faq#nil_error and the
discussion in PR #3356.

Tested by installing a kubelet built from head with this patch into a
containervm instance and confirming it did not crash on standalone.go.
Confirmed that by only removing the `reflect.IsNil()` comparison but not
changing the return type of `EtcdClientOrDie()` did indeed cause that
same crash, so changing the return type does indeed fix the issue.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2015-01-16 16:43:05 -08:00
Brendan Burns
d54242a649 Merge pull request #3552 from commonlisp/master
Replace kubelet logging %s--%s--%s with dockertools.BuildDockerName()
2015-01-16 14:31:43 -08:00
Eric Tune
98bdd3f7c4 Test for and fix crash with nil client in kubelet.
Added test that fails before fix.
Fixed use of nil pointer.
2015-01-16 13:39:31 -08:00
Brendan Burns
e86c8f9e53 Merge pull request #3565 from dchen1107/podstatus
Introduce PodStatusResult, and deprecate PodContainerInfo.
2015-01-16 12:05:07 -08:00
Dawn Chen
15e9fa8a9d Introduce PodStatusResult, and deprecate PodContainerInfo. 2015-01-16 09:10:40 -08:00
George Kuan
af4bbd1a1b Replace kubelet logging %s--%s--%s with dockertools.BuildDockerName()
Fixes issue #3454
2015-01-15 19:47:54 -08:00
Eric Tune
5aeda8a5bb Remove dead code in test. 2015-01-15 14:49:08 -08:00
Daniel Smith
46f8a56dba Merge pull request #3376 from erictune/channel_api
Kublet watches Pods.
2015-01-15 14:48:12 -08:00
Eric Tune
2e002b1095 Add second pod to test. 2015-01-15 13:36:49 -08:00
saadali
b57cc6a11c Increase timeout for TestEtcdSourceExistingBoundPods test 2015-01-14 17:06:04 -08:00
Daniel Smith
46827720b3 Merge pull request #3493 from saad-ali/testFor3467
Add test case for EtcdSource ExistingBoundPods
2015-01-14 16:35:26 -08:00
saadali
a1c287ede9 Add test case for EtcdSource ExistingBoundPods 2015-01-14 16:15:08 -08:00
Eric Tune
b759f67ee3 Kublet watches Pods.
Added a kubelet config source for watching pods on apiserver.
The pods are converted to boundpods for merging with other
config sources.

The preferred way to create a kubelet is now to pass an apiserver
client but not an etcd client.  Changed cmd/integration to use
apiserver to talk to kubelets.  And cmd/kubernetes.

Unit, integration, and e2e tests pass, except for a failure of the pd
e2e test which was unrelated.
2015-01-14 15:31:26 -08:00
Tim Hockin
1be3de895c Move util.UID to pkg/types 2015-01-14 15:22:21 -08:00
Daniel Smith
c13ae34b02 Merge pull request #3445 from saad-ali/fix3172
Remove CONDITION from event object completely
2015-01-14 15:03:06 -08:00
Eric Tune
88c68e0349 Merge pull request #3331 from pmorie/services
Service visibility w/in namespaces, master services, set env vars in kubelet
2015-01-14 15:01:05 -08:00
Daniel Smith
8a764c02d5 Merge pull request #3478 from thockin/uid_type
Use a strong type for UID fields
2015-01-14 14:20:22 -08:00
saadali
90dfdcecd5 Remove CONDITION from event object completely
# *** ERROR: *** Some files have not been gofmt'd.  To fix these
# errors, run gofmt -s -w <file>, or cut and paste the following:
#   gofmt -s -w pkg/kubecfg/resource_printer.go pkg/proxy/config/config.go pkg/runtime/types.go
#
# Your commit will be aborted unless you override this warning. To
# commit in spite of these format errors, delete the following line:
#   COMMIT_BLOCKED_ON_GOFMT
2015-01-14 14:17:16 -08:00
Paul Morie
fd834ae84d Pods should see services only from their own ns 2015-01-14 17:06:36 -05:00
Dawn Chen
009c5e1129 Using ExtractObj instead of ExtractToList since BoundPods is not a List type 2015-01-14 14:05:47 -08:00
Tim Hockin
e86d4cd3c6 Use a strong type for UID fields 2015-01-14 13:53:43 -08:00
Dawn Chen
0716df8f2b Fix Event.Source for hostname_override case. 2015-01-14 09:43:13 -08:00
saadali
826b61c76d Address nits from PR #3423 2015-01-13 23:34:37 -08:00
Tim Hockin
ca89aa6528 Make data dirs for all pods when syncing 2015-01-13 17:18:21 -08:00
saadali
110ab6f1bd Split up kubelet "source seen" logic 2015-01-12 21:48:55 -08:00
Daniel Smith
55653568ae Merge pull request #3385 from erictune/source_api
Added kubelet config source from apiserver.
2015-01-12 15:47:15 -08:00
Eric Tune
18bcef5235 Added kubelet config source from apiserver. 2015-01-12 15:29:16 -08:00
Tim Hockin
0d92da6b15 Remove logic to handle if UID is blank
This should only have been triggered by tests, and those should now be fixed.
I tested by calling panic() if UID was blank in BuildDockerName() or if number
of fields was < 5 in ParseDockerName().  All errors were fixed.
2015-01-12 14:27:34 -08:00
Tim Hockin
905514a12b Ensure Namespace and UID are set in kubelet
Make all kubelet config sources ensure that UID and Namespace are defaulted, if
need be.

We can *almost* disable the "if blank" logic for UID, except for tests that
call APIs that do not run through SyncPods.  We really ought to be enforcing
invariants better.
2015-01-12 14:27:34 -08:00
Tim Hockin
af0e2fd551 Merge pull request #3403 from thockin/klet-dirs-structure
Apply more structure to pod data dirs
2015-01-12 14:19:22 -08:00
saadali
e1917cf900 Fix "Kubelet doesn't kill old pods when BoundPods is empty" issue 2015-01-12 12:39:47 -08:00
Tim Hockin
523a80bec7 Apply more structure to pod data dirs
This is makes it possible to read back "known" pods from disk without
getting other (non-pod) kubelet dirs in the mix.  Ditto for containers
within a pod.  This is just saner overall.  Pods now nest in a pods/
dir.  Likewise containers.
2015-01-12 06:16:32 -08:00
Eric Tune
29d084c4d3 Pass client into Kubelet.
Subsequent PR will make use of it.
2015-01-08 15:35:17 -08:00
Tim Hockin
eac982137f Merge pull request #3260 from commonlisp/master
NewMainKubelet validates SyncFrequency, minimum GC age, etc.
2015-01-08 08:20:55 -08:00
George Kuan
06475fc4b4 NewMainKubelet validates Kubelet config parameters
Fixes issue #3202.
* Validates SyncFrequency and minimum GC age and propagates error to RunKubelet
* Defaults for Kubelet config and minor cleanup
* cmd Kubelet MinimumGCAge to 1m instead of 0
2015-01-07 18:50:53 -08:00
Daniel Smith
95dd2d7ca6 reuse function; never ever unlock without defer 2015-01-07 17:07:12 -08:00
Tim Hockin
5f2dae4dd8 Merge pull request #3195 from lavalamp/numericWire
Add numeric type into api
2015-01-07 16:15:52 -08:00
Daniel Smith
35f54addca Update more packages, tests, binaries for quantity
make etcd registry pass test
fix kubelet config for quantity
fix openstack for quantity
fix controller for quantity
fix last tests for quantity
wire into binaries
fix controller manager
fix build for 32 bit systems
2015-01-07 15:21:35 -08:00
Daniel Smith
7f49ba0dcf Put quantity into packages
kubelet, GCE, validation, client
2015-01-07 15:21:34 -08:00
Clayton Coleman
ba53d723d3 Clean up how client is passed to Kubelet in preparation for reading pods
Also fixes how Kubelet server looks up pods by name when there are multiple
sources.
2015-01-07 14:40:37 -05:00
Brendan Burns
7c69570663 Add a lock around the other docker pull.
Fixes e2e (I hope), certainly passes e2e in my client.
2015-01-07 00:17:57 -08:00
Brendan Burns
733e12e19b Revert "Avoid race between image pull and garbage collect"
This reverts commit 6f14e2e210.
2015-01-06 23:23:23 -08:00
Brendan Burns
e84b4d03a4 Merge pull request #3183 from anguslees/pull-lock
Avoid race between image pull and garbage collect
2015-01-06 21:23:29 -08:00
Dawn Chen
e3c019128e Add EventSource to api to have both Component and Host information. 2015-01-06 16:08:20 -08:00
Dawn Chen
2b91c1417c Create selfLink for pods from config files and indicate hostname as part of event source. 2015-01-06 16:08:20 -08:00
Tim Hockin
8b42534f77 Fix kubelet config tests 2015-01-06 13:02:41 -08:00
Tim Hockin
88fe5c6f46 Never set pod.Name in kubelet config code
I think it is time to tighten up input requirements.  The validation code will
reject a pod that has an empty name field.
2015-01-06 11:14:19 -08:00
Tim Hockin
cae572290b Merge pull request #3230 from saad-ali/hashingLogging
Improve kubelet logging around container being killed due to hash change
2015-01-05 16:48:29 -08:00
saadali
d6d18a32e7 Replace %s with %q to make empty strings more obvious 2015-01-05 16:38:47 -08:00
Tim Hockin
03baa7234a Merge pull request #3225 from dchen1107/clean
Move GetHostName and GetDockerEndpoint methods to pkg/util
2015-01-05 16:21:51 -08:00
saadali
eb831919d9 Improve kubelet logging around container being killed due to hash change 2015-01-05 16:20:40 -08:00
saadali
f92f830e1f Modify hash to be computed using spew library so that nested object values are used instead of pointer 2015-01-05 15:48:06 -08:00
Dawn Chen
f718957a79 Move GetHostName and GetDockerEndpoint methods to pkg/util 2015-01-05 11:44:21 -08:00
Dawn Chen
78547d9a87 Merge pull request #3194 from vishh/stats
Update "/stats" endpoint on kubelet.
2015-01-05 11:23:00 -08:00
Vishnu Kannan
3ef9e404c1 Update "/stats" endpoint on kubelet to take namespace as an argument as part of the API. 2015-01-03 02:17:25 +00:00
Angus Lees
6f14e2e210 Avoid race between image pull and garbage collect
Hold the pullLock while pulling regular container images, not just the
network container.

Also: previously, the locks were grabbed at too-low a layer in the
callstack, leaving a (narrow) window where images could be pulled and
then garbage collected before being used.

This change takes the existing pullLock a layer higher in the call stack
so the critical regions encompass the entire find+delete and pull+use
operation in both cases.
2014-12-31 11:50:40 +11:00
saadali
e8d30f019d Modify "kubectl get events" to print FieldPath so BoundPod events for the same Pod but different containers can be differentiated 2014-12-29 21:32:49 -08:00
Dawn Chen
d38613777b Propagate syncPod error as event to upper layer. 2014-12-29 15:42:47 -08:00
Tim Hockin
652479a3b1 Add kubelet DNS flags & api disable for DNS
This adds --cluster_dns and --cluster_domain flags to kubelet.  If
non-empty, kubelet will set docker --dns and --dns-search flags based on
these.  It uses the cluster DNS and appends the hosts's DNS servers.
Likewise for DNS search domains.

This also adds API support to bypass cluster DNS entirely, needed to
bootstrap DNS.
2014-12-29 09:18:12 -08:00
Brendan Burns
b8781c04bb Add support for garbage collecting images. 2014-12-22 16:56:58 -08:00
Dawn Chen
f073ecf4cc Understand OOMKilled reason 2014-12-18 15:59:44 -08:00
Vish Kannan
c34f2d354c Merge pull request #3035 from dchen1107/master
Update fsouza/go-dockerclient pkg to latest revision and fix some compiling issues.
2014-12-18 14:07:40 -08:00
Dawn Chen
608c3d5046 Update kubelet package on latest go-dockerclient package. 2014-12-18 13:49:13 -08:00
Brendan Burns
845fb5013d Remove some dead code. 2014-12-18 13:32:20 -08:00
Dawn Chen
71fc5940f1 suppress unnecessary stacktrace when http status code is redirect related. 2014-12-17 18:42:11 -08:00
Brendan Burns
928f52056e Remove HTTP Server support for pushing pods onto the kubelet. 2014-12-17 17:15:36 -08:00
Brendan Burns
7da0378f3c Track the sources that the kubelet has seen, and only delete pods
when every source has been seen at least once.
2014-12-17 13:08:43 -08:00
Brendan Burns
bb28949291 Merge pull request #2831 from jdef/unit_test_for_2815
unit test for #2815, as requested by @brendandburns
2014-12-16 15:08:41 -08:00
Brendan Burns
3a0d16ff35 Add an e2e test for exec liveness probes. Fix the docker exec integration. 2014-12-16 13:53:32 -08:00
Daniel Smith
6902f6ab21 Merge pull request #2844 from brendandburns/fix
Handle a missing apiserver flag better.
2014-12-15 17:25:09 -08:00
bgrant0607
9bc8915eeb Merge pull request #2912 from smarterclayton/small_v1beta3_refactors_2
More small refactors for v1beta3 -> internal
2014-12-15 15:16:36 -08:00
Brendan Burns
1a5a7ebd69 Handle a missing apiserver flag better. 2014-12-15 15:14:41 -08:00
Brendan Burns
2c64db5943 Merge pull request #2938 from vishh/exec
Updated docker version that supports exec to '1.3.0'.
2014-12-15 14:49:12 -08:00
Clayton Coleman
dadb8431c4 Remove internal PodState in favor of internal PodStatus object 2014-12-15 16:50:05 -05:00
Vishnu Kannan
f4ef05bc20 Updated docker version that supports exec to '1.3.0'. 2014-12-15 20:44:58 +00:00
Brendan Burns
a6f967b6e7 Revert "Revert "Add an api object for the kubelet, and a versioned endpoint.""
This reverts commit dcfcf315e5.
2014-12-15 09:29:04 -08:00
Brendan Burns
dcfcf315e5 Revert "Add an api object for the kubelet, and a versioned endpoint."
This reverts commit d4b9979382.
2014-12-12 21:13:44 -08:00
James DeFelice
3afc9fffba fixed minor formatting 2014-12-12 20:43:07 -05:00
Brendan Burns
d4b9979382 Add an api object for the kubelet, and a versioned endpoint. 2014-12-12 15:26:28 -08:00
Jordan Liggitt
51bfb50698 Use util.Time consistently in types.go 2014-12-11 11:14:25 -05:00
Federico Simoncelli
4af64b8911 api: add container's id to ContainerStatus
Sometimes for external applications it is useful to correlate the pod
containers to the real docker instances.

This patch adds a new entry in the container status (containerID) which
is used to identify the instance.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2014-12-10 20:38:41 +00:00
James DeFelice
85b4b4677e unit test for #2815, as requested by @brendandburns 2014-12-10 15:33:38 -05:00
Dawn Chen
17475cdbe7 Merge pull request #2821 from lavalamp/fix
Allow, when testing, SelfLinks to be unset.
2014-12-10 12:10:51 -08:00
Dawn Chen
5c79668854 Merge pull request #2815 from jdef/inspect_tagged_image
inspect the full repo/image:tag name
2014-12-10 11:53:14 -08:00
Daniel Smith
e46bfcf699 Allow, when testing, SelfLinks to be unset. Kubelet now makes events in tests. 2014-12-09 17:53:42 -08:00
Saad Ali
9a1fea6927 Merge pull request #2817 from lavalamp/fix
Compare containers by name, not by pointer equality.
2014-12-09 17:33:56 -08:00
Daniel Smith
ba62943b8e Compare containers by name, not by pointer equality. 2014-12-09 17:06:39 -08:00
Brendan Burns
4985f58eb5 Merge pull request #2759 from mikedanese/configure-cadvisor-port
make cadvisor port configurable on the kubelet
2014-12-09 15:21:35 -08:00
James DeFelice
ca2840a8e8 inspect the full repo/image:tag name 2014-12-09 15:41:08 -05:00
Tim Hockin
acc6b95c21 Add functions to get kubelet directories.
Gets rid of some magic constants and makes volume plugins (coming later)
cleaner.
2014-12-06 11:00:19 -08:00
Mike Danese
722abf1a95 - make cadvisor port configurable on the kubelet.
- added cadvisor port documentation.
2014-12-06 09:48:08 -08:00
James DeFelice
76ef747927 avoid panics when docker CT has no name 2014-12-05 15:48:25 -05:00
Victor Marmol
b1c7893916 Merge pull request #2683 from jimmidyson/cadvisor-0.6.2
Fixes #2681: update to cadvisor 0.6.2
2014-12-04 03:48:40 +08:00
Sam Ghods
9a9a1e0939 Move from go-yaml/yaml to ghodss/yaml 2014-12-02 16:24:05 -08:00
Tim Hockin
f4b031d025 Merge pull request #2514 from thockin/label-ns
Add label key namespacing
2014-12-02 13:38:46 -08:00
Brendan Burns
993ef88eec Merge pull request #2689 from brendandburns/standalone
Refactor kubelet, standalone k8s and integration test to all use the same code.
2014-12-01 21:53:41 -08:00
Brendan Burns
d47b510104 Refactor kubelet, standalone k8s and integration test to all use the same code. 2014-12-01 15:37:21 -08:00
Tim Hockin
89875ef09d Loosen DNS 952 for labels 2014-12-01 12:30:43 -08:00
Jimmi Dyson
5109ce3356 Fixes #2681: update to cadvisor 0.6.2 2014-12-01 11:38:03 +00:00
Eric Tune
54859cf1ea Remove format specifiers with no options. 2014-11-26 12:05:00 -08:00
Brendan Burns
a5bc6301a4 Revert "Using util.Time for ContainerStatus" 2014-11-24 21:32:31 -08:00
Daniel Smith
610ab9a0db Merge pull request #2586 from dchen1107/cleanup
Using util.Time for ContainerStatus
2014-11-24 15:35:07 -08:00
Dawn Chen
acb0f1198b Using util.Time for ContainerStatus 2014-11-24 15:15:33 -08:00
Eric Tune
f122fc94bf Move service enviroment vars code.
GetServiceEnvironmentVariables (originally in  pkg/registry/service/rest.go)
is split into two parts: one that lists services, and one that turns
a ServiceList into environment vars.  This will allow a subsequent PR
to add a call to the latter function with an existing ServiceList.
The former part is moved into pkg/registry/pod/bound_pod_factory.go.
The latter part is put in a new package, pkg/kubelet/envvars/envvars.go.
The new package is under kubelet because the container enviroment is more
associated with kubelet than with registry.
Test code moved too.
2014-11-23 05:50:34 -08:00
Eric Tune
7d3e00c679 Remove never-needed return value.
Make some types private.
2014-11-21 15:11:45 -08:00
bgrant0607
9f5ebef3d8 Merge pull request #2513 from lavalamp/verifyNetwork
Fix crash (loop?) in kubelet
2014-11-21 10:10:32 -08:00
Daniel Smith
9116c27040 Fix crash (loop?) in kubelet 2014-11-20 18:28:23 -08:00
Tim Hockin
95a9098311 fix 'go vet' warnings 2014-11-21 09:45:28 +08:00
Tim Hockin
ea960711ff Clean up error logs.
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines).  Just accumulated nits.
2014-11-21 09:45:26 +08:00
Dawn Chen
6d3324c3fd Add image related events to kubelet. 2014-11-19 15:16:14 -08:00
Brendan Burns
cea52d7e4f Merge pull request #2409 from mattmoor/master
Implements a credentialprovider library for use by DockerPuller.
2014-11-17 21:53:25 -08:00
Matt Moore
0c5d9ed0d2 Implements a credentialprovider library for use by DockerPuller.
This change refactors the way Kubelet's DockerPuller handles the docker config credentials to utilize a new credentialprovider library.

The credentialprovider library is based on several of the files from the Kubelet's dockertools directory, but supports a new pluggable model for retrieving a .dockercfg-compatible JSON blob with credentials.

With this change, the Kubelet will lazily ask for the docker config from a set of DockerConfigProvider extensions each time it needs a credential.

This change provides common implementations of DockerConfigProvider for:
 - "Default": load .dockercfg from disk
 - "Caching": wraps another provider in a cache that expires after a pre-specified lifetime.

GCP-only:
 - "google-dockercfg": reads a .dockercfg from a GCE instance's metadata
 - "google-dockercfg-url": reads a .dockercfg from a URL specified in a GCE instance's metadata.
 - "google-container-registry": reads an access token from GCE metadata into a password field.
2014-11-17 21:46:54 -08:00
Eric Tune
0ca192889f Fix namespace of minion birthcry event. 2014-11-17 15:34:07 -08:00
Daniel Smith
eeb4547bec Merge pull request #2392 from dchen1107/upstream1
Generate container related events from kublet
2014-11-17 11:28:52 -08:00
Dawn Chen
736c4ffb0b more events from kublet 2014-11-17 11:00:46 -08:00
Dawn Chen
8a508bcce3 Merge pull request #2391 from lavalamp/fix3
Remove confusing function; add TODO and explanation for (nonfatal) error...
2014-11-14 17:24:18 -08:00
Daniel Smith
c412540cf2 Remove confusing function; add TODO and explanation for (nonfatal) error message in integration test. 2014-11-14 17:16:05 -08:00
Dawn Chen
ce145545b9 Add unittests to test PullPolicy. 2014-11-14 16:09:53 -08:00
Dawn Chen
f729d748ac If the image with :latest tag specified in Spec, kubelet should try
to pull the latest one even the policy is PullIfNotPresent.
2014-11-14 16:09:53 -08:00
Clayton Coleman
6d31c2bf8a util.EncodeJSON proven harmful, remove it everywhere
People were misusing EncodeJSON in tests when they should be using
runtime.EncodeOrDie(testapi.Codec(), obj).  Removing the potential
for cutting self on sharp objects.
2014-11-13 10:38:13 -05:00
jhadvig
f2f1708687 Setting RawTerminal attribute in LogOptions to false 2014-11-12 17:47:52 +01:00
Clayton Coleman
b5a88a4662 Merge pull request #2283 from dchen1107/deathrattle
Fixed Eventf with wrong arguments.
2014-11-11 10:41:51 -05:00
Dawn Chen
ada43ae233 Fixed Eventf with wrong arguments. 2014-11-10 23:53:48 -08:00
Brendan Burns
db0d98daa2 Merge pull request #2257 from jhadvig/kubelet_timeout
Bumping kubelet write/read timeout
2014-11-10 21:18:25 -08:00
Eric Tune
08c8f2cde1 Record event of kubelet restart re: minion obj. 2014-11-10 13:46:48 -08:00
bgrant0607
3cf17c0094 Merge pull request #2225 from dchen1107/deathrattle
Capture application termination messages/output
2014-11-10 11:25:14 -08:00
Dawn Chen
57454cce81 Add support to capture application termination message and propagate
the message to the upper layer through ContainerStatus.
2014-11-10 10:56:23 -08:00
Dawn Chen
8ffbced280 Introduce terminationMessagePath to Container, and update conversion code
to assign the default path.

Move default setting for terminationMessagePath to conversion
from validation. Addressed other comments.
2014-11-10 10:55:56 -08:00
jhadvig
dfa076b79a Dumping kubelet write/read timeout 2014-11-10 17:09:50 +01:00
Dawn Chen
b4ab6e6ecc Remove dead code. 2014-11-07 11:05:35 -08:00
Mike Danese
1d76452bc2 added support for authentication against the default docker registry when provided in the .dockercfg
a
2014-11-06 11:52:25 -08:00
Dawn Chen
e88e490614 Merge pull request #2143 from lavalamp/eventing2.1
Begin putting event emission into kubelet
2014-11-05 15:37:26 -08:00
Brendan Burns
0a1493a5ce Merge pull request #2160 from dchen1107/fix
Restart network container when container's configure is changed.
2014-11-05 15:13:05 -08:00
Daniel Smith
dcc111bf13 Start putting event generation into kubelet (not enabled yet) 2014-11-05 15:09:14 -08:00
bgrant0607
fc0dab630c Merge pull request #2086 from markturansky/v1beta3_refactor
Refactor internal API for Services to match v1beta3
2014-11-04 21:48:02 -08:00
Daniel Smith
4b16e979e6 Fix nil docker client (how did this ever work???) 2014-11-04 16:58:37 -08:00
Dawn Chen
03958f5049 Restart network container when container's configure is changed.
Fix #2099
2014-11-04 14:38:33 -08:00
markturansky
bd7643c033 refactor services to v1beta3 2014-11-04 14:23:53 -05:00
Brendan Burns
4ae3e99177 Change a spammy log to V(3) 2014-11-03 08:38:02 -08:00
Brendan Burns
69ca97a41c Fix a flaky test by draining the worker pool after syncing. 2014-10-31 09:52:01 -07:00
Brendan Burns
69ad5c9bff Merge pull request #2077 from dchen1107/cleanup
PodUpdate only has the delta changes, not full snapshot of all desired
2014-10-30 21:46:26 -07:00
Deyuan Deng
acf9d23b32 Stop httptest server. 2014-10-30 21:37:08 -04:00
Dawn Chen
a1e79048a6 Add /podSpecs to Kubelet 2014-10-30 16:38:08 -07:00
Dawn Chen
445ec719c9 PodUpdate only has the delta changes, not full snapshot of all desired
BoundPods on a node. PR #1865 has a wrong assumption, with which any
PodUpdate operation will cause rest of running containers without updates
are killed as an unexpected ones.

Fix #2028
2014-10-30 11:22:59 -07:00
Brendan Burns
51bf451932 Add container garbage collection. 2014-10-28 12:52:06 -07:00
Tim Hockin
2bbd11eda6 Merge pull request #1975 from smarterclayton/split_type_meta
Split TypeMeta into ObjectMeta/ListMeta
2014-10-24 08:43:00 -07:00
Clayton Coleman
644eb70085 Refactor tests to split ObjectMeta from TypeMeta 2014-10-24 11:22:21 -04:00
Clayton Coleman
7550c146dc Replace struct initializers for TypeMeta with ObjectMeta 2014-10-24 11:22:21 -04:00
Tim Hockin
0a202354b9 Fix race between syncPod and syncPods 2014-10-23 15:53:26 -07:00
Tim Hockin
099934d49f Cleanups in syncPod 2014-10-23 15:53:26 -07:00
Tim Hockin
76c33a88b6 Remove redundancy in SyncPods 2014-10-23 15:53:26 -07:00
Tim Hockin
36a05ee871 Improve kubelet logging 2014-10-23 15:53:26 -07:00
Tim Hockin
487867bd01 Extract cadvisor code to cadvisor.go 2014-10-23 15:53:26 -07:00
Tim Hockin
de3060e4eb Rename httpGetInterface to httpGetter 2014-10-23 15:53:26 -07:00
Clayton Coleman
bb77a5d15f Rename ID -> Name 2014-10-22 15:00:26 -04:00
Daniel Smith
91efe51770 Merge pull request #1829 from jhadvig/proxy_flush
Flush data periodically instead of their buffering
2014-10-21 17:01:15 -07:00
Johan Euphrosine
14c3b9d900 runonce: handle inspect error 2014-10-21 13:38:11 -07:00
Johan Euphrosine
6cd0c261b3 runonce: better container state detection 2014-10-21 12:00:51 -07:00
Brendan Burns
b47486abe7 Merge pull request #1771 from vishh/native_exec
Use native exec support in docker instead of exec'ing nsinit in kubelet.
2014-10-21 07:32:07 -07:00
Brendan Burns
b74854895e Merge pull request #1921 from smarterclayton/http_listen_err_is_fatal
ListenAndServe on Kubelet server should be a fatal error
2014-10-21 07:23:59 -07:00
jhadvig
f759bfdf71 Implementing Flush method to httplog 2014-10-21 09:33:00 +02:00
Clayton Coleman
d0ef3f0596 ListenAndServe on Kubelet server should be a fatal error 2014-10-21 00:10:35 -04:00
Clayton Coleman
3f8d30881c Sort of pods in test case was incorrect 2014-10-20 17:45:01 -04:00
Tim Hockin
87b0b3ad67 Better config-file logging in kubelet 2014-10-20 08:49:55 -07:00
Michal Fojtik
0bccce4520 Move error about connecting to healthz server to V(1) 2014-10-20 15:31:01 +02:00
Tim Hockin
783c0d7532 Merge pull request #1865 from brendandburns/kubelet
Support updates in the kubelet.
2014-10-17 17:21:16 -07:00
Dawn Chen
8858c5f897 Merge pull request #1871 from derekwaynecarr/handle_container_logs_on_alternate_namespace
handleContainerLogs needs a namespace to address a pod
2014-10-17 15:42:11 -07:00
Dawn Chen
7611c839e9 Merge pull request #1873 from derekwaynecarr/kubelet_handleRun_namespace_aware
Make kubelet handleRun work for pods in non-default namespace
2014-10-17 15:23:40 -07:00
derekwaynecarr
1f094d973d make kubelet handleRun work for pods in non-default namespace 2014-10-17 16:12:26 -04:00
derekwaynecarr
897f1b3ab5 handleContainerLogs needs a namespace to address a pod 2014-10-17 16:00:50 -04:00
derekwaynecarr
d590af2ce5 Fixup kubelet handlePodInfo to be namespace aware 2014-10-17 14:42:46 -04:00
Brendan Burns
aa55e87ac2 Support updates in the kubelet. 2014-10-17 11:02:21 -07:00
Vishnu Kannan
7b3db4d41b Use native exec support in docker instead of execing nsinit in kubelet. 2014-10-17 10:04:46 +00:00
Clayton Coleman
26cff8b9bf Rename the etcd path for pods to be /registry/nodes/<>/boundpods 2014-10-16 19:29:08 -04:00
Clayton Coleman
892942af8f Read BoundPods from etcd instead of ContainerManifestList
There are three values that uniquely identify a pod on a host -
the configuration source (etcd, file, http), the pod name, and the
pod namespace. This change ensures that configuration properly
makes those names unique by changing podFullName to contain both
name (currently ID in v1beta1, Name in v1beta3) and namespace.

The Kubelet does not properly handle information requests for
pods not in the default namespace at this time.
2014-10-16 19:29:08 -04:00
Dawn Chen
33ef0ca159 Make watching error logging message less severe since it is expected.
Fix #1653
2014-10-14 16:42:28 -07:00
Daniel Smith
a292d8c416 Merge pull request #1667 from hmrm/add-kubelet-disable-flags
Allow disabling non-necessary kubelet and apiserver endpoints
2014-10-10 13:38:11 -07:00
Dawn Chen
5f97413dd5 Merge pull request #1663 from smarterclayton/separate_pod_state_for_health_check
Refactor HealthCheck to take podUUID as its own argument
2014-10-10 09:11:59 -07:00
Tim Hockin
d84816aaec Merge pull request #1709 from erictune/move_line
Fix format specifiers in Printf-type functions.
2014-10-09 20:40:35 -07:00
Daniel Smith
7bb1bdd693 Merge pull request #1711 from erictune/vets
Use pointer for struct holding lock.
2014-10-09 17:25:54 -07:00
Eric Tune
42f6324183 Use pointer for struct holding lock. 2014-10-09 17:16:21 -07:00
Eric Tune
800284164a Fix format specifiers in Printf-type functions. 2014-10-09 17:06:32 -07:00
Haney Maxwell
c0bf974871 Allow disabling non-necessary kubelet and apiserver endpoints 2014-10-09 16:49:27 -07:00
Clayton Coleman
95cb2e3eb3 Refactor HealthCheck to take podUUID arguments
PodState is going away (won't have podUUID anymore)
2014-10-09 16:42:55 -04:00
Eric Tune
4e0a72734e Handle and log errors when reading .dockercfg 2014-10-09 13:22:14 -07:00
Dawn Chen
ed4167a938 Merge pull request #1670 from proppy/fix-kubelet-runonce
kubelet: only check for container listed in the manifest
2014-10-09 09:31:12 -07:00
Johan Euphrosine
0fc5e68207 runonce: isPodRunning returns no error 2014-10-08 22:34:40 -07:00
Johan Euphrosine
8f010c3ec0 dockertools: add todo for container lookup 2014-10-08 22:31:59 -07:00
Johan Euphrosine
dbb2342688 runonce: list kubelet container between each iteration 2014-10-08 22:28:41 -07:00
Johan Euphrosine
14c5fd405d kubelet: only check for container listed in the manifest
also wait 1 retryDelay before polling state after syncing.
2014-10-08 17:49:21 -07:00
Daniel Smith
1fc92bef53 Load cadvisor connection in background. 2014-10-08 17:06:41 -07:00
Daniel Smith
e1cb72f1ae Merge pull request #1643 from smarterclayton/make_resource_version_a_string
Make ResourceVersion internally a string instead of uint64
2014-10-08 14:00:37 -07:00
Tim Hockin
2f2ef05fa8 Merge pull request #1646 from dchen1107/termination
Fix an issue on GetContainerInfo.
2014-10-07 17:27:56 -07:00
Dawn Chen
300c2c5f6f Fix an issue on GetContainerInfo.
I believe the issue was first introduced when we append namespace to docker
container's name. This is a temporary fix for #160.
2014-10-07 17:21:24 -07:00
Clayton Coleman
82bcdd3b3b Make ResourceVersion a string internally instead of uint64
Allows us to define different watch versioning regimes in the future
as well as to encode information with the resource version.

This changes /watch/resources?resourceVersion=3 to start the watch at
4 instead of 3, which means clients can read a resource version and
then send it back to the server. Clients should no longer do math on
resource versions.
2014-10-07 19:00:26 -04:00
Tim Hockin
48a9ed3147 Merge pull request #1637 from lavalamp/fix
Fix 'go vet' issues
2014-10-07 14:25:41 -07:00
Daniel Smith
2d048bc0f2 fix captured loop variable 2014-10-07 13:57:30 -07:00
Dawn Chen
73c8f41737 Add the missing arg in Errorf. 2014-10-07 13:53:25 -07:00
Brendan Burns
7ecd8d7207 Fix a problem with for loops, copy semantics and async routines. 2014-10-06 21:20:00 -07:00
Dawn Chen
4fdfeaa30e Addressed comments. 2014-10-06 14:41:20 -07:00
Dawn Chen
a86d496f9a Fix e2e tests. 2014-10-06 13:37:24 -07:00
Dawn Chen
39f648bda2 Fix rebase issues. 2014-10-06 13:37:23 -07:00
Dawn Chen
8d0ed93aa1 Clean unittests 2014-10-06 13:37:22 -07:00
Dawn Chen
9861eb7c8e Initial support of propogating the termination reasons and image failure
to apiserver. Deprecated docker.Container from API completely.

Conflicts:
	pkg/api/types.go
	pkg/kubelet/kubelet.go
2014-10-06 13:37:22 -07:00
Tim Hockin
0ad0a247c4 Flag-compatible IP type 2014-10-06 11:29:22 -07:00
Johan Euphrosine
fa1dcd0a8b kubelet: add basic test for runonce 2014-10-03 18:02:30 -07:00
Johan Euphrosine
f91162cf78 kubelet: add --runonce flag, exits after starting pod from the manifest 2014-10-03 18:02:30 -07:00
Deyuan Deng
a9e7cf8e40 Fix integration test read volume dir error. 2014-10-03 19:51:07 -04:00
Clayton Coleman
6881db64a9 Allow configurable Kubelet net image for isolated networks
Public access to the DockerHub is not guaranteed in all environments,
add a flag to the kubelet that allows it to use a different image (like
one on a private registry) as well as only pull the first time the
image is needed.

Fixes #1545
2014-10-02 15:56:03 -04:00
Eric Tune
9c0769422d Directory renamed to Dir to match json property 2014-10-01 13:35:21 -07:00
Tim Hockin
db49dc0012 Merge pull request #1458 from brendandburns/dontpull
Add the ability to turn off image pulling.
2014-10-01 12:40:47 -07:00
Brendan Burns
4c456015b6 Add the ability to turn off image pulling. 2014-10-01 12:34:22 -07:00
jhadvig
9b21053188 ListContainer filter 2014-09-30 23:30:32 +02:00
Tim Hockin
1c02af3d16 Kill LivenessProbe.Type 2014-09-27 21:16:30 -07:00
Tim Hockin
04cdf286a4 Make and use api.Protocol type 2014-09-27 20:31:37 -07:00
Tim Hockin
badeaef95f Merge pull request #1457 from brendandburns/pull
Add a rate limiter, use it to rate limit docker pulls.
2014-09-26 12:39:25 -07:00
Brendan Burns
3ac706a32e Add a rate limiter, use it to rate limit docker pulls. 2014-09-26 11:55:21 -07:00
Dawn Chen
01c9015ed3 use _ as the separator for docker container name. 2014-09-26 09:21:21 -07:00
Tim Hockin
7a96ed38b3 Merge pull request #1439 from jhadvig/err_handler
Handle invalid pod name
2014-09-25 15:00:47 -07:00
jhadvig
e5d8ee3811 Handle invalid pod name 2014-09-25 22:57:05 +02:00
Clayton Coleman
4e56dafecc Introduce some default log verbosity control
Move a lot of common error logging into better buckets:

glog.Errorf() - Always an error
glog.Warningf() - Something unexpected, but probably not an error
glog.V(0) - Generally useful for this to ALWAYS be visible
            to an operator
            * Programmer errors
            * Logging extra info about a panic
            * CLI argument handling
glog.V(1) - A reasonable default log level if you don't want
            verbosity
            * Information about config (listening on X, watching Y)
            * Errors that repeat frequently that relate to conditions
              that can be corrected (pod detected as unhealthy)
glog.V(2) - Useful steady state information about the service
            * Logging HTTP requests and their exit code
            * System state changing (killing pod)
            * Controller state change events (starting pods)
            * Scheduler log messages
glog.V(3) - Extended information about changes
            * More info about system state changes
glog.V(4) - Debug level verbosity (for now)
            * Logging in particularly thorny parts of code where
              you may want to come back later and check it
2014-09-25 16:30:14 -04:00
Clayton Coleman
a5ed10235e Merge pull request #1354 from lavalamp/eventing
Add Event to api types
2014-09-25 16:20:49 -04:00
Daniel Smith
283eaf3931 Add new Event type
* replaces previous Event type, which is too limited.
* Remove writing of old event type.
* Fix serialiazation test to automatically test all types.
2014-09-25 11:31:35 -07:00
Brendan Burns
431caa93df Merge pull request #1335 from dchen1107/exit1
Convert existing kubernetes system to use ContainerStatus, instead of
2014-09-24 21:37:24 -07:00
Daniel Smith
bb0cd95a83 fix non-gofmt'd things 2014-09-24 14:27:10 -07:00
Dawn Chen
0e6ec3cbfc Convert existing kubernetes system to use ContainerStatus, instead of
docker.Container directly.

Conflicts:
	pkg/kubelet/dockertools/docker.go
	pkg/registry/pod/rest.go
2014-09-24 11:16:46 -07:00
jhadvig
d2709ab9c1 Typo fix 2014-09-24 01:33:39 +02:00
Daniel Smith
f211e46f20 handle watch errors everywhere 2014-09-22 17:37:12 -07:00
Tim Hockin
0f9cd4301d Merge pull request #1401 from jhadvig/k8s_log_retrieval_update
stdout/stderr writer container log stream
2014-09-22 16:38:11 -07:00
jhadvig
9ba71528e4 stdout/stderr container log stream 2014-09-23 00:15:36 +02:00
Tim Hockin
486dbd165f Merge pull request #1318 from jhadvig/k8s_log_retrieval
Adding endpoint for log retrieval on the minion
2014-09-22 13:21:28 -07:00
Eric Paris
a32400f47f Remove all code dealing with cadvisor Percentiles
This was removed upstream beween cadvisor 0.3.0 and 0.4.0
2014-09-22 14:22:40 -04:00
jhadvig
960f1b2693 Consistency update 2014-09-21 22:25:44 +02:00
jhadvig
9f34eaef9e kubelet server test cases 2014-09-18 14:17:10 +02:00
jhadvig
f3f5d0200c Using podID+containerName for querying the logs 2014-09-17 21:00:09 +02:00
Dave Bailey
14fcf68edc Improve error detection for URL manifests, and skip parsing if content unchanged. 2014-09-17 17:43:44 +00:00
Brendan Burns
dc5a4a8c3f Refactor to clean up names. 2014-09-16 15:19:02 -07:00
erictune
506f51b186 Merge pull request #1330 from brendandburns/privilege
Only allow privileged containers if API server flag set.  Adds capabilities package.
2014-09-16 15:12:26 -07:00
Clayton Coleman
61e3ce7ddc Make runtime less global for Codec
* Make Codec separate from Scheme
* Move EncodeOrDie off Scheme to take a Codec
* Make Copy work without a Codec
* Create a "latest" package that imports all versions and
  sets global defaults for "most recent encoding"
  * v1beta1 is the current "latest", v1beta2 exists
  * Kill DefaultCodec, replace it with "latest.Codec"
  * This updates the client and etcd to store the latest known version
* EmbeddedObject is per schema and per package now
* Move runtime.DefaultScheme to api.Scheme
* Split out WatchEvent since it's not an API object today, treat it
like a special object in api
* Kill DefaultResourceVersioner, instead place it on "latest" (as the
  package that understands all packages)
* Move objDiff to runtime.ObjectDiff
2014-09-16 16:26:43 -04:00
Clayton Coleman
fe614aeda2 Simple refactor for ease of readability
runtime.DefaultCodec -> latest.Codec
2014-09-16 16:12:35 -04:00
Brendan Burns
5b9e2a55b5 Add a flag to reject privileged containers in the apiserver. 2014-09-16 11:22:32 -07:00
jhadvig
6da2653b4a Update according to review 2014-09-16 15:40:12 +02:00
jhadvig
f351691493 Adding endpoint for log retrieval on the minion 2014-09-15 17:02:56 +02:00
Brendan Burns
46d0cbd645 Add a global flag to enable/disable privileged containers 2014-09-12 09:56:45 -07:00
Dan Mace
3a3fab3f82 FEATURE: Support privileged containers in a pod
Add a Privileged field to containers in a pod, in order to facilitate pods
performing administrative tasks such as builds via Docker-in-Docker.

Discussion: https://github.com/GoogleCloudPlatform/kubernetes/issues/391
2014-09-12 09:38:11 -07:00
Brian Waldon
2f87857b0f kubelet: generate keyring from .dockercfg 2014-09-11 21:01:39 -07:00
Brian Waldon
0bf4fabc19 kubelet: move docker-related code into sub-package 2014-09-11 13:12:28 -07:00
Dawn Chen
b48834e198 Fix PodInfo to include last terminated container info when calling
GetPodInfo based on name and UUID. With this fix, if some of containers
are dead, the pod status will stay as Running, not reset back to Waiting.
2014-09-10 14:41:18 -07:00
Tim Hockin
4ff76add57 Merge pull request #1147 from dchen1107/restart
Introduce the simplest RestartPolicy and handling.
2014-09-09 14:44:42 -07:00
Dave Bailey
5ec748dc5e avoid dumping error pages into error messages 2014-09-09 17:20:58 +00:00
Dawn Chen
15cab4d053 Introduce the simplest RestartPolicy and handling. 2014-09-08 22:41:38 -07:00
Dawn Chen
7ace5a3e83 Passing pod UUID to Kubelet. 2014-09-08 14:24:09 -07:00
Daniel Smith
1c2b65788d Rename Codec and ResourceVersioner to add Default in front, to allow for types of those names 2014-09-07 22:19:24 -07:00
Tim Hockin
6ebe69a875 Merge pull request #1156 from brendandburns/api
Add support for the PostStart event handler.
2014-09-05 22:13:56 -07:00
Daniel Smith
7790961011 Rename Object to EmbeddedObject 2014-09-05 14:43:35 -07:00
Brendan Burns
d0884accd7 Add support for the PostStart event handler. 2014-09-05 12:37:57 -07:00
Daniel Smith
779de7361a Merge pull request #1138 from bcwaldon/common-watch-code
Use shared watch code in kubelet etcd config
2014-09-03 23:47:09 -07:00
Brian Waldon
85bf7064bb Use shared watch code in kubelet etcd config 2014-09-03 15:51:02 -07:00
Clayton Coleman
34c40e4e48 Errors should be part of api/errors, not apiserver
Renames constructor methods to be errors.New<name> which changed a few
places.
2014-09-03 17:16:00 -04:00
Daniel Smith
a63966e73c Combine pkg/apitools and pkg/api/common and call the result pkg/runtime 2014-09-02 11:15:44 -07:00
Daniel Smith
099c8fd36f Propagate rename; tests pass again. 2014-09-02 10:42:06 -07:00
Vojtech Vitek (V-Teq)
42c656501c Add several missing pkg Godoc files
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:11 +02:00
Vojtech Vitek (V-Teq)
59f58cd043 Unify Godoc formatting, fix various typos
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:03 +02:00
Daniel Smith
aa9b9b9fa8 Invert api and api/v1beta1 dependencies
This is some cleanup that has been needed for a while.
There's still one more step that could usefully be done, which is to
split up our api package into the part that provides the helper
functions and the part that provides the internal types. That can come
later.

The v1beta1 package is now a good example of what an api plugin should
do to version its types.
2014-08-29 12:15:30 -07:00
Dawn Chen
223fb6e610 Fixed kubelet /healthz by using healthz package
Fixed #1094
2014-08-28 15:34:39 -07:00
Daniel Smith
97b05619f1 Remove deprecated bits from kubelet 2014-08-26 22:39:00 -07:00
Brendan Burns
556eb0f400 Add a run command to the kublet server 2014-08-26 13:57:44 -07:00
Brendan Burns
4f1fa939f7 Switch the hostname in a container to be the pod id. 2014-08-26 11:13:53 -07:00
Daniel Smith
3ab35c63f3 Merge pull request #828 from roberthbailey/config
Add validation when processing pod manifests from a URL.
2014-08-21 14:34:25 -07:00
brendandburns
8f5dd8cf63 Merge pull request #984 from thockin/make_vs_new
Rename a bunch of "Make" functions to "New"
2014-08-20 22:06:57 -07:00
Tim Hockin
0f97a73c1b Rename a bunch of "Make" functions to "New"
Also rename some to other names that make better reading.  There are still a
bunch of "make" functions but they do things like assemble a string from parts
or build an array of things.  It seemed that "make" there seemed fine.  "New"
is for "constructors".
2014-08-20 21:27:19 -07:00
brendandburns
1bd4ae0c62 Merge pull request #943 from smarterclayton/only_wait_for_acceptance
Clients must wait for completion of actions
2014-08-20 21:01:21 -07:00
Clayton Coleman
493863eb93 Return immediately when controllers/pods are committed
Add client waiting conditions.
2014-08-20 18:46:10 -04:00
Clayton Coleman
34031dbc6a Remove excessive waiting in kubelet etcd loop
Listen to etcd longer, and wait a shorter time before reconnecting.
No longer an argument to the source.
2014-08-20 18:46:10 -04:00
derekwaynecarr
fd8741edf2 Refactor kubelet to use http.ServeMux 2014-08-20 16:08:08 -05:00
Vishnu Kannan
2b61831c22 Improve kubelet logging - log the docker container image name when docker pull fails. 2014-08-20 10:30:42 -07:00
Dawn Chen
5a2365b323 Fix #926
Make HostPort a real option without being set to ContainerPort if absent.
2014-08-19 15:44:50 -07:00
Brendan Burns
0caae9c1d4 Add a in container exec based health check. 2014-08-18 12:00:11 -07:00
Robert Bailey
ce572050a8 Add tests for invalid container manifests. 2014-08-18 00:44:46 -07:00
Robert Bailey
fecfe23ed1 Refactor tests to be table driven. 2014-08-18 00:17:06 -07:00
Robert Bailey
9ce364d498 Add validation when processing pod manifests from a URL. 2014-08-17 22:50:53 -07:00
Tim Hockin
b9e65c2438 Use new api/errors, get rid of api.* error code 2014-08-15 00:14:38 -07:00
Daniel Smith
ab24790e8f Fix go files with wrong boilerplate 2014-08-12 17:48:00 -07:00
Daniel Smith
1a5a22c539 Fix files missing gofmt 2014-08-12 17:48:00 -07:00
Brendan Burns
2986db9885 Add container hashing to the container name, and restart containers on changes. 2014-08-08 13:32:07 -07:00
Daniel Smith
2297bf8cea Merge pull request #830 from brendandburns/net
Delete containers for a pod if we have to create the network container.
2014-08-08 13:12:42 -07:00
Brendan Burns
38900a9c58 Delete containers for a pod if we have to create the network container. 2014-08-08 12:34:59 -07:00
Victor Marmol
adc57da3f3 Merge pull request #825 from brendandburns/runin
Add support for "run in"
2014-08-07 23:47:19 -07:00
Brendan Burns
d31d0781b2 Add support for "run in" 2014-08-07 20:27:58 -07:00
Clayton Coleman
d7f46718a8 Kubelet should have a max think time before auto resync
The sync frequency should be part of the syncLoop and resync no
less often than every X seconds.  The current implementation runs
even if a config update was delivered less than X seconds ago.
2014-08-07 10:40:03 -04:00
Danny Jones
7c28e0849f Reorganization; Directory traversal less ugly
Directory traversal is no longer recursive and only goes as deep as it
needs to. Moved GetActiveVolumes to volume packages and added a simple
test.
2014-08-06 11:20:34 -07:00
Danny Jones
3f7f6cb2dc Modifies tests to use new volume objects. 2014-08-06 10:21:59 -07:00
Danny Jones
6191ffc0de Modifies directory walker to use a regex
Now a regex is used to determine active volume properties from
their directory paths.
2014-08-06 10:21:59 -07:00
Danny Jones
47bca30edc Splits volume interface into Builders and Cleaners
Different information is needed to perform setup versus teardown. It
makes sense to separate these two interfaces since when we call teardown
from the reconciliation loop, we cannot rely on having the
information provided by the api definition of the volume.
2014-08-06 10:21:59 -07:00
Danny Jones
dfc9cb86f0 Initial reconciliation loop.
Determines the set of active volumes versus the set of valid volumes
defined by the manifests. If there is an active volume that is not
defined in any of the manifests, deletes and cleans up that volume.
2014-08-06 10:21:59 -07:00
Kouhei Ueno
22522cd003 PodConfigListener is never used 2014-08-06 06:43:16 +09:00
brendandburns
d4860c21a9 Merge pull request #752 from smarterclayton/remove_expect_no_error_util
Remove expectNoError from client, kubelet, and util
2014-08-04 09:15:22 -07:00
Clayton Coleman
f7149926c0 Remove expectNoError from client, kubelet, and util 2014-08-04 09:39:06 -04:00
Clayton Coleman
10564e447b Generate valid file Pod Names and test for them
Ensure that pods coming from the unit test configuration validate,
and that proper names are generated.

Lowercases source filenames, strips all but a-z0-9, and tests
for consistent results.
2014-08-03 18:46:59 -04:00
Brendan Burns
490bb28bf9 Add TCP socket based health checking. 2014-08-01 14:13:56 -07:00
Dawn Chen
2e8020be8c Update the entire cAdvisor package. There is a version mismatch issue
which cause #707
2014-07-31 10:11:25 -07:00
Dawn Chen
76ec7acf91 bump(github.com/google/cadvisor): bdd574b728e8a1e5eb08649d631197620dd09650 2014-07-31 09:14:04 -07:00
Francisco Souza
2a345ffa9e third_party: update go-dockerclient
math.MaxInt64 represents 8 exabytes, which is a good limit for memory.
Also, this is the type used by Docker, so it's not possible to get any
value bigger than math.MaxInt64 as memory limit (both ram and swap) on a
Docker container.

Relevant discussion at #589 (more precisely,
https://github.com/GoogleCloudPlatform/kubernetes/pull/589#issuecomment-50640605).
2014-07-30 15:18:42 -03:00
brendandburns
b0d18b2af0 Merge pull request #571 from lavalamp/master
Decode/Encode everywhere
2014-07-29 17:19:33 -07:00
Rohit Jnagal
fbd3e85e9c Fix handling of default cpu shares. 2014-07-29 18:34:16 +00:00
Daniel Smith
31a78c3e2b Merge pull request #619 from brendandburns/controller
Make individual controller actions asynchronous.
2014-07-28 15:35:19 -07:00
Brendan Burns
1a3e4f8baf Add some more synchronization. 2014-07-28 15:05:39 -07:00
Daniel Smith
b3cc696486 All types stored in etcd are now API objects.
This means I made an api.ContainerManifestList, and added a JSONBase to
endpoints (and changed Name -> JSONBase.ID).
2014-07-28 11:27:36 -07:00
Clayton Coleman
4ee3deaaf7 Merge pull request #647 from kelseyhightower/fix_extra_test_flags
Remove extra test flags from all commands
2014-07-28 12:58:57 -04:00
Dan McPherson
c4f4f69b93 Fixing Typos 2014-07-28 15:56:20 +02:00
Kelsey Hightower
87fa19cdfe Remove extra test flags from all commands
Currently all commands are being build with extra flags. The extra
flags appear because of a direct import of the testing package from
the fake_etcd_client.go source file.

Remove the direct import of the testing package. Add a tools.T
interface to support existing behavior. Also clean up two TODO items
by remove using of the expectError and expectNoError functions.

Fixes #579
2014-07-27 14:19:18 -07:00
Daniel Smith
8881adc905 Merge pull request #606 from jonboulle/master
assorted formatting and typo fixes
2014-07-24 15:25:08 -07:00
Jonathan Boulle
c43035088b assorted formatting and typo fixes 2014-07-24 15:10:36 -07:00
Daniel Smith
5ae20f9edb Merge pull request #605 from Sarsate/setup-error
SetUp now returns an error.
2014-07-24 14:13:22 -07:00
Danny Jones
1117da4a55 SetUp now returns an error.
SetUp returns an error, kubelet now skips pod if error occurs.
2014-07-24 13:53:44 -07:00
Victor Marmol
b131da1cf5 Sync pods asynchronously in the Kubelet.
This makes two main changes:
- Runs syncPod in a separate Go routine (and enforces only one of those
  runs at a time).
- Uses the pod list to determine if a container should be running or
  should be killed (used to use the output of syncPod).

Since Docker pulls are synchronized by the Docker daemon we still block
on that, but pods can now be removed and prepared for starting without
blocking on long pulls.
2014-07-24 13:47:51 -07:00
Daniel Smith
41eb15bcff Merge pull request #527 from Sarsate/rootdir-flag
Adds a flag to specify root working directory.
2014-07-24 13:12:55 -07:00
Danny Jones
bfa4642055 Adds a flag to specify root working directory.
--root_dir specifies the directory kubelet will use for it's
procedures. Currently used for volume mounts.
2014-07-24 13:04:05 -07:00
Daniel Smith
65575953c0 Merge pull request #589 from monnand/update-docker-client
update github.com/fsouza/go-dockerclient
2014-07-23 18:00:24 -07:00
Nan Deng
ea4224cbe7 update github.com/fsouza/go-dockerclient 2014-07-23 17:42:03 -07:00