Commit Graph

443 Commits

Author SHA1 Message Date
Yifan Gu
5a9ea30814 rkt: Do not run rkt pod inside a pre-created netns when network plugin is no-op.
This fixed a panic where the returned pod network status is nil.
Also this makes lkvm stage1 able to run inside a user defined
network, where the network name needs to be 'rkt.kubernetes.io'.

Also fixed minor issues such as passing the wrong pod UID, ignoring
logging errors.
2016-06-09 19:38:07 -07:00
Yifan Gu
8596d25ad5 rkt: Fix incomplete selinux context string when the option is partial.
Add Getfilecon() into the selinux interface.
2016-06-07 14:43:35 -07:00
Yifan Gu
3699b70b00 rkt: Refactor the systemd interface.
Replace shell out calls with dbus API calls.
Remove unused 'Reload()'.
2016-06-06 05:27:08 +00:00
k8s-merge-robot
8e091e254f Merge pull request #26666 from euank/fix-wrong-err
Automatic merge from submit-queue

rkt: Wrap exec errors as utilexec.ExitError

This is needed by the exec prober to distinguish error types and exit
codes correctly. Without this, the exec prober used for liveness probes
doesn't identify errors correctly and restarts aren't triggered. Fixes #26456

An alternative, and preferable solution would be to use utilexec
everywhere, but that change is much more involved and should come at a
later date. Unfortunately, until that change is made, writing tests for
this is quite difficult.

cc @yifan-gu @sjpotter
2016-06-04 05:11:16 -07:00
k8s-merge-robot
4c316979c8 Merge pull request #25851 from euank/fixJournaldUsage
Automatic merge from submit-queue

rkt: Get logs via syslog identifier

This change works around https://github.com/coreos/rkt/issues/2630
Without this change, logs cannot reliably be collected for containers
with short lifetimes.

With this change, logs cannot be collected on rkt versions v1.6.0 and
before.

I'd like to also bump the required rkt version, but I don't want to do that until there's a released version that can be pointed to (so the next rkt release).

I haven't added tests (which were missing) because this code will be removed if/when logs are retrieved via the API. I have run E2E tests with this merged in and verified the tests which previously failed no longer fail.

cc @yifan-gu
2016-06-02 15:53:39 -07:00
k8s-merge-robot
a27058156f Merge pull request #24901 from yifan-gu/support_selinux
Automatic merge from submit-queue

rkt: Add pod selinux support.

Currently only pod level selinux context is supported, besides when
running selinux, we will not be able to use the overlay fs, see:
https://github.com/coreos/rkt/issues/1727#issuecomment-173203129.


cc @kubernetes/sig-node  @alban @mjg59 @pmorie
2016-06-02 07:48:02 -07:00
Euan Kemp
40efc0fb33 rkt: Wrap exec errors as utilexec.ExitError
This is needed by the exec prober to distinguish error types and exit
codes correctly.

An alternative, and preferable solution would be to use utilexec
everywhere, but that change is much more involved and should come at a
later date. Unfortunately, until that change is made, writing tests for
this is quite difficult.
2016-06-01 15:34:49 -07:00
Yifan Gu
0a7537ecbf rkt: Add pod selinux support.
Currently only pod level selinux context is supported, besides when
running selinux, for now we will not be able to use the overlay fs
except for coreos, see:
https://github.com/coreos/rkt/issues/1727#issuecomment-173203129.
2016-06-02 00:55:27 +08:00
k8s-merge-robot
6277eea57b Merge pull request #26200 from yifan-gu/remove_systemd_quotes
Automatic merge from submit-queue

rkt: Remove quotes in the systemd ExecStart command.

cc @euank @dcbw
2016-06-01 03:13:19 -07:00
Euan Kemp
f028a9f410 rkt: Update minimum rkt version to 1.7.0
Also remove the redundant `appcVersion` check, that version should
already be captured in the rkt version
2016-05-31 15:24:51 -07:00
Euan Kemp
d0a31873d7 rkt: Get logs via syslog identifier
This change works around https://github.com/coreos/rkt/issues/2630
Without this change, logs cannot reliably be collected for containers
with short lifetimes.

With this change, logs cannot be collected on rkt versions v1.6.0 and
before.
2016-05-31 15:23:46 -07:00
Yifan Gu
6cb87e8d69 rkt: Remove quotes in the systemd ExecStart command.
With quotes, the service doesn't start for systemd 219 with the error
saying the path of the netns cannot be found.

This PR fixes the bug by removing the quotes surround the netns path.
2016-05-31 22:16:42 +08:00
Yifan Gu
1d40f471b4 rkt: Fix docker auth config save directory to avoid race. 2016-05-30 20:40:31 +08:00
k8s-merge-robot
d00dec7825 Merge pull request #26397 from euank/fixReadOnlyRootfsPanic
Automatic merge from submit-queue

rkt: Fix panic in setting ReadOnlyRootFS

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

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

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

cc @tmrts @yifan-gu
2016-05-29 02:17:09 -07:00
k8s-merge-robot
350efaf13d Merge pull request #26096 from euank/set-pod-ip
Automatic merge from submit-queue

