Daniel Martí
586cb9126a
Move pkg/util.Time to pkg/api/unversioned.Time
...
Along with our time.Duration wrapper, as suggested by @lavalamp.
2015-09-17 17:51:27 -07:00
Tim St. Clair
1d0577286f
Move the prober test from the docker manager_test.go to prober_test.go
2015-09-17 17:04:20 -07:00
k8s-merge-robot
0749339357
Merge pull request #14045 from jiangyaoguo/add-message-for-reason-cache
...
Auto commit by PR queue bot
2015-09-17 14:54:47 -07:00
jiangyaoguo
0d1ca62530
Add message to reason cache in kubelet
2015-09-18 01:19:04 +08:00
feihujiang
51f59f3c78
Fix the wrong path of document
2015-09-17 20:38:08 +08:00
k8s-merge-robot
445fde3dc5
Merge pull request #13447 from pweil-/pid-mode
...
Auto commit by PR queue bot
2015-09-16 23:34:35 -07:00
k8s-merge-robot
d680ea2444
Merge pull request #13542 from yujuhong/backoff_restarts
...
Auto commit by PR queue bot
2015-09-16 23:11:42 -07:00
k8s-merge-robot
22f698f5b0
Merge pull request #13953 from liguangbo/change_iff_to_if_and_only_if
...
Auto commit by PR queue bot
2015-09-16 08:35:20 -07:00
liguangbo
4df68f03a3
change iff to if and only if to improve annotation readability
2015-09-16 08:29:36 +00:00
Jeff Lowdermilk
a92c8b6886
Merge pull request #13384 from ZJU-SEL/portsbindings
...
Allow multiple host ports map to the same container port
2015-09-15 17:57:57 -07:00
Paul Weil
ed80c2b940
pid mode
2015-09-15 13:51:44 -04:00
Jeff Lowdermilk
e25ae7fdb2
Merge pull request #13833 from caesarxuchao/central-latest
...
[WIP] Making a generic latest package
2015-09-14 09:26:58 -07:00
Chao Xu
dd6c121d7f
massive changes
2015-09-11 17:31:47 -07:00
Mikaël Cluseau
b76abf10cc
hairpin: fix tests
2015-09-12 08:43:45 +11:00
Mikaël Cluseau
99a1cfa8ff
hairpin support
2015-09-12 08:43:45 +11:00
k8s-merge-robot
6f01200188
Merge pull request #13727 from jiangyaoguo/fix-reason-reporting-in-kubelet
...
Auto commit by PR queue bot
2015-09-11 12:32:20 -07:00
jiangyaoguo
62c0c35307
Fix reporting reason in kubelet
...
1. Make reason field of StatusReport objects in kubelet in CamelCase format.
2. Add Message field for ContainerStateWaiting to describe detail about Reason.
3. Make reason field of Events in kubelet in CamelCase format.
4. Update swagger,deep-copy and so on.
2015-09-11 10:01:08 +08:00
Daniel Smith
15b30b8b09
Move version agnostic parts of client
...
pkg/client/unversioned/cache -> pkg/client/cache
pkg/client/unversioned/record -> pkg/client/record
2015-09-10 17:17:59 -07:00
tummychow
78ce5da988
Move util.StringSet into its own package
...
A lot of packages use StringSet, but they don't use anything else from
the util package. Moving StringSet into another package will shrink
their dependency trees significantly.
2015-09-10 12:04:15 -07:00
Wojciech Tyczynski
b85d0557b4
Revert #13052
2015-09-08 09:40:12 +02:00
Harry Zhang
7b2e2e5649
Fix tests and clear fmt mess in manager.go
2015-09-05 04:52:51 +00:00
Chao Xu
9fc79e9d99
refactor testapi and test scripts to prepare for multiple API groups.
2015-09-04 18:01:32 -07:00
derekwaynecarr
5dc74e8dbf
Add support for CFS quota in kubelet
2015-09-03 13:44:28 -04:00
Yu-Ju Hong
9cdb004851
kubelet: fix erratic restart count caused per-container restart backoff
2015-09-02 18:50:42 -07:00
Marcin Wielgus
3e9932557d
Merge pull request #13052 from pmorie/podip-fix
...
Fix race condition for consuming podIP via downward API
2015-09-02 16:04:01 +02:00
k8s-merge-robot
49475c3431
Merge pull request #13061 from yifan-gu/rkt_patch_events
...
Auto commit by PR queue bot
2015-09-01 04:10:18 -07:00
Paul Morie
4ff66bd70a
Fix race exposing pod IP via downward API
2015-08-31 19:18:58 -04:00
Harry Zhang
18315db025
Allow multiple host ports map to the same port in container
2015-08-31 15:22:30 +08:00
Yu-Ju Hong
f707ca08d5
Fix incorrect restart count for docker containers
2015-08-28 11:54:30 -07:00
Yifan Gu
6ced66249d
kubelet/dockertools: clear container reference when killing a container.
2015-08-25 18:22:08 -07:00
Sam Abed
995cb15bb6
back off restarts of crashlooping containers
...
Signed-off-by: Sam Abed <samabed@gmail.com>
2015-08-24 21:43:17 +10:00
tamnd
906b279080
Support new docker config format for private registries
2015-08-22 15:37:25 +07:00
Clayton Coleman
f5c4a3e7a6
Handle graceful termination in the Kubelet
...
Supports pods that are gracefully deleted on the server being
handled in the Kubelet
preStop is limited to the grace period of the pod in execution.
2015-08-21 10:18:21 -04:00
Lv Lv
7cf9ee19c7
add test for utsMode change
2015-08-19 16:56:19 +08:00
Lv Lv
0b90dfba3a
use host uts namespace when pod.Spec.HostNetwork is true
2015-08-19 13:02:10 +08:00
Robert Bailey
08e6a43c1d
Revert "Merge pull request #9165 from smarterclayton/graceful"
...
This reverts commit 4f856b595d
, reversing
changes made to d78525a83b
.
Conflicts:
pkg/kubelet/status_manager.go
2015-08-18 17:34:49 -07:00
Kris Rousey
ae6c64d9bb
Moving everyone to unversioned client
2015-08-18 10:23:03 -07:00
Clayton Coleman
780accb3ba
Kubelet should garbage collect dead pods
...
The sync loop should check for terminated pods that are no longer
running and clear them. The status loop should never write status
if the pod UID changes. Mirror pods should be deleted immediately
rather than gracefully.
2015-08-18 09:08:44 -04:00
Clayton Coleman
89f1f3b1b8
Alter graceful deletion to not use TTL
...
Avoid TTL by deleting pods immediately when they aren't
scheduled, and letting the Kubelet delete them otherwise.
Ensure the Kubelet uses pod.Spec.TerminationGracePeriodSeconds
when no pod.DeletionGracePeriodSeconds is available.
2015-08-18 09:08:43 -04:00
Clayton Coleman
b842a7dd15
Revert "Revert "Gracefully delete pods from the Kubelet""
...
This reverts commit 98115facfd
.
2015-08-18 08:57:02 -04:00
Yifan Gu
d70a30c069
kubelet: refactor kubelet.Runtimehooks to container.ImagePuller.
2015-08-12 16:28:25 -07:00
jiangyaoguo
9ab4a46b9d
Keep event reason in kubelet consistent with others
2015-08-12 19:00:09 +08:00
Kris Rousey
565189f5b8
Correcting all go vet errors
2015-08-11 13:55:37 -07:00
Filip Grzadkowski
3f7b54cbdb
Merge pull request #11669 from pweil-/sc-nonroot
...
add non-root directive to SC and kubelet checking
2015-08-11 10:30:53 +02:00
Alex Robinson
20c189d752
Merge pull request #12471 from peter-edge/docker-new-client-from-env
...
Use docker.NewClientFromEnv for creation of docker.Client
2015-08-10 14:22:21 -07:00
Paul Weil
e490c20c22
add non-root directive to SC and kubelet checking
2015-08-10 13:30:34 -04:00
peter-edge
0458d707ac
use docker.NewClientFromEnv for creation of docker.Client
2015-08-10 13:29:56 +02:00
Veres Lajos
9f77e49109
typofix - https://github.com/vlajos/misspell_fixer
2015-08-08 22:31:48 +01:00
Satnam Singh
4ece39ac20
Merge pull request #9452 from yifan-gu/img_pulling
...
kubelet: Add 'image pulling' event. Refactor dockerManager.createPodInfraContainer()
2015-08-07 15:23:24 -07:00
Satnam Singh
bee48f4ce5
Merge pull request #12035 from AnanyaKumar/requests
...
Add support for request
2015-08-07 14:27:34 -07:00
Satnam Singh
950ec96db0
Merge pull request #12182 from AnanyaKumar/qos-node
...
Add QoS support on node
2015-08-07 14:27:02 -07:00
Yifan Gu
053db8dba7
kubelet/dockertools: Refactor image pulling for pod infra container.
...
Replace the trunk of pull image code with dockerManagner.pullImage().
Also add tests to verify the image pulling/pulled events.
2015-08-07 11:42:04 -07:00
Ananya Kumar
6ef3de1d5f
Add QoS support on node
2015-08-07 11:18:16 -07:00
Yifan Gu
eb0fb43453
kubelet: Add image pulling event.
...
Since it takes a while (1-2mins) for kubelet to pulling a big image
(>500MB). Just showing "Pending" for pod status is not very helpful.
This commit introduces a "pulling" event, and inserts it before the
kubelet starts to pull an image.
2015-08-07 10:50:39 -07:00
Rajat Chopra
58a742e667
status hook for the container network
2015-08-06 15:46:04 -07:00
Wojciech Tyczynski
29aaf1a4d2
Merge pull request #12168 from brendandburns/stdin2
...
Support Stdin and TTY in the kubelet
2015-08-06 13:45:59 +02:00
Brendan Burns
901a04a3d6
Add support for interactive contaienrs to the kubelet
2015-08-05 22:14:56 -07:00
Ananya Kumar
ef1e576810
Add support for request
2015-08-05 19:00:19 -07:00
Mike Danese
17defc7383
run gofmt on everything we touched
2015-08-05 17:52:56 -07:00
Mike Danese
8e33cbfa28
rewrite go imports
2015-08-05 17:30:03 -07:00
Brendan Burns
e8e756a719
Add pod/attach to the APIServer.
2015-07-30 10:55:53 -07:00
Brendan Burns
64be76c14d
Add support for Attach to the kubelet.
...
This is a pre-cursor to supporting 'kubectl attach ...' and 'kubectl run -it ...'
2015-07-27 21:48:55 -07:00
Jimmi Dyson
8e482462fb
Fixes #8945 : Cleanup log symlinks on remove & dead log symlinks
2015-07-08 08:43:59 +01:00
Yu-Ju Hong
b9cc548799
Merge pull request #10763 from bprashanth/timer_leak
...
Don't leak tickers during an exec probe
2015-07-06 11:59:24 -07:00
Yu-Ju Hong
b58e7c8c2d
Merge pull request #10655 from dchen1107/cadvisor
...
Set minimal shares for containers with no cpu specified
2015-07-06 11:38:54 -07:00
Prashanth Balasubramanian
33e2f7cb8b
Don't leak tickers in the exec probe
2015-07-05 17:52:52 -07:00
Dawn Chen
9ce11545c0
Explicitly configure master component containers and nginx with 200m each.
2015-07-02 10:46:39 -07:00
Dawn Chen
4b85e02504
Set minimal shares for containers with no cpu specified
2015-07-01 21:17:07 -07:00
Yu-Ju Hong
d6ff297a1f
Kubelet: stop logging "Error on reading termination-log..." messages
...
If a pod was deleted and the associated volumes/directory were removed, there
could be a window where the pod worker is still active. If the pod worker tries
to inspect the logs, such an error would be logged. Since the pod has been
deleted, such error messages are meaningless.
This change stops logging this error, but stores the error string in the pod
status. The pod status will be updated for pods that are still alive, and will
be discarded eventually for deleted pods.
2015-07-01 14:20:42 -07:00
Maxwell Forbes
2bb4cf3f8f
Merge pull request #10266 from ArtfulCoder/kubelet_resolv
...
update docker's resolv.conf file with options ndots:5
2015-06-25 09:54:36 -07:00
Abhishek Shah
23caf446ae
update docker's resolv.conf file with options ndots:5
2015-06-24 23:33:58 -07:00
Maxwell Forbes
28946766a3
Merge pull request #9807 from krousey/container_manifest
...
Removing ContainerManifest
2015-06-24 17:55:29 -07:00
Kris Rousey
d13421e084
Removing ContainerManifest
2015-06-24 11:31:34 -07:00
Jeff Lowdermilk
d212ea17cd
Merge pull request #10182 from bprashanth/kubelet_status
...
Fix kubelet deadlock
2015-06-23 15:40:49 -07:00
Prashanth Balasubramanian
af175cc00b
Add a pod status equality method to the status manager.
2015-06-22 13:49:49 -07:00
Jeff Lowdermilk
b7583b799f
Merge pull request #10151 from brendandburns/explore
...
Remove some dead code.
2015-06-22 12:02:05 -07:00
Prashanth Balasubramanian
4b990d128a
Don't flood the status manager with updates from multi-container pods
2015-06-22 10:22:28 -07:00
Brendan Burns
26b682d6a0
Remove some dead code.
2015-06-19 21:32:13 -07:00
Yifan Gu
91e198cb70
kubelet: Move TestSyncPodWithTerminationLog() to dockertools package.
...
Update the fakeOptionGenerator to create the pod container directory,
so that fake docker client can see and record the termination log path.
2015-06-19 10:28:27 -07:00
Yifan Gu
6ddffdd736
kubelet: Move TestPortForwardNoSuchContainer() to dockertools package.
...
Also refactor TestPortForward() to be neutral to container runtime.
2015-06-19 10:28:27 -07:00
Saad Ali
d5e00d3990
Merge pull request #9523 from bprashanth/kl_stats
...
Scrape /metrics of kubelets from e2e tests
2015-06-17 11:30:28 -07:00
gmarek
c2c1045e09
Add startup latency e2e "test"
2015-06-17 17:40:07 +02:00
Saad Ali
6ada940e7f
Merge pull request #9706 from hurf/shorten_id
...
Shorten container ID in events
2015-06-16 15:58:30 -07:00
Andy Goldstein
7748a02e37
Eliminate possible infinite loop in exec
...
If a user starts an exec session with a shell and leaves it idle long
enough, they will eventually hit the Kubelet's HTTP server's read/write
timeout of 5 minutes. At this time, the StartExec call to Docker exits,
but if the user requested a TTY, the exec'd process does not exit.
After StartExec finishes, we try to determine the exit code of the
exec'd process, but in this case, we'll never get it. This change exits
the loop after 5 tries if the process is still running.
2015-06-16 15:44:09 -04:00
Prashanth Balasubramanian
831d7a36d0
Scrape /metrics of kubelets from e2e tests
2015-06-16 09:50:40 -07:00
Dawn Chen
80c48aedb2
Merge pull request #9824 from dchen1107/clean
...
explicitly applying oom_score_adj(0) to processes of user containers
2015-06-15 17:06:48 -07:00
Dawn Chen
14f78b74cc
Fix the unittests cause by applying oom_score_adj (0) to the user containers.
2015-06-15 16:16:34 -07:00
Dawn Chen
f6f9372d1a
Apply oom_score_adj (0) to PID of user containers by default.
2015-06-15 16:16:34 -07:00
Fabio Yeon
bb5d2101a1
Merge pull request #9765 from brendandburns/fix-kubelet
...
Fix a bug where the network container could be torn down before other pods
2015-06-15 15:09:01 -07:00
hurf
d58768b351
Shorten container ID in events
...
Log only first 12 characters of container ID in events.
2015-06-15 17:01:27 +08:00
Brendan Burns
aac696d44c
Fix a bug where the network container could be torn down before other pods.
...
This can break PreStop that hits localhost in the pod.
2015-06-12 21:18:40 -07:00
Abhi Shah
cdef8ae844
Merge pull request #9749 from dchen1107/podstatus
...
Add logging at RunInContainer for future debugging docker exec issues.
2015-06-12 17:10:12 -07:00
Dawn Chen
c1d1a01087
Add logging at RunInContainer for future debugging docker exec issues.
2015-06-12 16:38:24 -07:00
Mike Danese
35771acdfa
seperate readiness and liveness in the code
2015-06-11 15:09:27 -07:00
Dawn Chen
f714020a7a
Passing memory swap limit -1 by default. Docker remote API never check if memory
...
swap is enabled by kernel or not, instead by default to set the limit to
memory * 2, and return API error 500 if swap is not enabled.
2015-06-05 18:12:05 -07:00
Dawn Chen
636b40ffa1
Filtered out unfriendly error from docker when registry is not reachable(code: 502, 503, 504)
2015-06-05 11:29:35 -07:00
Yifan Gu
f197a9db4e
kubelet: Minor refactors.
...
Remove some TODOs.
Unexport DockerManager.Puller and DockerManager.PodInfraContainerImage.
Add "docker" for all "go-dockerclient" imports.
2015-06-04 16:08:45 -07:00
Brian Grant
be2547bc39
Merge pull request #9149 from vmarmol/docker-errors
...
Kubelet: Add metric for tracking Docker error count
2015-06-02 22:50:50 -07:00
Victor Marmol
6b0d3d8df0
Add DockerErrors metric in the Kubelet.
...
Allows the tracking of errors by Docker operation.
2015-06-02 17:38:09 -07:00
Victor Marmol
1a805c711a
Refactoring handling of latency recording.
2015-06-02 17:29:13 -07:00
Yu-Ju Hong
d4034f9c43
Move more docker-specific tests to dockertools/manager_test.go
2015-06-02 15:03:33 -07:00
Filip Grzadkowski
98115facfd
Revert "Gracefully delete pods from the Kubelet"
2015-06-02 23:40:05 +02:00
Brian Grant
8a9700b2ba
Merge pull request #8864 from ncdc/pluggable-docker-exec
...
Add support for pluggable Docker exec handlers
2015-06-02 14:13:06 -07:00
Clayton Coleman
72ee028cab
Gracefully delete pods from the Kubelet
...
This commit wires together the graceful delete option for pods
on the Kubelet. When a pod is deleted on the API server, a
grace period is calculated that is based on the
Pod.Spec.TerminationGracePeriodInSeconds, the user's provided grace
period, or a default. The grace period can only shrink once set.
The value provided by the user (or the default) is set onto metadata
as DeletionGracePeriod.
When the Kubelet sees a pod with DeletionTimestamp set, it uses the
value of ObjectMeta.GracePeriodSeconds as the grace period
sent to Docker. When updating status, if the pod has DeletionTimestamp
set and all containers are terminated, the Kubelet will update the
status one last time and then invoke Delete(pod, grace: 0) to
clean up the pod immediately.
2015-06-01 19:23:59 -04:00
Andy Goldstein
2a0d7ebb11
Add support for pluggable Docker exec handlers
...
Add support for pluggable Docker exec handlers. The default handler is
now Docker's native exec API call. The previous default, nsenter, can be
selected by passing --docker-exec-handler=nsenter when starting the
kubelet.
2015-06-01 16:59:59 -04:00
Chao Xu
2f6e5e2e08
Update ContainerState.Termination to ContainerState.Terminated in pkg/api/types.go and pkg/api/v1/types.go
2015-05-28 17:18:24 -07:00
Tim Hockin
3830c068b9
Merge pull request #8883 from yujuhong/kubelet_unittest2
...
Kubelet: clean up more unit tests
2015-05-28 15:00:02 -07:00
Brendan Burns
2ec4b409e1
Make exec more consistent with the rest of the kubectl commands.
2015-05-27 15:47:32 -07:00
Yu-Ju Hong
697312bcd7
Migrate more docker-specific tests to dockertools/manager_test.go
2015-05-27 12:42:59 -07:00
Paul Morie
8b338860aa
Make kubelet expand var refs in cmd, args, env
2015-05-27 00:13:57 -04:00
Yu-Ju Hong
9a71fb9373
Kubelet: clean up kubelet_test.go
...
* Start using FakeRuntime to replace FakeDockerClient in unit tests.
* Move and adapt docker-specific tests (e.g. creating/deleting infra
containers) to manager_test.go in dockertools.
2015-05-26 17:11:24 -07:00
Dawn Chen
017fb6a818
Merge pull request #8575 from yifan-gu/kube_refactor
...
Minor kubelet/rkt refactors
2015-05-21 09:37:31 -07:00
Yifan Gu
6a5681e0fe
kubelet: Move HashContainer to kubelet/container package.
2015-05-20 12:08:32 -07:00
Tim Hockin
75617e8760
Better kubelet logging for probes
...
Log when we actually run probes and event when they fail. Print the output of
a probe, too.
2015-05-20 08:56:45 -07:00
Dawn Chen
349d8b1a67
Merge pull request #8491 from vmarmol/fix-isolation
...
Fix setting resource isolation in Docker 1.6+
2015-05-19 11:26:27 -07:00
deads2k
72c0709f18
reduce scope of DockerConfigEntryWithAuth
2015-05-19 12:41:03 -04:00
Victor Marmol
deaa0e569d
Set CPU and memory in Create() and Start().
...
This allows for backwards and forwards compatability since old Docker
versions expect it in Create() and newer ones do so in Start().
Fixes #8358
2015-05-19 09:26:15 -07:00
deads2k
5458f05679
create LocalObjectReference
2015-05-19 08:39:46 -04:00
deads2k
0c14e0cbdb
add pull secret references to pods
2015-05-18 16:18:16 -04:00
Victor Marmol
a7341cfb77
Merge pull request #8386 from smarterclayton/make_kubelet_consumable
...
Make it easier to reuse kubelet server code
2015-05-18 11:26:55 -07:00
Satnam Singh
26b27b5e0f
Merge pull request #8374 from jimmidyson/docker-log-symlink-separator
...
Docker log symlinks should use underscore separator
2015-05-18 08:59:07 -07:00
Michal Fojtik
7d11e226b7
Disable 'Timestamps' in Docker logs to prevent double-timestamps
2015-05-18 12:27:19 +02:00
Clayton Coleman
1f628f2340
Bump fake docker version to emulate Docker 1.6
2015-05-16 16:10:49 -04:00
Jimmi Dyson
2d4067f1fd
Fixes #8374 : Underscore separator in docker log symlink
2015-05-16 19:19:27 +01:00
Dawn Chen
ebbb130af8
OOM protected docker processes (-900)
2015-05-14 15:49:12 -07:00
Victor Marmol
67eab52b9e
Merge pull request #8146 from yifan-gu/runtime_opt
...
kubelet/container: Refactor RunContainerOptions.
2015-05-13 11:09:56 -07:00
Yifan Gu
d164ac0ba0
kubelet/container: Refactor RunContainerOptions.
...
Make Envs, Mounts, PortMappings more generic.
Also add default name for PortMapping if it's not specified.
2015-05-13 10:01:00 -07:00
Brendan Burns
3f49c556e6
Second try at implementing prestop.
2015-05-12 17:17:03 -07:00
Victor Marmol
3481db8aee
Merge pull request #8136 from yifan-gu/runtime_opt
...
kubelet/container: Remove ipcMode and netMode from RunContainerOptions.
2015-05-12 14:41:49 -07:00
Yifan Gu
a2dac158c2
kubelet/container: Remove ipcMode and netMode from RunContainerOptions.
...
Since createPodInfraContainer() is moved into dockertools. There is no
need to pass the ipcMode or netMode via RunContainerOptions.
2015-05-12 14:18:00 -07:00
Vish Kannan
a74522a738
Merge pull request #8011 from brendandburns/exec
...
Switch exec to look at exit code not output status.
2015-05-12 12:43:11 -07:00
Brendan Burns
fbd0143fa8
Merge pull request #7971 from deads2k/make-docker-keyring-handle-multiple-hits
...
make the dockerkeyring handle mutiple matching credentials
2015-05-11 17:01:37 -07:00
Yu-Ju Hong
a9c9505206
Use VirtualSize of the docker image as the image size
2015-05-11 11:03:47 -07:00
Yu-Ju Hong
3487a165b8
Unexport DockerManager.RunContainer
2015-05-11 11:03:41 -07:00
Victor Marmol
307d677e06
Merge pull request #8022 from ddysher/kubelet-privilege
...
Check Pod privileged container
2015-05-11 09:01:58 -07:00
deads2k
2ecb0ebd73
make the dockerkeyring handle mutiple matching credentials
2015-05-11 09:54:03 -04:00
Deyuan Deng
2f7183cba5
Check Pod privileged container
2015-05-09 17:30:35 -04:00
Deyuan Deng
72a563f618
Use error type from docker go-client instead of string
2015-05-09 15:20:45 -04:00
Yu-Ju Hong
d185bfd56a
Record failure reason for image pulling
2015-05-08 17:37:11 -07:00
Brendan Burns
c9324e6e38
Switch exec to look at exit code not output status.
2015-05-08 16:51:37 -07:00
Yifan Gu
8b1174a3a7
kubelet/container: Move pty*.go to container runtime package.
...
This makes the labeld pty wrapper available for both container runtime.
2015-05-07 23:36:47 -07:00
Paul Morie
df08b15121
Change signature of container runtime PullImage to allow pull w/ secret
2015-05-06 17:42:03 -04:00
Rodolfo Carvalho
075ae79826
Fix metric label
...
Signed-off-by: Rodolfo Carvalho <rcarvalh@redhat.com>
2015-05-06 10:29:50 +02:00
Paul Weil
982bf19c20
security context initial implementation - squash
2015-05-05 13:46:13 -04:00
Victor Marmol
fe7cb95be6
Merge pull request #7746 from vishh/exec_fix
...
Fix kubelet's docker RunInContainer implementation
2015-05-04 16:49:57 -07:00
Victor Marmol
a32d31d045
Merge pull request #7729 from yujuhong/runtime_up
...
Kubelet: wait until container runtime is up
2015-05-04 16:02:30 -07:00
Vishnu Kannan
ec01265643
Fix docker exec logic. Without this patch, kubelet was not receiving any output from docker exec
...
and was incorrectly handling the output.
2015-05-04 16:01:32 -07:00
Yu-Ju Hong
d231eb6bef
Kubelet: wait until container runtime is up
...
Instead of waiting for the docker client to be up, we wait for the container
runtime to be up.
2015-05-04 15:16:38 -07:00
Victor Marmol
b0129089da
Merge pull request #7712 from rjnagal/kubelet
...
Expose pod name as a label on containers.
2015-05-04 14:52:16 -07:00
Rohit Jnagal
1511dbf0b5
Expose pod name as a label on containers.
...
Full pod name is exposed under key 'kubernetes.io/pod'.
It helps in introspection by looking at all containers in a pod through
docker ps -a -f label=kubernetes.io/pod=podXXX
We also plan to visualize this in cAdvisor.
2015-05-04 21:20:42 +00:00
Victor Marmol
79fc8bee34
Change GetContainerLogs() signature.
...
This works for both runtimes. We need to eventually unify the ID scheme
for this method.
2015-05-04 11:16:32 -07:00
Yu-Ju Hong
1ad4dd7803
Kubelet: replace DockerManager with the Runtime interface
...
This change instructs kubelet to switch to using the Runtime interface. In order
to do it, the change moves the Prober instantiation to DockerManager.
Note that most of the tests in kubelet_test.go needs to be migrated to
dockertools. For now, we use type assertion to convert the Runtime interface to
DockerManager in most tests.
2015-05-04 10:19:46 -07:00
Daniel Smith
4a6ab7fd36
Merge pull request #7597 from eparis/copyright
...
Use generic copyright holder name in license boilerplate
2015-05-01 17:01:39 -07:00
Eric Paris
6b3a6e6b98
Make copyright ownership statement generic
...
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Yu-Ju Hong
4fe3366b04
Removes RunPod in the Runtime interface
...
SyncPod subsumes RunPod, so the latter is no longer needed.
After this change, DockerManager implements the Runtime interface.
2015-05-01 14:47:04 -07:00
Victor Marmol
3b9eba2c1b
Add SyncPod() to DockerManager and use in Kubelet.
...
This allows us to abstract away the logic of syncing a pod by the
runtime. It will allow other runtimes to perform their own sync as well.
2015-05-01 11:03:08 -07:00
Vish Kannan
cadfde0bd1
Merge pull request #7277 from guenter/cgroup-parent
...
Add --cgroup_parent flag to Kubelet to set the parent cgroup for pods
2015-05-01 10:24:58 -07:00
Yifan Gu
3751ecc766
kubelet/container: Move ShouldContainerBeRestarted() to runtime.
2015-04-30 22:55:25 -07:00
Yu-Ju Hong
b37f23f1eb
Add KillContainerInPod in DockerManager
...
This changes adds one of the functions that DockerManager needs to implement
the Runtime interface.
2015-04-30 16:23:39 -07:00
Victor Marmol
441a4e6f30
Merge pull request #7578 from yujuhong/docker_manager
...
Add image-related methods to DockerManager
2015-04-30 16:16:39 -07:00
Yu-Ju Hong
83c599e4d4
Add image-related methods to DockerManager
...
This change is part of the efforts to make DockerManager implement the Runtime
interface.
The change also modifies the interface slightly to work with existing
code, and aggregates the type converting functions to convert.go.
2015-04-30 13:27:52 -07:00
Yu-Ju Hong
2f7b951140
Remove more docker references in kubelet
...
This change also renames TrimRuntimePrefixFromImage to TrimRuntimePrefix to
better reflect that the usage is not limited to images (e.g. ID).
2015-04-30 13:16:11 -07:00
Tobi Knaup
b96c4046a8
Add --cgroup_root flag to Kubelet to set the parent cgroup for all pods.
...
Implements #6991 .
2015-04-30 10:32:27 -07:00
Yu-Ju Hong
919d78281f
Clean up dockertools/manager.go and add more unit tests.
...
This change refactors the GetPods function and add some basic unit tests.
We should start migrating docker specific tests from kubelet_test to
manager_test.go.
2015-04-29 18:32:52 -07:00
Yu-Ju Hong
d81ecc58f8
Adapt pod killing and cleanup for generic container runtime
...
This change removes docker-specifc code in killUnwantedPods. It
also instructs the cleanup code to move away from interacting with
containers directly. They should always deal with the pod-level
abstraction if at all possible.
2015-04-29 16:08:09 -07:00
Yu-Ju Hong
ba1140a54f
Merge pull request #7480 from vmarmol/runtime-syncpod
...
Move ComputePodChanges to the Docker runtime
2015-04-29 16:05:20 -07:00
Victor Marmol
209b4fcbef
Merge pull request #6718 from vishh/sys_oom1
...
Adding system oom events from kubelet
2015-04-29 14:29:38 -07:00
Victor Marmol
fe4600ba17
Move ComputePodChanges to DockerManager.
...
This logic is specific to the Docker runtime. This move is the first
step towards making syncPod() runtime-agnostic.
2015-04-29 14:00:37 -07:00
Vishnu Kannan
020950fd0f
Adding events for system ooms.
...
Kubelet will continuously watch for system OOMs and generate events whenever it
encounters a system OOM.
2015-04-29 11:19:11 -07:00
Yu-Ju Hong
33b8f487f6
Merge pull request #7449 from vmarmol/runtime-network-plugins
...
Move network plugin TearDown to DockerManager
2015-04-29 10:09:58 -07:00
Yifan Gu
fb1c55aa11
kubelet/container: Add GetContainerLogs to runtime interface.
2015-04-28 20:26:16 -07:00
Victor Marmol
787d42d50b
Move network plugin teardown to DockerManager.
...
This teardown is Docker-specific and will let us also do the setup in
the manager in future cleanups.
2015-04-28 16:58:54 -07:00
Victor Marmol
de0957ccb1
Create Kubelet types package for common shared types.
2015-04-28 16:57:45 -07:00
Vishnu Kannan
820d0f3e83
Adding a 'PastEventf' method to EventRecorder interface. This will be
...
useful for recording the timestamp of events that happened in the past.
2015-04-28 16:13:29 -07:00
Dawn Chen
1de4c45115
Merge pull request #7401 from vmarmol/rkt-kill-pod
...
Kubelet: Move killPod() logic to DockerManager's KillPod()
2015-04-28 09:25:12 -07:00
Sam Ghods
5ceebb4a5f
Add error message to log of docker error
2015-04-27 21:49:46 -07:00
Victor Marmol
6b0db76e85
Move killPod() logic to DockerManager KillPod().
...
This moved Docker specific logic there and allows it to align with the
runtime API. There is still a pod infra container reference in the
function due to network plugins. We can handle this in the Kubelet since
we'll need to be explicit in stating that the network plugin will not
work in a non-Docker runtime.
2015-04-27 17:15:37 -07:00
Victor Marmol
7404b7019c
Move Docker-specific log handling to DockerManager.
...
Eases the separation of Docker-specific code into the Docker-specific
runtime.
2015-04-27 13:10:10 -07:00
Victor Marmol
0c52f7b6a5
Move CreatePodInfraContainer to DockerManager.
...
This will allow us to start making it an implementation detail of the
Docker runtime.
2015-04-27 11:07:38 -07:00
Yifan Gu
6c98b9daee
kubelet/metrics: Move instrumented_docker.go to dockertools.
...
This can solve the circular import problem when we move the
kubelet.pullImage to kubelet/metrics or kubelet/container package.
2015-04-24 22:03:11 -07:00
Yifan Gu
b5a1b32aa4
kubelet/dockertools: Move RunContainer into container runtime.
...
Also removed ContainerRunner interface.
2015-04-23 16:40:37 -07:00
Yifan Gu
6ed27d06f7
kubelet: Move KillContainer to container runtime.
...
Rename KillContainerID(string) with KillContainer(string).
Delete the old KillContainer(*kubecontainer.Container).
2015-04-23 15:44:00 -07:00
Yifan Gu
e8d485a3a1
kubelet/dockertools: Add readinessManage/containerRefManager to dockerManager.
...
This can enable us to move KillContainer() to container runtime.
2015-04-23 14:20:34 -07:00
Satnam Singh
2444c1f943
Propagate pod and container name for log files
2015-04-22 15:08:51 -07:00
Yifan Gu
c55c879ffe
kubelet/dockertools: Remove dockerContainerCommandRunner.
...
Replace with docker manager.
2015-04-22 11:00:54 -07:00
Victor Marmol
1a41ec9c86
Merge pull request #7116 from yujuhong/container_status
...
Print container statuses in `kubectl get pods`
2015-04-22 09:18:14 -07:00
Dawn Chen
a666c1e731
Merge pull request #7134 from yifan-gu/version
...
kubelet: Refactor GetDockerVersion().
2015-04-21 16:49:45 -07:00
Yu-Ju Hong
06125f37d3
Print container statuses in `kubectl get pods`
...
`kubectl get pod` already prints one container per line. This change fills in
the status for each container listed. This aims to help users quickly identify
unhealthy pods (e.g. in a crash loop) at a glance.
- The first row of every pod would display the pod information and status
- Each row of the subsequent rows corresponds to a container in that pod:
* STATUS refers to the container status (Running, Waiting, Terminated).
* CREATED refers to the elapsed time since the last start time of the
container.
* MESSAGE is a string which explains the last termination reason, and/or
the reason behind the waiting status.
2015-04-21 15:42:18 -07:00
Yifan Gu
611fb25926
kubelet: Refactor GetDockerVersion().
...
Remove GetDockerServerVersion() from DockerContainerCommandRunner interface,
replaced with runtime.Version(). Also added Version type in runtime for version
comparision.
2015-04-21 14:52:08 -07:00
Akram Ben Aissi
b7fc22be8a
Fixes an issue with hosts having an IPv6 address on localhost
...
- When 'getent hosts localhost' returns '::1' the creation of the
listener fails because of the port parsing which uses ":" as a
separator
- Use of net.SplitHostPort() to do the job
- Adding unit tests to ensure that the creation succeeds
- On docker.go: adds a test on the presence the socat command which was
failing silenty if not installed
- Code Review 1
- Fixed typo on Expected
- The UT now fails if the PortForwarder could not be created
- Code Review 2
- Simplify socat error message
- Changing t.Fatal to to.Error on unit tests
- Code Review 3
- Removing useless uses cases in unit tests
- Code Review 4
- Removing useless initiliasiation of PortForwarder
- Changing error message
- Code Review 5
- Simplifying TestCast struct
- Adding addition test in one test case
- Closing the listener
- Code Review 6
- Improving unit test
2015-04-21 20:16:22 +02:00
Victor Marmol
d44e9b4880
Merge pull request #7048 from yujuhong/para_cleanup
...
Kubelet: parallelize cleaning up containers in unwanted pods
2015-04-20 14:59:07 -07:00
Yu-Ju Hong
275002173e
Kubelet: parallelize cleaning up containers in unwanted pods
...
Kubelet kills unwanted pods in SyncPods, which directly impact the latency of a
sync iteration. This change parallelizes the cleanup to lessen the effect.
Eventually, we should leverage per-pod workers for cleanup, with the exception
of truly orphaned pods.
2015-04-20 14:42:12 -07:00
Andy Goldstein
a0a80ea76e
Use go-dockerclient's APIVersion
...
Use go-dockerclient's APIVersion to check the minimum required Docker
version, as it contains methods for parsing the ApiVersion response from
the Docker daemon and for comparing 2 APIVersion objects.
2015-04-20 13:48:18 -04:00
Xiang Li
2f2247dae3
pkg/kubelet: no more self receiver in kubelet pkg
2015-04-19 20:26:07 -07:00
Yu-Ju Hong
2fd87597a4
Fix data race in kubelet_test.go
...
Ensure that FakeDockerClient make a copy of the internal list and return it.
2015-04-16 11:36:10 -07:00
Victor Marmol
54406a5b7c
Merge pull request #6794 from yujuhong/restart_counts
...
Kubelet: persist restart count of a container
2015-04-14 16:01:49 -07:00
Yu-Ju Hong
fd34441d2d
Kubelet: persist restart count of a container
...
Currently, restart count are generated by examine dead docker containers, which
are subject to background garbage collection. Therefore, the restart count is
capped at 5 and can decrement if GC happens.
This change leverages the container statuses recorded in the pod status as a
reference point. If a container finished after the last observation, restart
count is incremented on top of the last observed count. If container is created
after last observation, but GC'd before the current observation time, kubelet
would not be aware of the existence of such a container, and would not increase
the restart count accordingly. However, the chance of this should be low, given
that pod statuses are reported frequently. Also, the restart cound would still
be increasing monotonically (with the exception of container insepct error).
2015-04-14 15:06:42 -07:00
Victor Marmol
ca9e209ccb
Merge pull request #6795 from yifan-gu/cache
...
kubelet/container: Replace DockerCache with RuntimeCache.
2015-04-14 09:37:34 -07:00
Dawn Chen
8420abeea8
Merge pull request #6786 from yifan-gu/cleankube
...
kubelet: Remove unused docker functions.
2015-04-14 09:16:53 -07:00
Yifan Gu
e1feed9a8b
kubelet/container: Replace DockerCache with RuntimeCache.
2015-04-13 18:16:05 -07:00
Yifan Gu
7fedb14c27
kubelet: Remove unused docker functions.
...
Remove kubelet.getPodInfraContainer().
Remove dockertools.RemoveContainerWithID().
Remove dockertools.FindContainersByPod().
Also replace the useless test with a test for GetPods().
2015-04-13 16:32:18 -07:00
Yifan Gu
d14cb8f1dd
kubelet: Introduce PodInfraContainerChanged().
...
This functions computes in ahead whether we need to restart the pod
infra container.
2015-04-13 16:18:52 -07:00
Yifan Gu
dda600e45c
kubelet/dockertools: Add puller interfaces in the containerManager.
2015-04-13 15:34:22 -07:00
Yifan Gu
a3675e08f2
kubelet/dockertool: Move Getpods() to DockerManager.
2015-04-13 14:05:22 -07:00
Yu-Ju Hong
bb417e82d7
Kubelet: surface the container creation/start failure reason
...
Container creation/start failure cannot be reproduced by inspecting the
containers. This change caches such errors so that kubelet can retrieve it
later.
This change also extends FakeDockerClient to support setting error response
for a specific function.
2015-04-10 16:02:27 -07:00
Victor Marmol
1563a7636a
Merge pull request #6652 from dchen1107/podstatus
...
Populate last terminated container information
2015-04-10 09:21:58 -07:00
Clayton Coleman
fce3e5a2bb
Merge pull request #6574 from ncdc/exec-portforward-no-command-pipes
...
Don't use command pipes for exec/port forward
2015-04-10 12:07:21 -04:00
Dawn Chen
563f2965ba
Populate last terminated container information
2015-04-09 16:10:13 -07:00
Yifan Gu
12b382ce76
kubelet/fake_docker_client: Use self's PID instead of 42 in testing.
...
This is safer to use self's PID than some arbitrary PID (say 42),
since the kubelet will set the oom_score_adj for real.
2015-04-09 14:31:44 -07:00
Yifan Gu
b868f421e0
kubelet: Move pod infra container image setting to dockertools.
2015-04-09 09:53:07 -07:00
Yifan Gu
d4513c2890
kubelet/DockerManager: Fix returning empty error from GetPodStatus().
2015-04-08 17:55:30 -07:00
Andy Goldstein
4c1cba5312
Don't use command pipes for exec/port forward
...
Switch to passing the streams for Stdin/Stdout/Stderr instead of using
StdinPipe() etc because the pipes are incompatible with Run()/Wait().
2015-04-08 13:42:42 -04:00
Yifan Gu
4b945e7218
kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
...
Add unit tests to test the restart behaviour under different
restart policy.
2015-04-08 09:44:23 -07:00
Yifan Gu
6103b144e0
kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
...
Use the pod status to get the recent stopped containers in
shouldContainerBeRestarted().
2015-04-08 09:44:23 -07:00
Quinton Hoole
c670071e87
Revert "kubelet: Remove GetRecentDockerContainersWithNameAndUUID."
2015-04-07 14:25:10 -07:00
Yifan Gu
ba1ad9fad2
kubelet: Refactor RunInContainer/ExecInContainer/PortForward.
...
Replace GetKubeletDockerContainers() with findContainer().
2015-04-06 17:14:46 -07:00
Yifan Gu
a8c02412b2
kubelet: Remove GetRecentDockerContainersWithNameAndUUID().
...
Use the pod status to get the recent stopped containers in
shouldContainerBeRestarted().
2015-04-06 12:43:49 -07:00
Yu-Ju Hong
d01bc660b5
Kubelet: a step towards to better encapsulation of docker functions
...
We want to stop leaking more docker details into kubelet, and we also want to
consolidate some of the existing docker interfaces/structs. This change creates
DockerManager as the new home of some functions in dockertools/docker.go. It
also absorbs containerRunner. In addition, GetDockerPodStatus is renamed to
GetPodStatus with the entire pod passed to it so that it is simialr to the what
is defined in the container Runtime interface.
Eventually, DockerManager should implement the container Runtime interface, and
integrate DockerCache with a flag to turn on/off caching. Code in kubelet.go
should not be using docker client directly.
2015-04-02 13:26:39 -07:00
Paul Morie
0335e350c7
Fix issue 6294: networking e2e should set args, not command
2015-04-01 11:40:23 -04:00
Paul Morie
7628b37d78
Add control over container entrypoint
2015-03-31 12:32:03 -04:00
Yifan Gu
7b1ea6b41d
kubelet_test: Fix copy bug.
...
Initialize the slice before copying in verifyUnorderedCalls()
and verifyStringArrayEqualsAnyOrder().
2015-03-30 17:17:42 -07:00
Yu-Ju Hong
3ad0e22cdd
Kubelet: allow docker to examine terminated container
...
Removing the if statement so that docker can continue returning the status of
terminated containers.
2015-03-27 18:04:50 -07:00
Vishnu Kannan
14a48ad026
Update pod ip using active container only.
2015-03-27 00:38:43 +00:00
Victor Marmol
0fb131c4f9
Merge pull request #5975 from yifan-gu/refactor_runContainer
...
kubelet: Refactor kubelet.runContainer.
2015-03-26 15:50:37 -07:00
Yifan Gu
aa2e7fe688
kubelet_test: Add verifyUnorderedCalls().
...
This fixes TestSyncPodsDeletesWithNoPodInfraContainer.
Since we need to sync two pods in parallel, we should not verify
the docker calls in strict order.
2015-03-26 15:25:51 -07:00
Yifan Gu
5f08555f45
kubelet: Refactor kubelet.runContainer.
...
Push the run container logic into container runtime.
2015-03-26 13:43:45 -07:00
Piotr Szczesniak
31901ed9d0
Changed PodInfo to be a list
...
This change is to make API consistent with our convention.
Fixes #3622
2015-03-26 10:15:25 +01:00
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
f4c3ccf639
dockertools: Introduce GetPods() for docker runtime.
2015-03-24 16:01:37 -07: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
Dawn Chen
4910be6dcb
Remove PodIP from ContainerStatus
2015-03-19 10:42:01 -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
Filip Grzadkowski
1a352b74ba
Periodically update pod status from kubelet.
2015-03-18 12:11:39 +01:00
Andy Goldstein
7b07960758
Use docker's ParseRepositoryTag when pulling
2015-03-17 20:15:13 -04: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
Andy Goldstein
c08f41c18b
Use docker's ParseRepositoryTag when pulling
2015-03-17 13:23:17 -04:00
Filip Grzadkowski
18b728ff44
Revert "Periodically update pod status from kubelet."
2015-03-17 13:51:45 +01:00
Filip Grzadkowski
336525a27d
Periodically update pod status from kubelet.
2015-03-16 23:03:03 +01: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
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
88e0b04916
Merge pull request #5287 from ncdc/master
...
Remove debugging log message from ExecInContainer
2015-03-11 09:45:37 -07: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
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
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
Dawn Chen
dad365fb2b
Hide POD container from end users
2015-03-02 17:03:28 -08:00
Wojciech Tyczynski
dcef5e2955
Introduce DockerCache in Kubelet.
2015-02-24 09:10:07 +01: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
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
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
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
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
Brendan Burns
0532c46217
Add a more detailed error message for potential auth fails in docker pull.
2015-02-12 17:00:59 -08:00
Vishnu Kannan
922881fcd2
Improve error handling for '/containerLogs' API in kubelet.
2015-02-12 02:22:26 +00:00
Mike Danese
043794492e
implement readiness.
2015-02-10 08:30:09 -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
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
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
Wojciech Tyczynski
ead67108ce
Use existing method to get Docker version.
2015-02-04 20:50:21 +01: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
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
Mrunal Patel
b6a0ff1003
IP: Shared IPC.
2015-01-27 09:26:36 -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
Dawn Chen
2299c04cea
Remove image GC.
...
Fix #3617,#3611, and #3393 .
2015-01-20 13:43:08 -08:00
Andrew Seidl
6dee1d7fa4
Fix typos in user-facing strings
2015-01-18 01:32:34 -06:00
Tim Hockin
1be3de895c
Move util.UID to pkg/types
2015-01-14 15:22:21 -08:00
Tim Hockin
e86d4cd3c6
Use a strong type for UID fields
2015-01-14 13:53:43 -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
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
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
Dawn Chen
608c3d5046
Update kubelet package on latest go-dockerclient package.
2014-12-18 13:49:13 -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
Vishnu Kannan
f4ef05bc20
Updated docker version that supports exec to '1.3.0'.
2014-12-15 20:44:58 +00:00
James DeFelice
3afc9fffba
fixed minor formatting
2014-12-12 20:43:07 -05: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
James DeFelice
ca2840a8e8
inspect the full repo/image:tag name
2014-12-09 15:41:08 -05:00
James DeFelice
76ef747927
avoid panics when docker CT has no name
2014-12-05 15:48:25 -05: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
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
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
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
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
jhadvig
f2f1708687
Setting RawTerminal attribute in LogOptions to false
2014-11-12 17:47:52 +01: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
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
Daniel Smith
4b16e979e6
Fix nil docker client (how did this ever work???)
2014-11-04 16:58:37 -08:00
Brendan Burns
4ae3e99177
Change a spammy log to V(3)
2014-11-03 08:38:02 -08:00
Brendan Burns
51bf451932
Add container garbage collection.
2014-10-28 12:52:06 -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
Michal Fojtik
0bccce4520
Move error about connecting to healthz server to V(1)
2014-10-20 15:31:01 +02: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
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
Eric Tune
4e0a72734e
Handle and log errors when reading .dockercfg
2014-10-09 13:22:14 -07:00
Johan Euphrosine
8f010c3ec0
dockertools: add todo for container lookup
2014-10-08 22:31:59 -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
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
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
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
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
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
jhadvig
9ba71528e4
stdout/stderr container log stream
2014-09-23 00:15:36 +02: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
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