Commit Graph

528 Commits

Author SHA1 Message Date
Clayton Coleman
3454a8d52c refactor: update bazel, codec, and gofmt 2016-12-03 19:10:53 -05:00
Clayton Coleman
5df8cc39c9 refactor: generated 2016-12-03 19:10:46 -05:00
Clayton Coleman
7aacb61fe1 Revert "test: update rollover test to wait for available rs before adopting"
This reverts commit 5b7bf78f3f.
2016-12-03 14:42:50 -05:00
Kubernetes Submit Queue
8bf1ae8313 Merge pull request #37094 from sjug/reshuffle_gobindata_dep
Automatic merge from submit-queue (batch tested with PRs 37094, 37663, 37442, 37808, 37826)

Moved gobindata, refactored ReadOrDie refs

**What this PR does / why we need it**: Having gobindata inside of test/e2e/framework prevents external projects from importing the framework. Moving it out and managing refs fixes this problem.

**Which issue this PR fixes**: fixes #37007
2016-12-03 04:27:46 -08:00
Kubernetes Submit Queue
0ca2b4cbf1 Merge pull request #37258 from timstclair/apparmor-test
Automatic merge from submit-queue (batch tested with PRs 37997, 37939, 37990, 36700, 37258)

Add cluster-level AppArmor E2E test

My goal is to reuse this test for an automated cluster upgrade test.
2016-12-02 19:26:52 -08:00
Kubernetes Submit Queue
d71154b910 Merge pull request #36439 from kargakis/update-rollover-test
Automatic merge from submit-queue

test: update rollover test to wait for available rs before adopting

Scenario that happened in https://github.com/kubernetes/kubernetes/issues/35355#issuecomment-257808460

-- Replica set that is about to be adopted has 2 out of 4 ready replicas
-- Deployment is created with 4 replicas, adopts pre-existing replica set, creates a new one, and starts rolling replicas over to the new replica set.
```
Nov  2 01:38:17.088: INFO: At 2016-11-02 01:38:04 -0700 PDT - event for test-rollover-deployment: {deployment-controller } ScalingReplicaSet: Scaled down replica set test-rollover-controller to 3
Nov  2 01:38:17.088: INFO: At 2016-11-02 01:38:04 -0700 PDT - event for test-rollover-deployment: {deployment-controller } ScalingReplicaSet: Scaled up replica set test-rollover-deployment-2505289747 to 1
Nov  2 01:38:17.088: INFO: At 2016-11-02 01:38:04 -0700 PDT - event for test-rollover-deployment-2505289747: {replicaset-controller } SuccessfulCreate: Created pod: test-rollover-deployment-2505289747-iuiei
Nov  2 01:38:17.088: INFO: At 2016-11-02 01:38:04 -0700 PDT - event for test-rollover-deployment-2505289747-iuiei: {default-scheduler } Scheduled: Successfully assigned test-rollover-deployment-2505289747-iuiei to gke-jenkins-e2e-default-pool-33c0400e-6q5m
Nov  2 01:38:17.088: INFO: At 2016-11-02 01:38:05 -0700 PDT - event for test-rollover-deployment: {deployment-controller } ScalingReplicaSet: Scaled up replica set test-rollover-deployment-2505289747 to 2
```
At this point there is no minimum availability for the Deployment (maxUnavailable is 1 meaning desired minimum available is 3 but we only have 2), and the new replica set uses a non-existent image. New replica set is scaled up to 1 (maxSurge is 1), then old replica set is scaled down by one, because cleanupUnhealthyReplicas observes that it has 2 unhealthy replicas - it can only scale down one though because the [maximum replicas it can cleanup is one](d87dfa2723/pkg/controller/deployment/rolling.go (L125)) (4+1-3-1). New replica set is scaled to 2. Available replicas are still 2 (third replica from the old replica set has yet to come up).
-- Deployment is rolled over with a new update. Test reaches for the WaitForDeploymentStatus check but there are only 2 availableReplicas (maxUnavailable is still violated).

This change makes the test wait for a healthy replica set before proceeding thus it should never hit the scenario described above.

