Commit Graph

64 Commits

Author SHA1 Message Date
Random-Liu
dd6584a606 Statically link apiserver to node e2e. 2016-08-20 17:41:34 -07:00
Kubernetes Submit Queue
98c4029275 Merge pull request #30200 from Random-Liu/move-namespace-controller-to-services
Automatic merge from submit-queue

Node Conformance Test: Move namespace controller to services

For #30122, #30174.
Based on #30116, #30198.

**Please only review the 3rd PR.**

This PR is part of our roadmap to package node conformance test.
The 1st commit is from #30116, which started e2e services in a separate process.
The 2nd commit is from #30198, it statically linked etcd into the node e2e framework.

The 3rd commit is new, it moved namespace controller into e2e services.

@dchen1107 @vishh 
/cc @kubernetes/sig-node @kubernetes/sig-testing
2016-08-20 14:19:40 -07:00
derekwaynecarr
fde285cd8f Disable cgroups-per-qos flag until implementation is stabilized 2016-08-19 11:08:59 -04:00
Kubernetes Submit Queue
29e16d0174 Merge pull request #30913 from Random-Liu/fix-readiness-check
Automatic merge from submit-queue

Node E2E: Make readiness check handling process exits with 0 exit code.

As is mentioned by @mtaufen:
 "there is a problem with the way service `start` is currently implemented in test/e2e_node/e2e_service.go. If the Kubelet exits with status 0 before the health check completes, cmdErrorChan will be closed and, as a result, nil will be read from that channel, and you will return a nil error from `start`."

This PR changes the logic to:
1) If the err channel returns an error, return the error
2) If the err channel returns a nil, ignore it and continue checking readiness.
3) If the err channel is closed before readiness check succeeds, replace it with `blockCh` and continue checking readiness.

@mtaufen 
/cc @kubernetes/sig-node
2016-08-18 21:54:50 -07:00
Random-Liu
1904c86074 Make readiness check handling process exits with 0 exit code. 2016-08-18 13:51:40 -07:00
Random-Liu
90eb1f6de7 Move namespace controller into e2e services. 2016-08-18 02:18:07 -07:00
Random-Liu
0f32e2ca30 Statically link etcd into node e2e. 2016-08-17 02:06:35 -07:00
Random-Liu
3910a66bb5 Add run-services-mode option, and start e2e services in a separate
process.
2016-08-15 14:45:01 -07:00
Kubernetes Submit Queue
cb16c07736 Merge pull request #30415 from dchen1107/test1
Automatic merge from submit-queue

Fixed misconfigured kubelet on containervm image for node-e2e.

Fixed #30412 to unblock @coufon's performance benchmark work.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30415)
<!-- Reviewable:end -->
2016-08-12 04:04:28 -07:00
Vishnu kannan
089439c30a collect cloud-init logs
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-08-11 12:53:08 -07:00
Dawn Chen
cb22c41907 Fixed misconfigured kubelet on containervm image for node-e2e. 2016-08-11 11:19:30 -07:00
Kubernetes Submit Queue
6f7cc12c3c Merge pull request #29685 from bboreham/kill-setpgid-3
Automatic merge from submit-queue

Fix killing child sudo process in e2e_node tests

Fixes #29211; re-doing #29380 which was reverted due to cross-platform build failure #29669.

The context is we are trying to kill a process started as `sudo kube-apiserver`, but `sudo` ignores signals from the same process group. Applying `Setpgid` means the `sudo kill` process won't be in the same process group, so will not fall foul of this nifty feature.

~~I also took the liberty of removing some code setting `Pdeathsig` because it claims to be doing something  in the same area, but actually it doesn't do that at all.  The setting is applied to the forked process, i.e. `sudo`, and it means the `sudo` will get killed if we (`e2e_node.test`) die.  This (a) isn't what the comment says and (b) doesn't help because sending SIGKILL to the sudo process leaves sudo's child alive.~~

We do need to use the same 'hack' to access `Setpgid` as the `e2e_node.test` program gets built on Windows (although it doesn't run there).

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/29685)
<!-- Reviewable:end -->
2016-08-11 05:38:17 -07:00
Kubernetes Submit Queue
4d70d9f3de Merge pull request #30114 from Random-Liu/use-framework-report-dir
Automatic merge from submit-queue

Use report-dir in test framework instead.

We already have `report-dir` option in framework test context.
The node e2e framework should use it as well.

/cc @ronnielai
2016-08-05 23:31:28 -07:00
Kubernetes Submit Queue
ea00445069 Merge pull request #29863 from ronnielai/system-test1
Automatic merge from submit-queue

Added an node e2e test for pod evictions due to disk pressure.

#29800
2016-08-05 21:34:11 -07:00
Kubernetes Submit Queue
59c916c1d7 Merge pull request #29267 from bboreham/e2e-etcd-port
Automatic merge from submit-queue