rkt: Pass through podIP

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

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

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

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

cc @yifan-gu @dcbw
2016-05-28 12:40:39 -07:00
Euan Kemp
abbd0321b2 rkt: Use volumes from RunContainerOptions
This replaces the previous creation of mounts from the `volumeGetter`
with mounts provided via RunContainerOptions.

This is motivated by the fact that the latter has a more complete set of
mounts (e.g. the `/etc/hosts` one created in kubelet.go).
2016-05-27 13:11:47 -07:00
Alex Robinson
bd0b94efe2 Merge pull request #26029 from luxas/mkdir_all
kubelet: Use MkdirAll instead of Mkdir
2016-05-27 11:40:01 -07:00
Alex Robinson
789b69758e Merge pull request #25688 from sjpotter/rkt_annotations
kubelet: Move common labels out of dockertools package
2016-05-27 11:26:31 -07:00
Euan Kemp
ecfd8f723f rkt: Fix panic in setting ReadOnlyRootFS 2016-05-26 20:43:26 -07:00
Alex Mohr
5b1653ec39 Merge pull request #25681 from vishh/lifecycle-probe-logs
Log output of lifecycle hooks on failure
2016-05-26 12:37:02 -07:00
Shaya Potter
9dd9f2ad65 move common lables used outside of containr runtime out of dockertools
moved labels and their Get functions to types

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

Use read-only root filesystem capabilities of rkt

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

cc @yifan-gu 

Fixes #23837
2016-05-25 17:58:03 -07:00
Euan Kemp
8a2895d88f rkt: Pass through podIP
This is needed for the /etc/hosts mount and the downward API to work.
Furthermore, this is required for the reported `PodStatus` to be
correct.

The `Status` bit mostly worked prior to #25062, and this restores that
functionality in addition to the new functionality.
2016-05-25 11:16:39 -07:00
Vishnu kannan
e7721ea8cf Expose errors from libecycle hooks as events for the pod.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-05-24 11:12:53 -07:00
Euan Kemp
136da158c5 rkt: Support alternate stage1's via annotation
This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation.

It's possible this feature should be gated behind additional knobs, such
as a kubelet flag to filter allowed stage1s, or a check akin to what
priviliged gets in the apiserver.
Currently, it checks `AllowPrivileged`, as a means to let people disable
this feature, though overloading it as stage1 and privileged isn't
ideal.
2016-05-23 13:47:16 -07:00
Euan Kemp
dc236d926d rkt: Add VolumeGetter mock 2016-05-23 13:43:55 -07:00
Lucas Käldström
2022c44409 kubelet: Use MkdirAll instead of Mkdir 2016-05-22 00:23:18 +03:00
Tamer Tas
239c04d60d Use read-only root filesystem capabilities of appc & rkt 2016-05-21 20:01:00 +03:00
k8s-merge-robot
d6d0a6eb83 Merge pull request #25656 from tmrts/godep-update/rkt-1.6.0
Automatic merge from submit-queue

Update rkt API version to 1.6.0

Updates coreos/rkt container runtime dependency to `1.6.0`

Fixes #25430
2016-05-21 09:56:52 -07:00
k8s-merge-robot
423a4154be Merge pull request #25062 from dcbw/kubenet-rkt
Automatic merge from submit-queue

Hook rkt kubelet runtime up to network plugins
2016-05-21 00:45:19 -07:00
Dan Williams
62e4635cfb rkt: set up network namespace with plugins 2016-05-18 11:28:05 -05:00
Dan Williams
9b85d20c73 kubelet/runtime: add method to return pod network namespace path
Some runtimes (eg, Hypernetes) don't create network namespaces for pods,
so network plugins must correctly handle any error returned from the
runtime.
2016-05-18 09:26:01 -05:00
Euan Kemp
3e00e0cd71 rkt: Don't warn on empty pod logs
If a pod has not printed anything to stdout/stderr, it's expected
behaviour to get `-- No entries --`, even when requesting json output.
Prior to this change, a warning would be printed in such an occasion.
2016-05-16 16:47:35 -07:00
Tamer Tas
7d40332ca8 Update rkt container runtime min versions 2016-05-17 00:03:25 +03:00
k8s-merge-robot
59b7b1c550 Merge pull request #24921 from feiskyer/merge-exec
Automatic merge from submit-queue

Remove RunInContainer interface in Kubelet Runtime interface

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

@yujuhong  @kubernetes/sig-node
2016-05-15 02:58:15 -07:00
Yifan Gu
9d5bcf4251 rkt: Add tests for GarbageCollect(). 2016-05-13 15:13:52 -07:00
Yifan Gu
06b1955c4a rkt: Refactor GarbageCollect() to enforce GCPolicy.MaxContainers. 2016-05-13 15:12:36 -07:00
Yifan Gu
5351602f7d rkt: Implement ImageStats() for rkt. 2016-05-09 11:26:40 -07:00
k8s-merge-robot
fe135fc251 Merge pull request #24630 from euank/redundant-created
Automatic merge from submit-queue

kubelet: Remove redundant `Container.Created`

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

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

cc @yifan-gu & @Random-Liu 

