Commit Graph

307 Commits

Author SHA1 Message Date
Mike Danese
25651408ae generated: run refactor 2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08:00
toyoda
0c12ae5240 Modify alias of e2e/framework/job to e2ejob 2020-01-17 10:56:05 +09:00
Morten Torkildsen
4673731c0b Make sure PDB has observed pods before doing eviction in e2e test 2020-01-14 12:21:05 -08:00
Kubernetes Prow Robot
9d1eb45bc6
Merge pull request #86627 from tnqn/flaky-e2e-job
Fix a flaky e2e test of Job completion
2020-01-11 02:43:36 -08:00
Quan Tian
c84a371f3d Fix a flaky e2e test of Job completion
The test was flaky because it required the job succeeds 3 times with
pseudorandom 50% failure chance within 15 minutes, while there is an
exponential back-off delay (10s, 20s, 40s …) capped at 6 minutes before
recreating failed pods. As 7 consecutive failures (1/128 chance) could
take 20+ minutes, exceeding the timeout, the test failed intermittently
because of "timed out waiting for the condition".

This PR forces the Pods of a Job to be scheduled to a single node and
uses a hostPath volume instead of an emptyDir to persist data across new
Pods.
2020-01-10 16:04:56 +08:00
toyoda
91dca8ff8c Use e2eskipper package in e2e/apps 2020-01-10 15:08:19 +09:00
Kubernetes Prow Robot
61cf95f2a9
Merge pull request #86366 from mortent/DeflakePDBTest
Change PDB tests to use pod conditions instead of phase
2020-01-08 19:11:39 -08:00
Kubernetes Prow Robot
9da4b00d40
Merge pull request #86767 from tanjunchen/move-functions
move functions from e2e/framework/deployment/ to e2e/apps/ and e2e/up…
2020-01-07 14:08:31 -08:00
Morten Torkildsen
81a6cf2847 Change PDB tests to use pod conditions instead of phase 2020-01-07 08:47:47 -08:00
Abdullah Gharaibeh
041e5b5560 addressed comments 2020-01-04 01:14:24 -05:00
Abdullah Gharaibeh
7d604c318c Break DS controller on scheduler predicates and predicate errors 2020-01-03 13:05:07 -05:00
tanjunchen
2f0e5b262a move functions from e2e/framework/deployment/ to e2e/apps/ and e2e/upgrades 2020-01-02 13:01:09 +08:00
Kubernetes Prow Robot
481db52294
Merge pull request #86634 from tanjunchen/remove-unused-code-test-e2e-apps-deployment
remove unused code in test/e2e/apps/deployment
2019-12-28 10:29:39 -08:00
Kubernetes Prow Robot
de3be348a6
Merge pull request #86640 from tanjunchen/move-code-test/e2e/framework/job
move funcs from test/e2e/framework/job to test/e2e/apps
2019-12-27 19:47:51 -08:00
tanjunchen
f19ed6ccfe remove unused code in test/e2e/apps/deployment 2019-12-27 12:57:00 +08:00
tanjunchen
794a8668fa move funcs from test/e2e/framework/job to test/e2e/apps 2019-12-27 09:35:30 +08:00
danielqsj
6596a14d39 add missing alias of api errors under test 2019-12-26 17:29:38 +08:00
Kubernetes Prow Robot
4933d0f1d8
Merge pull request #86466 from yuxiaobo96/e2e-cleanup-deployment
e2e: move funs of framework/deployment/fixtures.go to e2e/apps/deploy…
2019-12-25 01:21:30 -08:00
yuxiaobo
4123973726 e2e: move funs of framework/deployment/fixtures.go to e2e/apps/deployment.go
Signed-off-by: yuxiaobo <yuxiaobogo@163.com>
2019-12-24 16:23:42 +08:00
Kubernetes Prow Robot
82c7c86998
Merge pull request #86169 from clarklee92/move-e2e/framework/statefulset
e2e: move funs of framework/statefulset to e2e/apps & e2e/upgrades
2019-12-22 19:57:32 -08:00
Kubernetes Prow Robot
a81bc56dd7
Merge pull request #86321 from liggitt/unconditional-scale-update
Make e2e scale updates unconditional
2019-12-21 05:43:32 -08:00
Kubernetes Prow Robot
fc1824fadd
Merge pull request #86348 from soltysh/issue86179
Split cronjob tests, so they don't interfere
2019-12-17 19:48:21 -08:00
Maciej Szulik
667aaf33a6
Split cronjob tests, so they don't interfere 2019-12-17 15:36:42 +01:00
Kubernetes Prow Robot
9b840a72c9
Merge pull request #86148 from tanjunchen/use-framework-Equal
test/e2e/: use framework.Equal() replace gomega.Expect(...).To(gomega…
2019-12-17 04:19:59 -08:00
Jordan Liggitt
5c537915bf Mark '[sig-apps] CronJob should delete successful/failed finished jobs with limit of one job' flaky 2019-12-16 17:05:30 -05:00
Jordan Liggitt
2164157113 Make e2e scale updates unconditional 2019-12-16 15:46:35 -05:00
clarklee92
623c4f9f17 e2e: move funs of framework/statefulset to e2e/apps & e2e/upgrades
Signed-off-by: clarklee92 <clarklee1992@hotmail.com>
2019-12-14 02:17:00 +08:00
tanjunchen
77a9d4772b move funcs from test/e2e/framework/replicaset to test/e2e/apps 2019-12-13 13:02:02 +08:00
tanjunchen
f786cb07b7 test/e2e/: use framework.Equal() replace gomega.Expect(...).To(gomega.BeTrue()|BeFalse()) 2019-12-13 10:11:47 +08:00
Kubernetes Prow Robot
78c56e6b4c
Merge pull request #84886 from YangLu1031/daemonRestartTest
Verify kubelet & kube-proxy recovery on Windows nodes
2019-12-09 21:35:28 -08:00
SataQiu
10b173868a move funs of framework/deployment to e2e/apps 2019-12-09 11:30:15 +08:00
Kubernetes Prow Robot
688149a0c6
Merge pull request #84613 from MorrisLaw/breakout-kubectl-from-utils
move KubectlCmd out of utils into its own package
2019-12-06 15:51:53 -08:00
MorrisLaw
b85adbf1fd moved WriteFileViaContainer and ReadFileViaContainer to kubectl_utils 2019-12-04 20:31:57 +00:00
Nan Yu
1fb0dd4ec5 Rename PodDisruptionsAllowed to DisruptionsAllowed in type PodDisruptionBudgetStatus 2019-12-03 14:26:35 -08:00
Yang Lu
ba2cc99bde Add test cases to verify kubelet & kube-proxy can recover if being killed accidentally 2019-12-02 15:59:35 -08:00
SataQiu
50bc528a7e e2e: move LogFailedContainers out of e2e test framework util.go 2019-11-15 10:21:26 +08:00
Kubernetes Prow Robot
77e110fcef
Merge pull request #84046 from bclau/tests/agnhost-guestbook-replacement
Tests/agnhost guestbook replacement
2019-11-14 08:29:34 -08:00
Claudiu Belu
e8d062bd4a tests: Replaces guestbook with agnhost equivalent
The redis version has been bumped to version 5.0.5, but the maximum version supported on
Windows is 3.2. This can lead to failing tests, the output and behaviour can be different
(see #80516). In order to prevent such failures, the amount of times the Redis image is
used can be reduced.

This commit uses the previously added agnhost guestbook subcommand as a replacement for the
Guestbook application created by the test "should create and stop a working application".

Adds AgnhostPrivate to test/utils/image/manifest. Some tests are trying to pull
the agnhost image from the private registry, meaning that we would need to
always build and push the agnhost image to both e2e and private registry
whenever we bump its version. Decoupling them would mean that we only need
to push the image to the e2e registry.
2019-11-12 07:23:04 -08:00
Kenichi Omichi
eb9d1cb5cc Move functions from e2e/framework/util.go Part-2
This PR moves functions from test/e2e/framework.util.go for making e2e
core framework small and simple:

- RestartKubeProxy: Moved to e2e network package
- CheckConnectivityToHost: Moved to e2e network package
- RemoveAvoidPodsOffNode: Move to e2e scheduling package
- AddOrUpdateAvoidPodOnNode: Move to e2e scheduling package
- UpdateDaemonSetWithRetries: Move to e2e apps package
- CheckForControllerManagerHealthy: Moved to e2e storage package
- ParseKVLines: Removed because of e9345ae5f0
- AddOrUpdateLabelOnNodeAndReturnOldValue: Removed because of ff7b07c43c
2019-11-06 03:59:28 +00:00
Justin SB
e3a9d6fd1a
e2e: Provide more helpful error output for failing test
Tests should provide more verbose output when their core functionality
fails; in this case we were only logging that the job count did not
match but this is not sufficient for understanding a failure.
2019-11-05 23:09:12 -05:00
Kubernetes Prow Robot
dda78d59be
Merge pull request #84379 from oomichi/e2e-network
Separate e2enetwork from e2e core framework
2019-10-31 02:55:37 -07:00
SataQiu
24f374a395 move test specific functions from rc_util.go 2019-10-29 13:04:59 +08:00
Kenichi Omichi
5d6faaddf6 Separate e2enetwork from e2e core framework
networking_utils.go is only for network tests and it is nice to
separate it from the core framework for easy maintenance.
2019-10-25 17:58:20 +00:00
wojtekt
5cd06d15d8 Fix deployment e2e test at scale 2019-10-25 12:50:59 +02:00
wojtekt
bf34ba0cdf Fix timeouts for networking tests in large clusters 2019-10-23 14:44:45 +02:00
Dan Winship
52b366457f Add Namespace to e2eservice.TestJig, make all methods use jig namespace and name
Many TestJig methods made the caller pass a serviceName argument, even
though the jig already has a name, and every caller was passing the
same name to each function as they had passed to NewTestJig().

Likewise, many methods made the caller pass a namespace argument, but
only a single test used more than one namespace, and it can easily be
rewritten to use two test jigs as well.
2019-10-18 08:37:19 -04:00
Dan Winship
a0ad420018 Make e2eservice.TestJig methods return errors rather than failing
This is the preferred style for framework methods, and it lets us
write tests to confirm that certain things *don't* work.
2019-10-18 08:36:40 -04:00
Miciah Masters
980b6406b2 Prefer to delete doubled-up pods of a ReplicaSet
When scaling down a ReplicaSet, delete doubled up replicas first, where a
"doubled up replica" is defined as one that is on the same node as an
active replica belonging to a related ReplicaSet.  ReplicaSets are
considered "related" if they have a common controller (typically a
Deployment).

The intention of this change is to make a rolling update of a Deployment
scale down the old ReplicaSet as it scales up the new ReplicaSet by
deleting pods from the old ReplicaSet that are colocated with ready pods of
the new ReplicaSet.  This change in the behavior of rolling updates can be
combined with pod affinity rules to preserve the locality of a Deployment's
pods over rollout.

A specific scenario that benefits from this change is when a Deployment's
pods are exposed by a Service that has type "LoadBalancer" and external
traffic policy "Local".  In this scenario, the load balancer uses health
checks to determine whether it should forward traffic for the Service to a
particular node.  If the node has no local endpoints for the Service, the
health check will fail for that node.  Eventually, the load balancer will
stop forwarding traffic to that node.  In the meantime, the service proxy
drops traffic for that Service.  Thus, in order to reduce risk of dropping
traffic during a rolling update, it is desirable preserve node locality of
endpoints.

* pkg/controller/controller_utils.go (ActivePodsWithRanks): New type to
sort pods using a given ranking.
* pkg/controller/controller_utils_test.go (TestSortingActivePodsWithRanks):
New test for ActivePodsWithRanks.
* pkg/controller/replicaset/replica_set.go
(getReplicaSetsWithSameController): New method.  Given a ReplicaSet, return
all ReplicaSets that have the same owner.
(manageReplicas): Call getIndirectlyRelatedPods, and pass its result to
getPodsToDelete.
(getIndirectlyRelatedPods): New method.  Given a ReplicaSet, return all
pods that are owned by any ReplicaSet with the same owner.
(getPodsToDelete): Add an argument for related pods.  Use related pods and
the new getPodsRankedByRelatedPodsOnSameNode function to take into account
whether a pod is doubled up when sorting pods for deletion.
(getPodsRankedByRelatedPodsOnSameNode): New function.  Return an
ActivePodsWithRanks value that wraps the given slice of pods and computes
ranks where each pod's rank is equal to the number of active related pods
that are colocated on the same node.
* pkg/controller/replicaset/replica_set_test.go (newReplicaSet): Set
OwnerReferences on the ReplicaSet.
(newPod): Set a unique UID on the pod.
(byName): New type to sort pods by name.
(TestGetReplicaSetsWithSameController): New test for
getReplicaSetsWithSameController.
(TestRelatedPodsLookup): New test for getIndirectlyRelatedPods.
(TestGetPodsToDelete): Augment the "various pod phases and conditions, diff
= len(pods)" test case to ensure that scale-down still selects doubled-up
pods if there are not enough other pods to scale down.  Add a "various pod
phases and conditions, diff = len(pods), relatedPods empty" test case to
verify that getPodsToDelete works even if related pods could not be
determined.  Add a "ready and colocated with another ready pod vs not
colocated, diff < len(pods)" test case to verify that a doubled-up pod gets
preferred for deletion.  Augment the "various pod phases and conditions,
diff < len(pods)" test case to ensure that not-ready pods are preferred
over ready but doubled-up pods.
* pkg/controller/replicaset/BUILD: Regenerate.
* test/e2e/apps/deployment.go
(testRollingUpdateDeploymentWithLocalTrafficLoadBalancer): New end-to-end
test.  Create a deployment with a rolling update strategy and affinity
rules and a load balancer with "Local" external traffic policy, and verify
that set of nodes with local endponts for the service remains unchanged
during rollouts.
(setAffinity): New helper, used by
testRollingUpdateDeploymentWithLocalTrafficLoadBalancer.
* test/e2e/framework/service/jig.go (GetEndpointNodes): Factor building the
set of node names out...
(GetEndpointNodeNames): ...into this new method.
2019-10-17 11:52:32 -04:00
Kubernetes Prow Robot
cae9bbd059
Merge pull request #81358 from bclau/tests/replace-redis-image
tests: Replaces Redis image with Agnhost
2019-10-16 22:24:51 -07:00