For e2e_node tests tell etcd to listen on ports 2379 and 4001

This is the default for etcd2, but etcd3 only listens on 2379.
Specifying the ports keeps things consistent no matter which version the user has installed.

Fixes #29117
2016-08-05 18:44:33 -07:00
Ron Lai
adf6b6ddf0 Added an node e2e test for pod evictions due to disk pressure. 2016-08-05 17:53:06 -07:00
Random-Liu
00b405d7e4 Use report-dir in test framework instead. 2016-08-04 23:40:17 -07:00
Bryan Boreham
bd8f4ff8cf Send SIGTERM on Pdeathsig to allow child to clean up
Also fix the comment to better describe the effect of this code.
2016-08-04 15:14:47 +01:00
Bryan Boreham
1307799a66 Run 'etcd2' if it exists, in preference to 'etcd'
This is to accommodate CoreOS, where 'etcd' is a very old version
2016-08-04 14:37:11 +01:00
Dawn Chen
5a64977d82 Resolve docker-daemon cgroup issue for both systemd and non-systemd node for node e2e tests. 2016-08-02 09:22:16 -07:00
k8s-merge-robot
fe3dda1aeb Merge pull request #29092 from Random-Liu/make-node-e2e-parallel
Automatic merge from submit-queue

Node E2E: Make node e2e parallel

For https://github.com/kubernetes/kubernetes/issues/29081.
Fix https://github.com/kubernetes/kubernetes/issues/26215.
Based on https://github.com/kubernetes/kubernetes/pull/28807, https://github.com/kubernetes/kubernetes/pull/29020, will rebase after they are merged.

**Only the last commit is new.**

We are going to move more tests into the node e2e test. However, currently node e2e test only run sequentially, the test duration will increase quickly when we add more test.

This PR makes the node e2e test run in parallel so as to shorten test duration, so that we can add more test to improve the test coverage.

* If you run the test locally with `make test-e2e-node`, it will use `-p` ginkgo flag, which uses `(cores-1)` parallel test nodes by default.
* If you run the test remotely or in the Jenkin, the parallelism will be controlled by the environment variable `PARALLELISM`. The default value is `8`, which is reasonable for our test node (n1-standard-1).

Before this PR, it took  **833.592s** to run all test on my desktop.
With this PR, it only takes **234.058s** to run.

The pull request node e2e run with this PR takes **232.327s**.
The pull request node e2e run for other PRs takes **673.810s**.

/cc @kubernetes/sig-node
2016-07-29 18:38:29 -07:00
Random-Liu
9d48c76361 Make the node e2e test run in parallel. 2016-07-29 16:40:59 -07:00
Bryan Boreham
ba17bac843 Change process group when sending kill signal
Otherwise when the target process is running sudo it ignores the signal.
2016-07-27 18:11:58 +01:00
Erick Fejta
12d923ed15 Revert "Fix killing child sudo process in e2e_node tests" 2016-07-27 21:53:05 +05:30
k8s-merge-robot
03fe6b962c Merge pull request #29380 from bboreham/kill-setpgid
Automatic merge from submit-queue

Fix killing child sudo process in e2e_node tests

Fixes #29211.

The context is we are trying to kill a process started as `sudo kube-apiserver`, but `sudo` ignores signals from the same process group. Applying `Setpgid` means the `sudo kill` process won't be in the same process group, so will not fall foul of this nifty feature.

I also took the liberty of removing some code setting `Pdeathsig` because it claims to be doing something  in the same area, but actually it doesn't do that at all.  The setting is applied to the forked process, i.e. `sudo`, and it means the `sudo` will get killed if we (`e2e_node.test`) die.  This (a) isn't what the comment says and (b) doesn't help because sending SIGKILL to the sudo process leaves sudo's child alive.

I didn't use the "hack for linux-only" approach because I think `Setpgid` is available on all platforms that `e2e_node` builds on.
2016-07-27 03:18:15 -07:00
Bryan Boreham
dbc59aad7c For e2e_node tests tell etcd to listen on ports 2379 and 4001
This is the default for etcd2, but etcd3 only listens on 2379.
Specifying the ports keeps things consistent no matter which
version the user has installed.
2016-07-27 11:16:40 +01:00
Vishnu kannan
d31608fcc8 Make it possible to run node e2e with GCI via make
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-07-25 12:21:37 -07:00
Bryan Boreham
e5e7b60e9a Remove Pdeathsig code because it doesn't do what was intended
Pdeathsig is applied to the process we are starting, so that will get
killed if the e2e_node process dies, which isn't what we need.
2016-07-21 15:19:39 +01:00
Bryan Boreham
a8d7e93d66 Change process group when sending kill signal
Otherwise when the target process is running sudo it ignores the signal.
2016-07-21 15:11:03 +01:00
Bryan Boreham
0991c04be1 Don't repeat the program name in healthCheckCommand.String()
The name is in both 'Path' and 'Args[0]', so start printing args at 1.
Also refactor to avoid an extra space character in the output.
2016-07-18 14:55:39 +01:00
Buddha Prakash
5000e74664 Inject top level QoS cgroup creation in the Kubelet 2016-07-15 10:02:22 -07:00
Random-Liu
62337e7c44 Disable kubenet for local node e2e test. 2016-07-06 14:04:35 -07:00
k8s-merge-robot
480233c55b Merge pull request #28228 from mtaufen/e2e-killcmd-cleanup
Automatic merge from submit-queue