Is there any reason we might want to keep this around?
2016-05-08 16:21:05 -07:00
Robert Bailey
b274c5b7de Merge pull request #24843 from derekwaynecarr/graceperiod_override
Allow KillPod to take a gracePeriodOverride
2016-05-06 15:17:56 -07:00
Robert Bailey
71706e0ad5 Merge pull request #25206 from yifan-gu/fix_hostport
rkt: When host port is zero, we should not forward the port.
2016-05-06 13:43:56 -07:00
derekwaynecarr
7bab6999d4 Allow KillPod to take a gracePeriodOverride 2016-05-06 12:14:43 -04:00
Yifan Gu
36f3185223 rkt: When host port is zero, we should not forward the port. 2016-05-04 19:02:39 -07:00
feisky
831203c19b Remove RunInContainer interface in Kuberlete Runtime interface 2016-05-01 20:21:15 +08:00
Random-Liu
7796b619fd Cleanup the code with new engine-api 2016-04-29 13:34:38 -07:00
Abhishek Shah
8a3ed48808 Added Hostname and Subdomain field to Pod.Spec 2016-04-28 10:56:56 -07:00
k8s-merge-robot
4c7abddc1c Merge pull request #24567 from yifan-gu/post_start_hook
Automatic merge from submit-queue

rkt: Add post-start hook support.

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

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

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


cc @sjpotter @euank @kubernetes/sig-node
2016-04-27 11:14:35 -07:00
k8s-merge-robot
55cb7cceb3 Merge pull request #23632 from stefwalter/parse-repository-tag-removed
Automatic merge from submit-queue

Fix use of docker removed ParseRepositoryTag() function

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

Failure:

```
../k8s.io/kubernetes/pkg/util/parsers/parsers.go:30: undefined: parsers.ParseRepositoryTag
```
2016-04-26 09:49:25 -07:00
k8s-merge-robot
cf38d68734 Merge pull request #23595 from vishh/image-accounting
Automatic merge from submit-queue

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

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

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

cc @kubernetes/sig-node
2016-04-25 21:34:30 -07:00
Vishnu kannan
e566948a75 Track image storage usage for docker containers
add image fs info to summary stats API.
Adding node e2e test for image stats.

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

The `.Created` field was only written to as far as I can see.
2016-04-25 12:19:24 -07:00
Stef Walter
481dbca8bc Fix use of docker removed ParseRepositoryTag() function
Docker has removed the ParseRepositoryTag() function in
leading to failures using the kubernetes Go client API.

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

Failure:

../k8s.io/kubernetes/pkg/util/parsers/parsers.go:30: undefined: parsers.ParseRepositoryTag
2016-04-25 11:37:10 +02:00
k8s-merge-robot
4f9e8729bf Merge pull request #23800 from resouer/image-refactor
Automatic merge from submit-queue

Refactor image related functions to use docker engine-api

ref #23563 

Hopes can do some help, cc @Random-Liu 

If it's ok, will add more work here.
2016-04-23 20:01:41 -07:00
Harry Zhang
a3939473d3 Refactor PullImage RemoveImage methods
Refactor image remove
2016-04-23 10:33:47 -04:00
Yifan Gu
a12a7c2a2c rkt: Add post-start hook support.
This adds a poll-and-timeout procedure after the pod is
started, to make sure the post-start hooks execute when the
container is actually running.

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

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

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

Fixes #23887
2016-04-22 15:34:55 -07:00
k8s-merge-robot
61c0424b27 Merge pull request #24301 from yifan-gu/host_net
Automatic merge from submit-queue

rkt: Fix hostnetwork.

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

Fix #24235 

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

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

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

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

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


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

rkt: Update the directory path for saving auth config.

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

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

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

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

In step two, I'll add another intermediate, lazy provider for each AWS region,
whose empty LazyAuthConfiguration will have a refresh time of months or years.
Behind the scenes, it'll use an actual ecrProvider with the usual ~12 hour
credentials, that will get created (and later refreshed) only when kubelet is
attempting to pull an image. If we simply turned ecrProvider directly into a
lazy provider, we would bypass all the caching and get new credentials for
each image pulled.
2016-04-14 23:42:07 -07:00
Yifan Gu
dfb6dd010f rkt: Fix hostnetwork.
Mount hosts' /etc/hosts, /etc/resolv.conf, set host's hostname
when running the pod in the host's network.

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

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

This PR solves the issue by using the unique rkt uuid as the service
file's name. After the change, the service file's name will be:
'k8s_${rkt_uuid}.service'.
2016-04-14 18:42:44 -07:00
Yifan Gu
e803f55e20 rkt: Update the directory path for saving auth config. 2016-04-14 18:40:14 -07:00
Yifan Gu
cc4336829d rkt: Add pre-stop lifecycle hooks for rkt.
When a pod is being terminated, the pre-stop hooks of all the containers
will be run before the containers are stopped.
2016-04-12 13:10:51 -07:00
k8s-merge-robot
6a87dba0b8 Merge pull request #22733 from resouer/flow-control
Automatic merge from submit-queue

Add flow control pkg

