Commit Graph

208 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
4653a9b280 Merge pull request #41543 from dshulyak/decouple_remotecommand
Automatic merge from submit-queue (batch tested with PRs 44406, 41543, 44071, 44374, 44299)

Decouple remotecommand

Refactored unversioned/remotecommand to decouple it from undesirable dependencies:

- term package now is not required, and functionality required to resize terminal size can be plugged in directly in kubectl
- in order to remove dependency on kubelet package - constants from kubelet/server/remotecommand were moved to separate util package (pkg/util/remotecommand)
- remotecommand_test.go moved to pkg/client/tests module
2017-04-13 19:52:05 -07:00
Dmitry Shulyak
f50480c714 Decouple remotecommand client from term/kubelet dependencies
In order to move client/unversioned/remotecommand to client-go as a followup
for this change we have to decouple it from tons of dependencies
2017-04-13 15:56:40 +03:00
Andy Goldstein
00e11566f2 Make the dockershim root directory configurable
Make the dockershim root directory configurable so things like
integration tests (e.g. in OpenShift) can run as non-root.
2017-04-12 09:06:21 -04:00
supereagle
b98c36394d update docker version parser for its new versioning scheme 2017-04-07 14:53:44 +08:00
Kubernetes Submit Queue
27cf62ac29 Merge pull request #43940 from xlgao-zju/rm-all-containers
Automatic merge from submit-queue (batch tested with PRs 42025, 44169, 43940)

[CRI] Remove all containers in the sandbox

Remove all containers in the sandbox, when we remove the sandbox.

/cc @feiskyer @Random-Liu 

Signed-off-by: Xianglin Gao <xlgao@zju.edu.cn>
2017-04-06 17:00:23 -07:00
Kubernetes Submit Queue
62c7c66ff4 Merge pull request #42772 from timchenxiaoyu/sometypo
Automatic merge from submit-queue (batch tested with PRs 44097, 42772, 43880, 44031, 44066)

fix some typo

fix some typo

**Release note**:

```NONE
```
2017-04-05 16:41:20 -07:00
Pengfei Ni
023fe48c98 Do not clear hostPid for host-networked container 2017-04-05 22:34:30 +08:00
Xianglin Gao
b9c1d6c7c8 Remove all containers in the sandbox
Signed-off-by: Xianglin Gao <xlgao@zju.edu.cn>
2017-04-05 13:36:30 +08:00
Yu-Ju Hong
19c8b2fb0e Check the error before parsing the apiversion 2017-04-04 09:38:44 -07:00
Kubernetes Submit Queue
6c6f4f0185 Merge pull request #43925 from Random-Liu/fix-dockershim-dns-options
Automatic merge from submit-queue

[CRI] Use DNSOptions passed by CRI in dockershim.

When @xlgao-zju is working on the CRI validation test, he found that dockershim is not using the DNSOptions passed in CRI. https://github.com/kubernetes-incubator/cri-tools/pull/30#issuecomment-290644357

This PR fixed the issue. I've manually tried, for `ClusterFirst` DNSPolicy, the resolv.conf will be:
```
nameserver 8.8.8.8
search corp.google.com prod.google.com prodz.google.com google.com
options ndots:5
```

For `Default` DNSPolicy, the resolv.conf will be:
```
nameserver 127.0.1.1
search corp.google.com prod.google.com prodz.google.com google.com
```

@xlgao-zju You should be able to test after this PR is merged.

/cc @yujuhong @feiskyer
2017-04-03 11:58:23 -07:00
Random-Liu
b1ce4b7a1d Use DNSOptions passed by CRI in dockershim. 2017-04-03 10:24:42 -07:00
Xianglin Gao
e5b3e0879d make func modifySandboxNamespaceOptions() more robust
Signed-off-by: Xianglin Gao <xlgao@zju.edu.cn>
2017-03-31 14:14:10 +08:00
Kubernetes Submit Queue
a7788aff24 Merge pull request #43057 from feiskyer/docker-version
Automatic merge from submit-queue

kubelet: check and enforce minimum docker api version

**What this PR does / why we need it**:

This PR adds enforcing a minimum docker api version (same with what we have do for dockertools).

**Which issue this PR fixes** 

Fixes #42696.

**Release note**:

```release-note
NONE
```
2017-03-26 21:34:04 -07:00
Kubernetes Submit Queue
73a3c05f06 Merge pull request #43428 from feiskyer/typo
Automatic merge from submit-queue (batch tested with PRs 43378, 43216, 43384, 43083, 43428)

Fix tiny typo

**What this PR does / why we need it**:

**Which issue this PR fixes**

Fix type typo introduced by PR #43368.


**Release note**:

```release-note
NONE
```
2017-03-25 21:22:28 -07:00
Kubernetes Submit Queue
a4986e38e6 Merge pull request #42556 from resouer/fix-id
Automatic merge from submit-queue (batch tested with PRs 42522, 42545, 42556, 42006, 42631)