@kubernetes/deployment
2016-12-02 12:48:44 -08:00
Tim St. Clair
9ea7e0af26 Add cluster-level AppArmor E2E test 2016-12-02 10:37:28 -08:00
Sebastian Jug
79202656bc - Moved gobindata, refactored ReadOrDie refs
- Remaining spaghetti untangled
- Missed bazel update and a few hardcoded refs
- New instance of framework.ReadOrDie reference removed post rebase
- Resolve new clientset rebase
- Fixed e2e/generated BUILD dep
- A space
- Missed gobindata ref in golang.sh
2016-12-02 12:57:03 -05:00
Kubernetes Submit Queue
7ec3be4c8e Merge pull request #36964 from ixdy/gobin-build
Automatic merge from submit-queue

Build vendored copy of go-bindata and use that in go generate step

**What this PR does / why we need it**: as the title says, uses the vendored version of `go-bindata` rather than expecting developers to `go get` it (when building outside docker).

**Which issue this PR fixes**: fixes #34067, partially addresses #36655

**Special notes for your reviewer**: we still call `go generate` far too many times:
```console
~/.../src/k8s.io/kubernetes $ which go-bindata
~/.../src/k8s.io/kubernetes $ make
+++ [1116 17:35:28] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:29] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:30] Building go targets for linux/amd64:
    cmd/libs/go2idl/deepcopy-gen
+++ [1116 17:35:35] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:35] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:36] Building go targets for linux/amd64:
    cmd/libs/go2idl/defaulter-gen
+++ [1116 17:35:41] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:41] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:42] Building go targets for linux/amd64:
    cmd/libs/go2idl/conversion-gen
+++ [1116 17:35:47] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:47] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:48] Building go targets for linux/amd64:
    cmd/libs/go2idl/openapi-gen
+++ [1116 17:35:56] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:56] Generating bindata:
    test/e2e/framework/gobindata_util.go
```
Fixing that is a separate effort, though.

cc @sebgoa @ZhangBanger
2016-12-02 07:29:01 -08:00
Marcin Wielgus
cf92f1cdba Skip some disruption e2e test in big clusters 2016-12-01 14:26:38 +01:00
Jeff Grafton
0d9d623f04 Build vendored copy of go-bindata and use that in go generate step
Additionally remove all instances of `go get`ing go-bindata
2016-11-30 22:23:40 -08:00
Zihong Zheng
c5e68b5451 Fixes flake: wait for dns pods terminating after test completed 2016-11-30 21:04:04 -08:00
Kubernetes Submit Queue
737edd02a4 Merge pull request #35258 from feiskyer/package-aliase
Automatic merge from submit-queue

Fix package aliases to follow golang convention

Some package aliases are not not align with golang convention https://blog.golang.org/package-names. This PR fixes them. Also adds a verify script and presubmit checks.

Fixes #35070.

cc/ @timstclair @Random-Liu
2016-11-30 16:39:46 -08:00
Kubernetes Submit Queue
50fb2845d1 Merge pull request #37006 from jayunit100/skip_dont_fail
Automatic merge from submit-queue

Skip rather than fail networking tests on single node

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

Needed for the general e2e tidying we need to do for flakey slow tests, imo pre 1.5, see #31402  and so on.

**Which issue this PR fixes** * 

Dont fail multinode tests if on a single node cluster, skip instead.
2016-11-30 01:26:45 -08:00
Pengfei Ni
f584ed4398 Fix package aliases to follow golang convention 2016-11-30 15:40:50 +08:00
Michael Taufen
f789ecdcaf Fix nil pointer dereference in test framework
Checking the result.Code prior to err in the if statement causes a panic
if result is nil. It turns out the formatting of the error is already in
IssueSSHCommandWithResult, so removing redundant code is enough to fix
the issue. Logging the SSH result was also redundant, so I removed that
as well.
2016-11-28 14:44:51 -08:00
Michail Kargakis
5b7bf78f3f test: update rollover test to wait for available rs before adopting 2016-11-28 14:00:59 +01:00
Ivan Shvedunov
29fd58ad0e Fix running e2e with 'Completed' kube-system pods 2016-11-24 19:10:43 +03:00
Clayton Coleman
35a6bfbcee generated: refactor 2016-11-23 22:30:47 -06:00
Chao Xu
bcc783c594 run hack/update-all.sh 2016-11-23 15:53:09 -08:00
Chao Xu
a55c71db4d test/e2e 2016-11-23 15:53:09 -08:00
Kubernetes Submit Queue
e69b497e07 Merge pull request #37303 from krousey/e2eutil
Automatic merge from submit-queue