minor fix ref #15634
Refactor pkg names in back off related files
2016-04-11 06:18:51 -07:00
harry
5fe773d37c Add flow control pkg
Refactor pkg names in flow control related files
2016-04-03 11:28:03 +08:00
Wlodzimierz Borkowski
378ef9746e keep deprecated flag stage1-image with rkt 2016-04-01 09:32:10 +02:00
Rudi Chiarito
ca6bdba014 Allow lazy binding in credential providers; don't use it in AWS yet
This is step one for cross-region ECR support and has no visible effects yet.
I'm not crazy about the name LazyProvide. Perhaps the interface method could
remain like that and the package method of the same name could become
LateBind(). I still don't understand why the credential provider has a
DockerConfigEntry that has the same fields but is distinct from
docker.AuthConfiguration. I had to write a converter now that we do that in
more than one place.

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

Also update the logging flag to change the journal match from
_HOSTNAME to _MACHINE_ID.
2016-03-28 17:06:14 -07:00
Yifan Gu
d814d973ff rkt: Bump rkt required version. Get options from api service. 2016-03-28 17:06:14 -07:00
k8s-merge-robot
2205a30348 Merge pull request #23368 from saad-ali/renameBuilderCleaner
Auto commit by PR queue bot
2016-03-26 13:01:25 -07:00
goltermann
32d569d6c7 Fixing all the "composite literal uses unkeyed fields" Vet errors. 2016-03-25 15:25:09 -07:00
saadali
79012f6d53 Rename volume.Builder to Mounter and volume.Cleaner to Unmounter 2016-03-25 11:29:58 -07:00
goltermann
34d4eaea08 Fixing several (but not all) go vet errors. Most are around string formatting, or unreachable code. 2016-03-22 17:26:50 -07:00
k8s-merge-robot
88d50f30d2 Merge pull request #23228 from yifan-gu/rkt_entry_cmd
Auto commit by PR queue bot
2016-03-22 08:07:41 -07:00
Yifan Gu
9d3d55d0fb rkt: Unmarshal the ENTRYPOINT/CMD from jsons instead of strings.
Using json makes this robust to ENTRYPOINT/CMD that contains space.

