Commit Graph

266 Commits

Author SHA1 Message Date
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
Benjamin Elder
4967f74599 check that N job pods succceeded instead of exactly N pods existing and succeeding 2019-10-03 11:03:44 -07:00
Dan Winship
ec4c1a1c05 Add e2enode.GetRandomReadySchedulableNode, replace some uses of framework.GetReadySchedulableNodesOrDie
For tests that want a single ready, schedulable node
2019-09-24 13:03:40 -04:00
Dan Winship
71b02dd422 Fix up e2enode.GetReadySchedulableNodes, replace many uses of framework.GetReadySchedulableNodesOrDie
Remove the "OrDie" from the name (since it doesn't "or die") and add
an extra check that there is at least 1 node available, since many
callers already did that themselves, and many others should have.
2019-09-24 13:03:39 -04:00
WanLinghao
a6f5d99409 Refactor and clean up e2e framework utils. This patch handles test/e2e/framework/pv_util.go file 2019-09-18 17:57:13 +08:00
Claudiu Belu
b91aa9a5c3 tests: Replaces Redis image with Agnhost
Some tests are using the Redis image, but they do not explicitly need it.
This commit replaces the usage of the Redis image with the Agnhost image
in such test cases.
2019-09-09 00:25:18 -07:00
toyoda
c3fdb5e7d9 Use log functions of core framework on test/e2e/apps 2019-08-26 17:38:11 +09:00
Kenichi Omichi
a5a23d2845 Move ConfirmStatefulPodCount to e2e test
ConfirmStatefulPodCount() was used at e2e statefulset test only,
and that added dependency on another sub framework to statefulset
sub framework. This moves ConfirmStatefulPodCount() to the e2e test
for clean dependency.
2019-08-15 17:36:04 +00:00
Kubernetes Prow Robot
1c4a7dbe7b Merge pull request #78245 from k-toyoda-pi/add_test_cronjob_failedJobsHistoryLimit
add e2e test for cronjob failedJobsHistoryLimit
2019-08-14 21:44:31 -07:00
John Schnake
37212fa934 Ensure tests which rely on SSH behavior are skipped if unavailable
A number of tests rely on SSH behavior but are not marked with
SkipUnlessSSHKeysPresent(). This means that the tests will run and
hang. This can be confusing for users because they may not know why
the tests failed. Instead, we should be reporting on the known issue
and skipping the test (hence why the helper Skip... function exists).
2019-08-07 10:24:39 -05:00
Kubernetes Prow Robot
e116b6f09d Merge pull request #80615 from jeefy/e2e-test-fixes
Support passing `Args` for `newrc` function within `test/e2e`
2019-07-30 08:53:17 -07:00
Jeffrey Sica
ea2f6c80d7 support args for newrc funcs 2019-07-28 11:45:43 -04:00
Kubernetes Prow Robot
9e4b126e18 Merge pull request #80550 from spiffxp/promote-jobs-complete-after-restart
Promote job completion after failure e2e test to Conformance
2019-07-25 22:35:58 -07:00
Kubernetes Prow Robot
8497639221 Merge pull request #80544 from spiffxp/promote-jobs-adopt-release-orphan-pods
Promote job pod orphaning/adotion e2e test to Conformance
2019-07-25 20:48:36 -07:00
Kubernetes Prow Robot
2321d1e9e8 Merge pull request #80150 from ii/promote-statefulset-replica-scaling
Promote StatefulSet Replica scaling
2019-07-25 16:02:07 -07:00
Aaron Crickenberger
e0b9d77609 Promote job completion after failure e2e test to Conformance 2019-07-24 17:17:07 -07:00
Aaron Crickenberger
275b7b2fa0 Promote job pod orphaning/adotion e2e test to Conformance 2019-07-24 16:28:10 -07:00
Kubernetes Prow Robot
0ba6ecca72 Merge pull request #77155 from draveness/feature/refactor-util-service
refactor: move service related functions in service pkg
2019-07-23 15:52:15 -07:00
Kubernetes Prow Robot
de9fb9c61c Merge pull request #75632 from globervinodhn/correct_testname_backofflimit
Correct test name for existing E2E related to backofflimit in jobs
2019-07-19 12:37:11 -07:00
draveness
c38ae01f8e feat: move service_util to separated package 2019-07-19 08:32:39 +08:00
Jiatong Wang
e24a962821 Fix error log issue, remove OrDie suffix in methods naming 2019-07-17 23:18:21 -07:00
Jiatong Wang
0b37152f17 Refactor and Move node related methods to framework/node package
Signed-off-by: Jiatong Wang <wangjiatong@vmware.com>
2019-07-17 22:54:15 -07:00
globervinodhn
c4e324196f correct testname for existing E2E for testing backoff limit for jobs 2019-07-17 21:46:31 +05:30
globervinodhn
7c8b81a30b correct testname for E2E related to active deadline in jobs 2019-07-17 21:42:52 +05:30
Caleb Woodbine
1e8f5feffd Fix imports, Formatting of text 2019-07-15 03:53:56 +00:00
Caleb Woodbine
a062367251 Promote StatefulSet Replica scaling 2019-07-15 02:02:39 +00:00
draveness
d3158b2c71 feat: use framework.ExpectNotEqual in e2e test 2019-07-10 21:36:26 +08:00
toyoda
6ce0d547e5 add failedJobsHistoryLimit to successfulJobsHistoryLimit test 2019-07-10 09:17:38 +09:00
toyoda
b4ccb62c39 add e2e test for cronjob failedJobsHistoryLimit 2019-07-10 09:10:58 +09:00
Kubernetes Prow Robot
2d1ee3db83 Merge pull request #79864 from draveness/feature/use-framework-expect-equal-instead
feat: use framework.ExpectEqual instead of should
2019-07-09 13:47:03 -07:00
Kubernetes Prow Robot
2cfd4a5eb9 Merge pull request #79168 from tnozicka/fix-sigapps-owners
Update Sig-Apps OWNERS to aliases in places that were missed in #76669
2019-07-08 17:30:01 -07:00
draveness
0ec95afb76 feat: use framework.ExpectEqual instead of should 2019-07-07 21:07:48 +08:00
tanshanshan
2c130b236c Use ExpectEqual under apps 2019-07-04 08:43:42 +08:00
Kubernetes Prow Robot
ce2836831f Merge pull request #76315 from globervinodhn/new_e2e_removejobpods
New E2E proposal: Validate that all the pods are removed when the job is deleted
2019-07-01 12:53:21 -07:00
Kubernetes Prow Robot
d1d111496a Merge pull request #79238 from bclau/tests/reduce-to-agnhost-part-3
tests: Replaces images used with agnhost (part 3)
2019-06-28 12:43:19 -07:00
Claudiu Belu
c752ea8134 tests: Replaces images used with agnhost (part 3)
Quite a few images are only used a few times in a few tests. Thus,
the images are being centralized into the agnhost image, reducing
the number of images that have to be pulled and used.

This PR replaces the usage of the following images with agnhost:

- audit-proxy
- crd-conversion-webhook
- entrypoint-tester
- inclusterclient
- iperf
- porter
- serve-hostname
2019-06-26 13:33:55 -07:00
goodluckbot
032dde8754 Refactor statefulset e2e tests 2019-06-25 11:33:58 +08:00
Antonio Ojea
410df752cd Add ipv6 support to [sig-apps] StatefulSet e2e test
Use httpd docker images instead of nginx because they listen
by default both in IPv4 and IPv6
2019-06-23 17:23:28 +02:00
Jordan Liggitt
6ca80760fd Switch test manifests to apps/v1, remove beta workloads calls 2019-06-22 13:58:07 -07:00
Kubernetes Prow Robot
dc8b928136 Merge pull request #79162 from SataQiu/fix-test-20190619
Refactor: replace framework.Failf with e2elog.Failf
2019-06-21 12:17:04 -07:00
Aaron Crickenberger
1d0d98dbc5 add import-alias for k8s.io/api/policy/v1beta1 2019-06-20 11:40:37 -07:00
Aaron Crickenberger
2a8bee4b37 add import-alias for k8s.io/api/extensions/v1beta1 2019-06-20 11:40:21 -07:00