Use slices of items to clean up after tests

Fixes #27582.

We used to maintain a pointer variable for each process to kill after the
tests finish. @lavalamp suggested using a slice instead, which is a much
cleaner solution. This implements @lavalamp's suggestion and also extends
the idea to tracking directories that need to be removed after the tests finish.

This also means that we should no longer check for nil `killCmd`s inside
`func (k *killCmd) Kill() error {...}` (see #27582 and #27589). If a nil
`killCmd` makes it in there, something is bad elsewhere and we want to see
the nil pointer exception immediately.

Mentioning @timstclair and @euank wrt the original issue/PR.
2016-06-30 20:04:45 -07:00
Minhan Xia
6db354b1ef switch back to promiscuous-bridge mode 2016-06-30 10:50:12 -07:00
k8s-merge-robot
f2ddd60eb9 Merge pull request #26755 from david-mcmahon/fix-headers
Automatic merge from submit-queue

Remove "All rights reserved" from all the headers.

cc @thockin @zmerlynn @brendanburns
2016-06-29 18:46:07 -07:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Yu-Ju Hong
5e0cc2179d node e2e: run kubelet with kubenet 2016-06-29 15:53:15 -07:00
Michael Taufen
4ec2f63e41 Use slices of items to clean up after tests
Fixes #27582

We used to maintain a pointer variable for each process to kill after the
tests finish. @lavalamp suggested using a slice instead, which is a much
cleaner solution. This implements @lavalamp's suggestion and also extends
the idea to tracking directories that need to be removed after the tests finish.

This also means that we should no longer check for nil `killCmd`s inside
`func (k *killCmd) Kill() error {...}` (see #27582 and #27589). If a nil
`killCmd` makes it in there, something is bad elsewhere and we want to see
the nil pointer exception immediately.
2016-06-29 15:47:38 -07:00
k8s-merge-robot
15fdd1db63 Merge pull request #27589 from mtaufen/e2e_teardown_fix
Automatic merge from submit-queue

Allocate default killCmd structs in newE2eService function

Fixes #27582 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-28 17:43:03 -07:00
Michael Taufen
71b79aff73 Check killCmd is nil in Kill function 2016-06-27 14:11:14 -07:00
Yu-Ju Hong
a6b91a41fa e2e_node: lower the log verbosity level
The current level is so high that the logs are almost unreadable.
2016-06-23 11:39:18 -07:00
Euan Kemp
34996f1b84 e2e_node: Correctly kill and log systemd kubelet 2016-06-09 20:58:56 -07:00
Euan Kemp
6303edb790 e2e_node: launch kubelet via systemd-run
This more closely mimics what the kubelet will usually have for
cgroups, and also fixes an issue with cgroup detection of it.

Fixes #26431
2016-06-09 19:35:37 -07:00
Dawn Chen
0d3be6a316 Merge pull request #26735 from timstclair/local-e2e
Fixes for running node e2es
2016-06-07 14:51:18 -07:00
Tim St. Clair
66d74f969d More reliable teardown of node e2e services 2016-06-06 15:30:23 -07:00
Vishnu kannan
34a828d07e Link kernel log files to have them be copied over as part of node e2e.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-06-03 11:22:25 -07:00
pwittrock
eae1961599 Node e2e export test artifacts to jenkins.
- Add junit test reported
- Write etcd.log, kubelet.log and kube-apiserver.log to files instead of stdout
- Scp artifacts to the jenkins WORKSPACE

Fixes #25966
2016-05-24 23:00:58 +00:00
Andy Goldstein
e630070078 Fix node e2e startServer failure output
Correct the display of the output when e.g. starting the kubelet fails in the node e2e tests. This
change makes it display a string instead of an array of decimal values.
2016-05-02 14:30:59 -04:00
Random-Liu
c74f199223 Add node e2e test for mirror pod. 2016-04-21 22:11:06 -07:00
Yu-Ju Hong
a29432163e node_e2e: disable serialized image pulls and increase test timeout 2016-04-21 15:34:28 -07:00