Also removed 'RemainAfterExit' option, originally this option is
useful when we implement GetPods() by 'systemctl list-units'.
However since we are using rkt API service now, it's no longer needed.
2016-03-18 17:18:24 -07:00
Yifan Gu
89feb6fc53 rkt: Append tag to the returned image name. 2016-03-18 16:40:44 -07:00
k8s-merge-robot
a4097fa4f1 Merge pull request #22891 from yifan-gu/rkt_version
Auto commit by PR queue bot
2016-03-16 00:04:55 -07:00
Yifan Gu
fe2c3c351a rkt: Split checkVersion() to two parts: get version, and check version.
This enables rkt runtime to setup versions during creation,
this fixes a kubelet nil pointer panic when kubelet tries to get the
rkt versions but it's not set.
2016-03-15 16:35:26 -07:00
k8s-merge-robot
3b208815fd Merge pull request #22713 from yifan-gu/rkt_fix_entrypoint
Auto commit by PR queue bot
2016-03-12 01:41:53 -08:00
Brian Grant
c6b4518aed Merge pull request #22666 from pmorie/pod-ip-flake-redux
Fix flake in pod IP as env var e2e
2016-03-11 09:42:40 -08:00
Andy Goldstein
7230bd1096 Fix rkt GetPods() order
Use an array to store the pod IDs and use that to build the pod array with consistent ordering,
instead of map ordering, which is random and causes test flakes.
2016-03-11 12:32:22 -05:00
Paul Morie
5194c12d9e Fix flake in pod IP as env var e2e 2016-03-10 16:32:03 -05:00
Yifan Gu
56be600c2b rkt: Fix GetPods().
Group containers from different rkt pods into one k8s pod if
they have the same k8s pod UID.
2016-03-09 17:46:44 -08:00
Yifan Gu
4a63f7f74c rkt: Support ENTRYPOINT/CMD substitution. 2016-03-08 18:32:18 -08:00
k8s-merge-robot
fa0bf812d6 Merge pull request #22467 from Random-Liu/push-down-runtime-version-check
Auto commit by PR queue bot
2016-03-05 22:34:19 -08:00
k8s-merge-robot
357a9d1fdf Merge pull request #22033 from yifan-gu/rkt_get_status
Auto commit by PR queue bot
2016-03-05 10:46:47 -08:00
Random-Liu
07b21c50fa Add Status in runtime interface and use it for runtime health check. 2016-03-04 21:26:41 -08:00
Yifan Gu
b7a058e290 rkt: Formats the timestamp to RFC3339.
This should fix the e2e test:
"should be able to retrieve and filter logs [Conformance]".
2016-03-03 10:47:18 -08:00
Tim St. Clair
7b6d843309 Move test-only files to test-only packages 2016-03-01 09:11:32 -08:00
Yifan Gu
168ec8b80f kubelet: Sort the container statuses in convertStatusToAPIStatus(). 2016-02-26 11:27:03 -08:00
Yifan Gu
2d2225414f rkt: fix KillPod() to return the correct error message. 2016-02-22 17:07:31 -08:00
laushinka
7ef585be22 Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
k8s-merge-robot
a2086d4150 Merge pull request #20816 from yifan-gu/termination_log_anno
Auto commit by PR queue bot
2016-02-10 00:26:48 -08:00
k8s-merge-robot
2ec49efd54 Merge pull request #19945 from Clarifai/fix-formatting
Auto commit by PR queue bot
2016-02-09 16:05:00 -08:00
Yifan Gu
b14ac9481a rkt: Add hyphen in the annotation key. 2016-02-09 14:50:25 +08:00
Yifan Gu
8964469e4a rkt: Remove ShouldContainerBeRestartedOldVersion(). 2016-02-09 00:15:58 +08:00
Yifan Gu
8e5c14f1bf rkt: Annotation key should not container capital letters. 2016-02-09 00:13:08 +08:00
Random-Liu
2b7d0182ca Remove ConvertPodStatusToAPIPodStatus from runtime interface 2016-02-05 19:19:46 +00:00
k8s-merge-robot
bd67b8a5db Merge pull request #20192 from Random-Liu/remove-get-api-podstatus
Auto commit by PR queue bot
2016-02-05 11:00:42 -08:00
Rudi Chiarito
a0831a2378 Mass fix of Infof and co. missing the trailing "f", even when formatting placeholders are used 2016-02-03 11:34:59 -05:00
Yifan Gu
d27a635c4a rkt: Add DNS support.
rkt is now able to populate /etc/resolv.conf with command line flags.
Update the runtime code to fix DNS issues.
2016-02-03 14:54:09 +01:00
Random-Liu
7b4cdb6f8f Remove GetAPIPodStatus from runtime interface 2016-02-02 23:41:55 +00:00
k8s-merge-robot
e78834ab62 Merge pull request #20337 from yifan-gu/rkt_empty_isolator
Auto commit by PR queue bot
2016-02-02 09:56:04 -08:00
k8s-merge-robot
23c64ec103 Merge pull request #20233 from yifan-gu/rkt_fix_user_group
Auto commit by PR queue bot
2016-02-02 08:47:08 -08:00
k8s-merge-robot
171c2ecbe7 Merge pull request #19524 from derekparker/rkt-image-size
Auto commit by PR queue bot
2016-02-01 11:53:36 -08:00
k8s-merge-robot
174521ee1a Merge pull request #19856 from yifan-gu/termination_path
Auto commit by PR queue bot
2016-02-01 07:16:16 -08:00
Yifan Gu
581759d12d rkt: Set default 'User', 'Group' to root if it's not specified. 2016-02-01 20:00:09 +08:00
k8s-merge-robot
e07d9b3ee7 Merge pull request #20174 from yifan-gu/rkt_insecure_options
Auto commit by PR queue bot
2016-02-01 03:44:16 -08:00
Yifan Gu
9ce10c8552 rkt: Add support for termination message, termination reason.
If 'TerminationMessagePath' in container spec is set, then
We will mount the termination message log into the container.

Also in GetPodStatus, if the container exits and the 'TerminationMessagePath'
is set, then the 'message' field in container state will be populated.
2016-02-01 18:06:47 +08:00
k8s-merge-robot
9fef5f2938 Merge pull request #19785 from Random-Liu/remove-get-podstatus-and-apipodstatus
Auto commit by PR queue bot
2016-01-30 11:35:26 -08:00
k8s-merge-robot
ef851cd7d1 Merge pull request #20261 from yifan-gu/rkt_cmd_args
Auto commit by PR queue bot
2016-01-30 09:12:25 -08:00
Random-Liu
f116a5eb8f Remove temporary function GetPodStatusAndAPIPodStatus() 2016-01-30 00:39:26 -08:00
Random-Liu
e93febfd61 Start returning PodSyncResult in SyncPod 2016-01-30 00:25:50 -08:00
Yifan Gu
1b34e2c314 rkt: If resource's limit is empty, populate it with request,and vice versa. 2016-01-29 10:50:37 -08:00
Yifan Gu
dcee692d64 rkt: Expand environment variables in Command and Args. 2016-01-29 10:09:48 -08:00
Yifan Gu
d03b705c5f rkt: Replace the deprecated flag 'insecure-skip-verify' with 'insecure-options'. 2016-01-28 14:31:27 -08:00
Fabio Yeon
7205a160ac Remove all instances of "/tmp" from unit tests and replace with a common
tmp directory creator. Exception is documented.
2016-01-27 16:11:22 -08:00
Ken Robertson
a7b07c01df Update container runtime to properly report the engine and version
This address a TODO when collecting the node version information so it
will properly report the configured runtime and its version. Previously,
this was hardcoded to "docker://" and the docker version, and would show
"docker://1.9.1" even when the kubelet was configured to use rkt.

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