Use pod sandbox id in checkpoint

**What this PR does / why we need it**: we should log out sandbox id when checkpoint error

**Release note**:

```NONE
```
2017-03-24 15:10:32 -07:00
Pengfei Ni
a16758396c Fix tiny typo 2017-03-21 14:22:33 +08:00
Kubernetes Submit Queue
948e3754f8 Merge pull request #43368 from feiskyer/dns-policy
Automatic merge from submit-queue (batch tested with PRs 43398, 43368)

CRI: add support for dns cluster first policy

**What this PR does / why we need it**:

PR #29378 introduces ClusterFirstWithHostNet policy but only dockertools was updated to support the feature. 

This PR updates kuberuntime to support it for all runtimes.


**Which issue this PR fixes** 

fixes #43352

**Special notes for your reviewer**:

Candidate for v1.6.

**Release note**:

```release-note
NONE
```

cc @thockin @luxas @vefimova @Random-Liu
2017-03-20 13:54:33 -07:00
Pengfei Ni
95c3782043 Rewrite resolv.conf for dockershim
PR #29378 introduces ClusterFirstWithHostNet, but docker doesn't support
setting dns options togather with hostnetwork. This commit rewrites
resolv.conf same as dockertools.
2017-03-20 18:45:39 +08:00
Pengfei Ni
99ed3202f3 Run hack/update-bazel.sh 2017-03-20 17:48:36 +08:00
Pengfei Ni
53b5f2df48 Add unit test for MakePortsAndBindings 2017-03-20 17:47:38 +08:00
Pengfei Ni
2ddaaec199 dockershim: process protocol correctly for port mapping 2017-03-20 16:52:24 +08:00
Kubernetes Submit Queue
222f69cf3c Merge pull request #43030 from yujuhong/rm_corrupted_checkpoint
Automatic merge from submit-queue (batch tested with PRs 42747, 43030)

dockershim: remove corrupted sandbox checkpoints

This is a workaround to ensure that kubelet doesn't block forever when
the checkpoint is corrupted.

This is a workaround for #43021
2017-03-14 22:56:20 -07:00
Yu-Ju Hong
48afc7d4e0 dockershim: call sync() after writing the checkpoint
This ensures the checkpoint files are persisted.
2017-03-14 18:36:51 -07:00
Pengfei Ni
91616f666a kubelet: check and enforce minimum docker api version 2017-03-15 09:28:06 +08:00
Yu-Ju Hong
035afab901 dockershim: remove corrupted sandbox checkpoints
This is a workaround to ensure that kubelet doesn't block forever when
the checkpoint is corrupted.
2017-03-13 15:41:01 -07:00
Kubernetes Submit Queue
9cfc4f1a10 Merge pull request #42739 from yujuhong/created_time
Automatic merge from submit-queue (batch tested with PRs 42762, 42739, 42425, 42778)

FakeDockerClient: add creation timestamp

This fixes #42736
2017-03-09 02:51:38 -08:00
Kubernetes Submit Queue
4cf553f78e Merge pull request #42767 from Random-Liu/cleanup-infra-container-on-error
Automatic merge from submit-queue (batch tested with PRs 42768, 42760, 42771, 42767)

Stop sandbox container when hit network error.

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

This PR stops the sandbox container when hitting a network error.
This PR also adds a unit test for it.

I'm not sure whether we should try teardown pod network after `SetUpPod` failure. We don't do that in dockertools https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/dockertools/docker_manager.go#L2276.

@yujuhong @freehan
2017-03-09 00:08:01 -08:00
Kubernetes Submit Queue
6fac75c80a Merge pull request #42768 from yujuhong/fix_sandbox_listing
Automatic merge from submit-queue

dockershim: Fix the race condition in ListPodSandbox

In ListPodSandbox(), we
 1. List all sandbox docker containers
 2. List all sandbox checkpoints. If the checkpoint does not have a
    corresponding container in (1), we return partial result based on
    the checkpoint.

The problem is that new PodSandboxes can be created between step (1) and
(2). In those cases, we will see the checkpoints, but not the sandbox
containers. This leads to strange behavior because the partial result
from the checkpoint does not include some critical information. For
example, the creation timestamp'd be zero, and that would cause kubelet's
garbage collector to immediately remove the sandbox.

This change fixes that by getting the list of checkpoints before listing
all the containers (since in RunPodSandbox we create them in the reverse
order).
2017-03-08 21:33:31 -08:00
timchenxiaoyu
0bfbd40d4c fix some typo 2017-03-09 09:34:43 +08:00
Random-Liu
2690461cbb Stop sandbox container when hit network error. 2017-03-08 17:28:42 -08:00
Yu-Ju Hong
38d8da1215 FakeDockerClient: add creation timestamp
This is necessary for kubemark to work correctly.
2017-03-08 17:11:16 -08:00
Yu-Ju Hong
8328a66bdf dockershim: Fix the race condition in ListPodSandbox
In ListPodSandbox(), we
 1. List all sandbox docker containers
 2. List all sandbox checkpoints. If the checkpoint does not have a
    corresponding container in (1), we return partial result based on
    the checkpoint.

