Commit Graph

10329 Commits

Author SHA1 Message Date
Dan Winship
dde075ffe5 Fix service sanity check after jig.ChangeServiceType 2019-10-24 08:58:02 -04:00
Kubernetes Prow Robot
176929a72a Merge pull request #84255 from oomichi/move-CreatePodOrFail
Move CreatePodOrFail() to e2e network test
2019-10-24 02:01:08 -07:00
Kubernetes Prow Robot
3325cbb280 Merge pull request #84261 from oomichi/move-to-e2e-network-framework
Move funcs of networking_utils to e2e network
2019-10-24 00:47:08 -07:00
Kubernetes Prow Robot
31b7e3d905 Merge pull request #84235 from liggitt/extensions-v1-coverage
Use v1 CRD deletion endpoints in e2e tests
2019-10-23 19:07:19 -07:00
Kubernetes Prow Robot
a60d64ad54 Merge pull request #84098 from msau42/remove-hostnetwork
remove hostnetwork from hostpath csi manifest
2019-10-23 17:49:06 -07:00
Kenichi Omichi
6be4fd45a5 Move funcs of networking_utils to e2e network
Many functions of networking_utils are used at e2e network only.
To make e2e core framework small as possible for reducing invalid
dependencies to e2elog subpackage, this moves these functions to
e2e network tests.
2019-10-23 22:58:32 +00:00
Kubernetes Prow Robot
ed5a3847a2 Merge pull request #83856 from mrbobbytables/update-autoscaling-owners
Prune inactive owners from autoscaling related OWNERS files.
2019-10-23 15:53:34 -07:00
Kenichi Omichi
f2dab471b5 Move TranslateIPv4ToIPv6() to e2e scheduling test
TranslateIPv4ToIPv6() is used at e2e scheduling test only, so this
moves the function to the place.
2019-10-23 22:41:09 +00:00
Kenichi Omichi
a0c0130670 Move CreatePodOrFail()
CreatePodOrFail() is used at e2e network tests only, so this moves
the function to the e2e network tests.
2019-10-23 21:14:10 +00:00
Kubernetes Prow Robot
b75e2d84c1 Merge pull request #84229 from wojtek-t/fix_networking_tests
Fix and clean up timeouts for networking tests in large clusters
2019-10-23 12:52:02 -07:00
Kubernetes Prow Robot
36e7620ef3 Merge pull request #84212 from liggitt/revert-move-hostpid-tests
Revert "move hostPID tests to common"
2019-10-23 12:51:40 -07:00
Kubernetes Prow Robot
d250877696 Merge pull request #84188 from danwinship/service-sanitycheck-fix-2
Comment out an e2eservice sanity check for now
2019-10-23 12:51:19 -07:00
Dan Winship
cc8d3335b7 Make e2eservice.CheckAffinity wait longer, to avoid flakes 2019-10-23 10:28:54 -04:00
Jordan Liggitt
c6fe4f0ac4 Use v1 CRD deletion endpoints in e2e tests 2019-10-23 09:01:38 -04:00
wojtekt
bf34ba0cdf Fix timeouts for networking tests in large clusters 2019-10-23 14:44:45 +02:00
Sean Sullivan
b43992f752 Updates file to reference cli-runtime printer package 2019-10-22 23:45:08 -07:00
Cheng Pan
b281d45749 Increase ClaimProvisionTimeout to 7 minutes 2019-10-23 05:40:06 +00:00
Kubernetes Prow Robot
ca0e694d63 Merge pull request #84174 from Random-Liu/upgrade-all-node-pools
Upgrade all node pools for gke upgrade test.
2019-10-22 20:10:36 -07:00
Jordan Liggitt
8d0e4a4492 Revert "move hostPID tests to common"
This reverts commit 20ac24929b.
2019-10-22 21:28:44 -04:00
Cristian Dima
da759609dc in pkg/controller/service rename service_controller.go to controller.go 2019-10-23 01:52:19 +03:00
Dan Winship
6a5caea2f6 Comment out an e2eservice sanity check for now 2019-10-22 10:27:51 -04:00
Yecheng Fu
7c7ba19781 Revert "Disable local block volume reconstruction test"
This reverts commit 7c240a18b6.
2019-10-22 14:28:20 +08:00
Lantao Liu
983fd27454 Upgrade all node pools for gke upgrade test.
Signed-off-by: Lantao Liu <lantaol@google.com>
2019-10-21 22:28:53 -07:00
Kubernetes Prow Robot
10490a645c Merge pull request #84159 from danwinship/service-sanitycheck-fix
Fix sanity-checking of LoadBalancer services in e2eservice.TestJig
2019-10-21 21:12:32 -07:00
Kubernetes Prow Robot
9039e6b754 Merge pull request #83398 from bclau/tests/fix-windows-image-pulling
tests: Simplifies image pulling tests
2019-10-21 19:55:21 -07:00
Kubernetes Prow Robot
c981bce007 Merge pull request #83368 from Jefftree/move-hostpid-tests
Move hostPID tests to common
2019-10-21 17:09:22 -07:00
Dan Winship
0aae11db48 Fix sanity-checking of LoadBalancer services in e2eservice.TestJig 2019-10-21 10:33:38 -04:00
Kubernetes Prow Robot
ba4adeff20 Merge pull request #84090 from oomichi/move-LaunchHostExecPod
Move LaunchHostExecPod() to e2e network
2019-10-20 17:47:37 -07:00
Kubernetes Prow Robot
0f7873ad5c Merge pull request #82308 from zhlhahaha/kubectl_flag
Add kubectlPath flag to e2e_node.test
2019-10-18 23:47:37 -07:00
Kubernetes Prow Robot
52063ef8c9 Merge pull request #84094 from yutedz/stor-max-size
Clarify the role for SupportedSizeRange
2019-10-18 21:54:30 -07:00
Kubernetes Prow Robot
91627f4962 Merge pull request #83805 from wk8/wk8/gmsa_e2e_tweak
Amending the GMSA e2e test to allow it to run against Windows-only clusters
2019-10-18 21:53:50 -07:00
Michelle Au
1634ada147 remove hostnetwork from hostpath csi manifest 2019-10-18 18:14:17 -07:00
Ted Yu
0ae181cf0c Clarify the role for SupportedSizeRange 2019-10-18 14:58:56 -07:00
Kubernetes Prow Robot
103afd2ba7 Merge pull request #83549 from danwinship/service-jig-sanitycheck
more e2eservice.TestJig cleanups
2019-10-18 12:37:31 -07:00
Kubernetes Prow Robot
b5c74a3f26 Merge pull request #82817 from zouyee/scpq
fix Security Context should run with an image specified user ID
2019-10-18 12:37:22 -07:00
Kenichi Omichi
5285cf3eb2 Move LaunchHostExecPod() to e2e network
LaunchHostExecPod() is called only from e2e network.
So it is not necessary to keep the function as a part of e2e framework.
This moves it to the place which calls the function.
2019-10-18 17:29:01 +00: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
Dan Winship
4dcc6229b1 Call jig.SanityCheckService automatically after changes 2019-10-18 08:35:55 -04:00
Dan Winship
85ebedd93e Remove an unneccessary e2eservice.TestJig method 2019-10-17 21:47:34 -04:00
Kubernetes Prow Robot
7ed388caa6 Merge pull request #83744 from neolit123/1.17-move-test-owners-sig-cl-gcp
test/e2e: move some tests from cluster-lifecycle to cloud-provider-gcp
2019-10-17 16:33:58 -07: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
cedacc9cae Merge pull request #84025 from oomichi/move-CreateNginxPod
Move CreateNginxPod() to specific e2e
2019-10-17 01:47:48 -07:00
Kubernetes Prow Robot
c3d8ad06a5 Merge pull request #84002 from cofyc/fix74552-cleanup
e2e: remove duplicated test specs
2019-10-16 22:25:41 -07:00
Kubernetes Prow Robot
9aed79b585 Merge pull request #83812 from oomichi/move-Initialized
Move Initialized() to e2e framework util
2019-10-16 22:25:21 -07: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
Howard Zhang
1c9da19bf5 Add kubectlPath flag to e2e_node.test
e2e_node.test does not set default kubectlPath, which lead to test
errors as following:
[Fail] [sig-storage] EmptyDir volumes [It] pod should support
shared volumes between containers [Conformance]

When the test trying to read file in shared volume, it uses
"kubeclt exec namespace -c container_name -- cat file_name".
However, as variable framework.TestContext.KubectlPath not set,
kubectl binary can not be found in the test and the tast fails.

This patch move kubectlPath flag from RegisterClusterFlags to
RegisterCommonFlags, thus default value for
framework.TestContext.KubectlPath will be set,and
user can also use --kubectl-path flag to set kubectl path.

Signed-off-by: Howard Zhang <howard.zhang@arm.com>
2019-10-17 11:29:44 +08:00
Kenichi Omichi
9e17a0e9f3 Move CreateNginxPod() to specific e2e
CreateNginxPod() is called from flexvolume_online_resize only and
that seems storage specific function because that requires a PVC.
So this moves the function to the place which calls it for the code
cleanup.
2019-10-17 00:10:38 +00:00
Kubernetes Prow Robot
d1188a6802 Merge pull request #83946 from jsafrane/disable-local-reconstruction
Disable local block volume reconstruction test
2019-10-16 09:36:08 -07:00
Yecheng Fu
1ff13e0782 e2e: remove duplicatd test suites 2019-10-16 19:42:11 +08:00