This also changes the container.Runtime interface to add an APIVersion()
method. This can be used when the runtime has separate versions for the
engine and the API, such as with Docker. The Docker minimum version
validation has been updated to use APIVersion(), and
DockerManager.Version() now returns the engine version.
2016-01-20 16:42:25 -08:00
k8s-merge-robot
ffed4e1a3a Merge pull request #19428 from yifan-gu/rkt_isolator
Auto commit by PR queue bot
2016-01-16 08:48:38 -08:00
Mike Danese
33c72db59c Merge pull request #19528 from resouer/strings-util
Create strings pkg to fix util issue
2016-01-14 21:19:17 -08:00
harry
7405c7899b Add strings pkg to hold strings utils
Replace funtions with strings pkg

Fix all references and rename the pkg
2016-01-15 12:37:50 +08:00
Yifan Gu
74b8ffd156 rkt: Add useful debugging message. 2016-01-13 17:15:49 -08:00
Derek Parker
55f09009c7 rkt: Include size in ListImages 2016-01-12 14:44:40 -08:00
k8s-merge-robot
c255181509 Merge pull request #18248 from resouer/images-dev
Auto commit by PR queue bot
2016-01-11 23:53:43 -08:00
Yifan Gu
dda62129d1 rkt: Add unit tests for setApp. 2016-01-08 13:41:18 -08:00
Yifan Gu
cc656ae6ac rkt: Refactor setIsolators.
Replace manually creating isolators with isolator constructors.
Also add support for supplementary group IDs.
2016-01-08 13:31:21 -08:00
harry zhang
27ca7dc71e Expose image list in node status
Change image manager to use repotag
2016-01-08 17:01:31 +08:00
k8s-merge-robot
d1668c6656 Merge pull request #19269 from yifan-gu/rkt_refactor
Auto commit by PR queue bot
2016-01-05 22:28:02 -08:00
Yifan Gu
2767f10b61 rkt: refactoring on constructing the app section of rkt pods. 2016-01-04 16:27:52 -08:00
Random-Liu
2ea11690b8 Remove running pod from SyncPod() of container runtime 2016-01-04 10:18:46 -08:00
Yifan Gu
9b81b67879 rkt: Move image related functions to image.go 2015-12-29 17:17:27 -08:00
Yifan Gu
644aa9536a rkt: Remove pod_info.go, clean up codes that not needed anymore. 2015-12-22 12:02:25 -08:00
Yifan Gu
ee7251ed10 rkt: Update for newest api version. 2015-12-22 12:02:25 -08:00
Yifan Gu
278f0dc8ad rkt: Replace image cat-manifest/list with api calls. 2015-12-22 12:02:25 -08:00
Jimmi Dyson
041ab17a67 Bump cadvisor to fix interface stats bugs & improve performance
Includes necessary godep upgrades for docker & systemd packages as well as
migrating from docker/libcontainer to opencontainers/runc/libcontainer.
2015-12-21 17:07:21 +00:00
k8s-merge-robot
b7dd32ad70 Merge pull request #18643 from yifan-gu/rkt_get_pod_status
Auto commit by PR queue bot
2015-12-19 02:38:31 -08:00
Yifan Gu
2c79c670f1 rkt: Fix GetPods(), refactor tests for GetPods().
Fix GetPods() so that the container hash is fetched from the
annotations in pod manifest's app list instead of image manifest.
2015-12-16 16:53:45 -08:00
Yifan Gu
5f4e6d0908 rkt: Add GetPodStatus(), GetPodStatusAndAPIPodStatus().
Also add ConvertPodStatusToAPIPodStatus().
Add tests for GetPodStatus().
2015-12-16 14:35:19 -08:00
Jeff Lowdermilk
9f3d28c788 Merge pull request #18305 from yujuhong/podfullname
Replace podFullName with format.Pod() in logging messages
2015-12-11 14:31:47 -08:00
Derek Gonyeo
5a16b4751b rkt: rewrote GetPods to use rkt's api service
This involved adding annotations to the rkt pod's manifest that contain
information about the kubernetes pod, which is later read by the
kubelet.
2015-12-09 14:43:50 -08:00
Yu-Ju Hong
c646255579 Replace podFullName with format.Pod() in logging messages 2015-12-07 13:41:52 -08:00
k8s-merge-robot
810181fb7b Merge pull request #17278 from ZJU-SEL/fix-nil-tag
Auto commit by PR queue bot
2015-12-06 12:52:39 -08:00
k8s-merge-robot
e1230eb57e Merge pull request #17420 from Random-Liu/use-raw-pod-status-in-docker
Auto commit by PR queue bot
2015-12-05 12:16:04 -08:00
k8s-merge-robot
2f4d4d9e94 Merge pull request #17968 from dgonyeo/rkt_api_list_images
Auto commit by PR queue bot
2015-12-05 05:50:06 -08:00
Random-Liu
3cbdf79f8c Change original PodStatus to APIPodStatus, and start using kubelet internal PodStatus in dockertools 2015-12-04 17:37:39 -08:00
Derek Gonyeo
7ae6bf9d39 rkt: rewrote ListImages to use rkt's API service 2015-12-04 11:25:56 -08:00
Yu-Ju Hong
a4816b3bcb Make kublet/util/format.go a separate package
The formatting function is used often in logging. This improves the readability
by shortening the length of the call. Also change the fomartted string to
include the pod UID.
2015-12-03 12:47:36 -08:00
harry zhang
121c7046aa Move parsers into util 2015-11-29 22:15:11 -08:00
k8s-merge-robot
7cc83b347e Merge pull request #17607 from yifan-gu/rm_rkt_image_manager
Auto commit by PR queue bot
2015-11-27 01:49:00 -08:00
k8s-merge-robot
27c2f5fb52 Merge pull request #17526 from yifan-gu/rkt_api_service
Auto commit by PR queue bot
2015-11-25 06:24:55 -08:00
Avesh Agarwal
3d5207fd73 This commit adds type information to events.
This addresses issue #15624.
2015-11-24 09:59:54 -05:00
Yifan Gu
5b423dd458 rkt: Refactor version check with api-service.
Also mocked systemd interfaces for testing purpose.
2015-11-23 16:30:51 -08:00
Yifan Gu
28e78f4fb8 rkt: remove rkt image manager.
This removes the dead code of rkt image manager as the generic
image manager is being used.
2015-11-20 16:30:51 -08:00
Daniel Smith
874b4f85d9 Merge pull request #17259 from yujuhong/raw_pod_status
kubelet: add RawPodStatus and related functions
2015-11-20 14:23:19 -08:00
Yu-Ju Hong
759795592d rkt: correctly copy container status in GetPods() 2015-11-18 18:18:53 -08:00
Yu-Ju Hong
760309f349 kubelet: add RawPodStatus and related functions
RawPodStatus will be the internal status of the pod that kubelet relies on for
syncing.
2015-11-17 17:04:05 -08:00
Yu-Ju Hong
3beae6b70b Add Status in the runtime Container type
This is necessary for the generic PLEG to distinguish container events.
2015-11-13 09:55:36 -08:00
jiangyaoguo
b0f0c294d9 make reasons constants with clarity 2015-11-09 23:42:14 +08:00
Dawn Chen
a39e1e96dc Mark NodeNotReady for docker version below 1.6.2 2015-10-30 13:48:51 -07:00
Sami Wagiaalla
1d352a16b8 Support volume relabling for pods which specify an SELinux label 2015-10-28 09:26:58 -04:00
Vishnu kannan
0df4b46d4c Adding a kubelet flag to optionally enable parallel image pulls. 2015-10-22 17:19:51 -07:00
Vishnu kannan
94b45830c3 make kubelet image pulls serialized by default. 2015-10-20 14:50:44 -07:00
k8s-merge-robot
59fdccd122 Merge pull request #15868 from yifan-gu/fix_gc
Auto commit by PR queue bot
2015-10-20 07:47:16 -07:00
Tim St. Clair
a263c77b65 Refactor liveness probing
This commit builds on previous work and creates an independent
worker for every liveness probe. Liveness probes behave largely the same
as readiness probes, so much of the code is shared by introducing a
probeType paramater to distinguish the type when it matters. The
circular dependency between the runtime and the prober is broken by
exposing a shared liveness ResultsManager, owned by the
kubelet. Finally, an Updates channel is introduced to the ResultsManager
so the kubelet can react to unhealthy containers immediately.
2015-10-19 15:15:59 -07:00
Yifan Gu
c4de5b7451 kubelet/rkt: do not remove other systemd service. 2015-10-19 11:23:54 -07:00
Yifan Gu
22467d9d33 kubelet/rkt: Fix a typo in container gc. 2015-10-16 15:07:43 -07:00
k8s-merge-robot
6341e1d3e2 Merge pull request #15658 from yifan-gu/rkt_cli
Auto commit by PR queue bot
2015-10-16 14:52:14 -07:00
k8s-merge-robot
0a5299cd63 Merge pull request #15114 from yifan-gu/rkt_log
Auto commit by PR queue bot
2015-10-16 14:00:39 -07:00
k8s-merge-robot
dc685dfee6 Merge pull request #15260 from yifan-gu/rkt_gc_systemd_service
Auto commit by PR queue bot
2015-10-15 22:16:11 -07:00
Yifan Gu
9d01933e94 kubelet/rkt: garbage collect systemd service files in GarbageCollect(). 2015-10-15 18:21:26 -07:00
Yifan Gu
0ef6af25c1 kubelet/rkt: update rkt version. 2015-10-15 18:04:07 -07:00
eulerzgy
ea86e66fbe Del capatical local packagename for kubeletUtil 2015-10-15 09:58:10 +08:00
Yifan Gu
0a81443056 kubelet/rkt: fetch journal logs in json format.
This enables more fine-grained control over the things we want to
output. Also by closing the stdout/stderr of the journalctl process
when user hits `Ctrl-C` after `kubectl logs $POD -f`, this enables
the journalctl process to exit.
2015-10-14 12:02:52 -07:00
Yifan Gu
ba68b095a9 kubelet/rkt: enable getting logs for exited pods. 2015-10-09 12:01:34 -07:00
k8s-merge-robot
96a2a95dee Merge pull request #15276 from yifan-gu/rkt_probe
Auto commit by PR queue bot
2015-10-09 10:28:08 -07:00
k8s-merge-robot
273c9ce503 Merge pull request #15177 from timstclair/restart-policy
Auto commit by PR queue bot
2015-10-09 09:41:22 -07:00
feisky
fb04edea3a Replace rkt --grace-period and --expire-prepared with gcPolicy.MinAge 2015-10-09 06:57:10 +08:00
feisky
d624c7de51 Pass the ContainerGCPolicy in Runtime.GarbageCollect 2015-10-09 06:57:10 +08:00
feisky
4c8a836260 Move original container gc to docker runtime 2015-10-09 06:57:09 +08:00
Yifan Gu
2c318bfee2 kubelet/rkt: return util/exec.ExitError if exec probing fails.
This enables the prober to return probe.Failure instead of
probe.Unknown.
2015-10-08 14:14:01 -07:00
Piotr Szczesniak
726f1e17c4 Merge pull request #14173 from runningwild/PR0
If an isolator's request is nil, populate it with the limit and vice versa
2015-10-08 13:07:08 +02:00
Piotr Szczesniak
95b293c615 Merge pull request #13516 from samsabed/backoff-image-reason
backoff image pulling on failure
2015-10-08 13:05:32 +02:00
Tim St. Clair
551eff63b8 Use strong type for container ID
Change all references to the container ID in pkg/kubelet/... to the
strong type defined in pkg/kubelet/container: ContainerID