The problem is that new PodSandboxes can be created between step (1) and
(2). In those cases, we will see the checkpoints, but not the sandbox
containers. This leads to strange behavior because the partial result
from the checkpoint does not include some critical information. For
example, the creation timestamp'd be zero, and that would cause kubelet's
garbage collector to immediately remove the sandbox.

This change fixes that by getting the list of checkpoints before listing
all the containers (since in RunPodSandbox we create them in the reverse
order).
2017-03-08 17:02:34 -08:00
xiangpengzhao
7fed242d55 Only create the symlink when container log path exists 2017-03-08 01:36:48 -05:00
Kubernetes Submit Queue
1ed3aa6750 Merge pull request #42264 from yujuhong/kubemark_cri
Automatic merge from submit-queue

kubemark: enable CRI for the hollow nodes

This fixes #41488
2017-03-07 13:04:39 -08:00
Yu-Ju Hong
516848c37d Various fixes for the fake docker client
* Properly return ImageNotFoundError
 * Support inject "Images" or "ImageInspects" and keep both in sync.
 * Remove the FakeDockerPuller and let FakeDockerClient subsumes its
   functinality. This reduces the overhead to maintain both objects.
 * Various small fixes and refactoring of the testing utils.
2017-03-07 10:11:49 -08:00
Harry Zhang
bc644f9e04 Use pod sandbox id in checkpoint 2017-03-06 10:46:26 +08:00
Kubernetes Submit Queue
5ee6ba2f59 Merge pull request #42223 from Random-Liu/dockershim-better-implement-cri
Automatic merge from submit-queue (batch tested with PRs 41980, 42192, 42223, 41822, 42048)

CRI: Make dockershim better implements CRI.

When thinking about CRI Validation test, I found that `PodSandboxStatus.Linux.Namespaces.Options.HostPid` and `PodSandboxStatus.Linux.Namespaces.Options.HostIpc` are not populated. Although they are not used by kuberuntime now, we should populate them to conform to CRI.

/cc @yujuhong @feiskyer
2017-03-02 00:59:19 -08:00
Random-Liu
7c261bfed7 Use docker logs directly if the docker logging driver is not
supported.
2017-03-01 10:50:11 -08:00
Yu-Ju Hong
1759b87ffe Generate valid container id in fake docker client. 2017-03-01 10:33:08 -08:00
Kubernetes Submit Queue
91e1933f9f Merge pull request #42149 from Random-Liu/check-infra-container-image-existence
Automatic merge from submit-queue (batch tested with PRs 42216, 42136, 42183, 42149, 36828)

Check infra container image existence before pulling.

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

This PR:
* Fixes https://github.com/kubernetes/kubernetes/issues/42040 by checking image existence before pulling.
* Add unit test for it.
* Fix a potential panic at https://github.com/kubernetes/kubernetes/compare/master...Random-Liu:check-infra-container-image-existence?expand=1#diff-e2eefa11d78ba95197ce406772c18c30R421.

@yujuhong
2017-02-28 21:17:02 -08:00
Random-Liu
0351629517 Make dockershim better implements CRI. 2017-02-27 20:37:49 -08:00
Random-Liu
29a063e62e Check infra container image existence before pulling. 2017-02-27 10:59:36 -08:00
Minhan Xia
947e0e1bf5 pass pod annotation to SetUpPod 2017-02-27 10:09:45 -08:00
Derek Carr
0449b008a8 dockershim puts pause container in pod cgroup 2017-02-24 11:30:06 -05:00
Minhan Xia
4f21b0280d initialize directory while creating checkpoint file store 2017-02-17 16:56:46 -08:00
Dan Williams
aafd5c9ef6 dockershim: use network PluginManager to synchronize pod network operations 2017-02-16 13:51:19 -06:00
Dan Williams
60525801c1 kubelet/network: move mock network plugin to pkg/kubelet/network/testing 2017-02-16 13:48:32 -06:00
Kubernetes Submit Queue
11bf535e03 Merge pull request #41434 from freehan/cri-kubenet-error
Automatic merge from submit-queue (batch tested with PRs 41531, 40417, 41434)

[CRI] beef up network teardown in  StopPodSandbox

1. Added CheckpointNotFound error to allow dockershim to conduct error handling
2. Retry network teardown if failed

ref: https://github.com/kubernetes/kubernetes/issues/41225
2017-02-15 23:01:09 -08:00
Minhan Xia
4ca2642dd3 update bazel 2017-02-15 10:06:49 -08:00
Minhan Xia
3cc837878f retry StopPodSandbox on Network teardown failure 2017-02-15 10:06:41 -08:00