Guard the ready replica checking by server version

I fixed replica readiness checking for 1.4->1.5 upgrades by using a field that only exists in versions >=1.4.0 in #36924 

This fixed a lot of issues in 1.4->1.5 upgrade testing, but did not fix 1.3->1.5 upgrade tests. I've disabled replica checking for 1.3 masters as the old logic was broken anyway.

This will not affect the 1.3 CI tests. Just 1.3 -> {1.4, 1.5} upgrade tests.

https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/kubernetes-e2e-gke-container_vm-1.3-container_vm-1.5-upgrade-cluster-new/330?log
is an example of this breakage. This is the tell-tale logs:

```console
Nov 22 09:40:50.469: INFO: 11 / 11 pods in namespace 'kube-system' are running and ready (506 seconds elapsed)
Nov 22 09:40:50.469: INFO: expected 5 pod replicas in namespace 'kube-system', 0 are Running and Ready.
Nov 22 09:40:50.469: INFO: POD  NODE  PHASE  GRACE  CONDITIONS
```
2016-11-22 19:52:22 -08:00
Kubernetes Submit Queue
e4724e8ab0 Merge pull request #37109 from Random-Liu/fix-lifecycle-hook-test
Automatic merge from submit-queue

Use netexec container in http lifecycle hook test.

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

The original test is using `"echo -e \"HTTP/1.1 200 OK\n\" | nc -l -p 1234` as a simple http server.

However, it seems that this is not very reliable, which may response before golang thinks it should.
So we get the error:
```
I1106 06:14:13.325397    2096 logs.go:41] Unsolicited response received on idle HTTP channel starting with "HTTP/1.1 200 OK\n\n"; err=<nil>
```

This PR changes the test to use the `netexec` container which is a simple http server written by golang and used in many of our networking e2e test. It should be more reliable.
Mark 1.5 since this is fixing a 1.5 release blocking issue. Mark P0 to match the original issue.

@dchen1107
2016-11-22 12:41:37 -08:00
Kris
1614b97725 Guard the ready replica checking by server version
This disables ready replica checking for 1.3 masters, but only from 1.4
or 1.5 clients. The old logic was broken anyway due to overlapping
labels with replica sets.
2016-11-22 11:16:15 -08:00
Random-Liu
e0cdeb4c2a Use netexec container in http lifecycle hook test. 2016-11-22 10:09:19 -08:00
Jerzy Szczepkowski
69dc4b0fc5 E2E tests cleanup: moved generation of regexp for master replica to a separate function.
E2E tests cleanup: moved generation of regexp for master replica to a separate function.
2016-11-22 14:52:33 +01:00
Jerzy Szczepkowski
d01998f5fa Fixed e2e tests for HA master.
Set of fixes that allows HA master e2e tests to pass for removal/addition of master replicas.
2016-11-22 12:03:28 +01:00
Kubernetes Submit Queue
2b86ed3f90 Merge pull request #37077 from soltysh/issue34585
Automatic merge from submit-queue

Retry job update after failure to prevent modification conflict

This fixes #34585 flake.

@janetkuo || @kubernetes/sig-apps  ptal

I've been getting too many emails recently wrt to that issue, so I wanted to "clean" my inbox a bit 😉
2016-11-19 12:43:14 -08:00
Maciej Szulik
b253c20d80 Retry job update after failure to prevent modification conflict 2016-11-19 19:40:08 +01:00
Bowei Du
1456e8435f Add ExecWithOptions to framework
This allows for tweaking more options for executing commands
in pods.
2016-11-18 15:50:49 -08:00
Wojciech Tyczynski
d549ece3b2 Extend logging for unschedulable nodes 2016-11-18 14:49:32 +01:00
Random-Liu
87a9d94f24 Update bazel. 2016-11-17 10:18:00 -08:00
Random-Liu
edf7608c51 Remove kubelet related flags from node e2e. Add a single flag kubelet-flags to pass kubelet flags all together. 2016-11-17 10:17:32 -08:00
Random-Liu
090809d8ad Remove dependency on kubelet related flags. 2016-11-17 10:17:32 -08:00
Kubernetes Submit Queue
08204bea62 Merge pull request #36849 from janetkuo/e2e-statefulset-update
Automatic merge from submit-queue