The motivation for this change is to make the format of the ID
unambiguous, specifically whether or not it includes the runtime
prefix (e.g. "docker://").
2015-10-07 10:58:05 -07:00
Derek Carr
87fe1f4af8 Merge pull request #13939 from pmorie/pod-sc-minimal
Add PodSecurityContext and backward compatibility tests
2015-10-07 09:56:58 -04:00
Sam Abed
fdf712cd84 back-off image pull on failure
Signed-off-by: Sam Abed <samabed@gmail.com>
2015-10-07 21:12:42 +11:00
Tim St. Clair
f67879eac7 Check pod RestartPolicy before restarting unhealthy containers 2015-10-06 13:17:45 -07:00
Paul Morie
227dd82119 Add PodSecurityContext and backward compatibility tests 2015-10-05 21:05:27 -04:00
Yifan Gu
b42d2311c3 kubelet/rkt: add container/image gc for rkt. 2015-10-05 14:22:19 -07:00
Alex Robinson
d8120f5425 Merge pull request #14221 from timstclair/readiness-workers
Refactor readiness probing
2015-10-05 13:26:54 -07:00
Tim St. Clair
52ece0c34e Refactor readiness probing
Each container with a readiness has an individual go-routine which
handles periodic probing for that container. The results are cached, and
written to the status.Manager in the pod sync path.
2015-10-02 15:37:10 -07:00
k8s-merge-robot
1bcdd56cf3 Merge pull request #12283 from ncdc/gh8766-port-forward-not-closing-correctly
Auto commit by PR queue bot
2015-10-02 04:48:12 -07:00
Andy Goldstein
ed021fed4c Port forwarding fixes
Correct port-forward data copying logic so that the server closes its
half of the data stream when socat exits, and the client closes its half
of the data stream when it finishes writing.

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