Add e2e test for statefulset updates

Verify that one can (manually) update statefulset template 

cc @erictune @foxish @kow3ns @kubernetes/sig-apps
2016-11-17 10:12:21 -08:00
jayunit100
ec2c963246 Skip rather than fail networking tests on single node 2016-11-17 11:51:03 -05:00
gmarek
eecc840074 Delete taint annotation when removing last taint 2016-11-17 16:02:34 +01:00
Kubernetes Submit Queue
68539c02c1 Merge pull request #36924 from krousey/e2eutil
Automatic merge from submit-queue

Replace controller presence checking logic

fixes #36912
2016-11-17 00:11:11 -08:00
Kris
5a87385342 Replace controller presence checking logic 2016-11-16 16:12:26 -08:00
bprashanth
29a5cb7a9c Add clarity/retries to proxy url test 2016-11-16 14:45:35 -08:00
Janet Kuo
b47508700c (Auto-gen) Update bazel 2016-11-15 16:14:02 -08:00
Janet Kuo
45de9fbe34 Add e2e test for statefulset updates 2016-11-15 14:55:08 -08:00
Kubernetes Submit Queue
a7b63e1a95 Merge pull request #36723 from dims/fix-matchcontainer-output-retry
Automatic merge from submit-queue

Cleanup pod in MatchContainerOutput

MatchContainerOutput always creates a pod and does not cleanup. We need
to fix this to be better at re-trying the scenarios.

When there is an error say in the first attempt of ExpectNoErrorWithRetries
(for example in "Pods should contain environment variables for services" test)
the retries logic calls MatchContainerOutput another time and the
podClient.create fails correctly since the pod was not cleaned up the
first time MatchContainerOutput was called.

Fixes #35089
2016-11-14 20:06:22 -08:00
Davanum Srinivas
d4a912208d Cleanup pod in MatchContainerOutput
MatchContainerOutput always creates a pod and does not cleanup. We need
to fix this to be better at re-trying the scenarios.

When there is an error say in the first attempt of ExpectNoErrorWithRetries
(for example in "Pods should contain environment variables for services" test)
the retries logic calls MatchContainerOutput another time and the
podClient.create fails correctly since the pod was not cleaned up the
first time MatchContainerOutput was called.

Fixes #35089
2016-11-14 20:36:13 -05:00
Vishnu kannan
9066253491 [kubelet] rename --cgroups-per-qos to --experimental-cgroups-per-qos to reflect the true nature of that feature
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-11-14 14:06:39 -08:00
Kubernetes Submit Queue
1bc5b822cd Merge pull request #36479 from Random-Liu/node-e2e-node-name
Automatic merge from submit-queue

Node Conformance & E2E: Get node name from node object.

This PR changes the node e2e test framework to get node name from apiserver instead of test flags.

When a user tried out the node conformance test, he found that node conformance test will not work properly if kubelet is started with `hostname-override`.

The reason is that node conformance test is using [the default node name - `os.Hostname`](https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/e2e_node_suite_test.go#L124), which may be different from `hostname-override`. This will cause test pods not scheduled, and eventually test timeout.

We can expose a flag from node conformance test, and let user set node name themselves if they are using `hostname-override` on kubelet. However, let the framework automatically detect it from apiserver is more user friendly.

/cc @kubernetes/sig-node 
This PR 1) only changes node e2e test framework; 2) fixes a problem in node conformance test which is a 1.5 feature. @saad-ali Can we have this in 1.5?
2016-11-10 18:56:53 -08:00
Random-Liu
1c70c899f7 Get node name from node object. 2016-11-10 14:25:50 -08:00
Zihong Zheng
68f7a739c0 Modifies Rescheduler e2e test for the new dashboard addon 2016-11-09 09:17:05 -08:00
Wojciech Tyczynski
3ed6ea96c0 Increase initialization timeout for podStore 2016-11-09 16:32:58 +01:00
Vishnu kannan
dd8ec911f3 Revert "Revert "Merge pull request #35821 from vishh/gci-mounter-scope""
This reverts commit 402116aed4.
2016-11-08 11:09:10 -08:00