Fix race condition in the Kubelet's handling of incoming port forward
streams. Have the client generate a connectionID header to be used to
associate the error and data streams for a single connection, instead of
assuming that streams n and n+1 go together. Attempt to generate a
pseudo connectionID in the server in the event the connectionID header
isn't present (older clients); this is a best-effort approach that only
really works with 1 connection at a time, whereas multiple concurrent
connections will only work reliably with a newer client that is
generating connectionID.
2015-09-30 20:03:49 -04:00
Yifan Gu
4309cafff1 rkt: return non error if the pod doesn't exist in GetPodStatus().
Previously, GetPodStatus() will return error if the pod is never
created. However we've never seen the sync loop fail because in the
beginning of the loop, if the pod is not found, it will be created.

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

This PR fixes the bug.
2015-09-28 19:30:57 -07:00
k8s-merge-robot
c96c76b729 Merge pull request #13780 from smarterclayton/pod_logs
Auto commit by PR queue bot
2015-09-21 17:02:47 -07:00
Clayton Coleman
c2e90cd154 Support extended pod logging options
Increase the supported controls on pod logging. Add validaiton to pod
log options. Ensure the Kubelet is using a consistent, structured way to
process pod log arguments.

Add ?sinceSeconds=<durationInSeconds>, &sinceTime=<RFC3339>, ?timestamps=<bool>,
?tailLines=<number>, and ?limitBytes=<number>
2015-09-21 15:39:32 -04:00
Federico Simoncelli
f21d9ac9e4 Support pods with containers using host ipc
Add a HostIPC field to the Pod Spec to create containers sharing
the same ipc of the host.

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

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-09-18 21:13:39 +02:00
Jonathan Wills
ad085f78fe If an isolator's request is nil, populate it with the limit and vice versa.
The appc spec isn't currently clear about if both fields are required, and before rkt v0.8.1 if either field
was nil it would result in a crash.  Currently rkt will ignore isolators that don't have both fields set, so
I think this is a reasonable approach to making sure isolators are actually used.
2015-09-18 09:51:32 -04:00
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