Commit Graph

2751 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
aae45e8dee Merge pull request #84238 from danwinship/affinity-slower
Make e2eservice.CheckAffinity wait longer, to avoid flakes
2019-10-28 11:58:59 -07:00
Kubernetes Prow Robot
7129923e33 Merge pull request #84140 from leakingtapan/timeout
make ClaimProvisionTimeout a var
2019-10-28 11:58:45 -07:00
Marek Siarkowicz
09329b5bbc Remove prometheus references in test/integration
This PR does minimal changes to interface to allow removing all
references to prometheus from `test` directory. In future I would expect
wrapping prometheus samples to provide better abstraction. Changes:

Move generic_metrics.go to testutil/metrics.go
Remove etcd.go as it was not called
Move prometheus label consts to testutil.
2019-10-28 11:40:32 +01:00
YuikoTakada
cd8da1f852 Change DescribeItem to local func 2019-10-28 02:10:57 +00:00
Jianfei Bai
7401f2fe9b move funcs of expect.go to e2e/common 2019-10-27 11:54:32 +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
Fabio Bertinatto
7e72c70772 Optionally run e2e pod as privileged for SELinux 2019-10-25 09:32:05 +02:00
Kubernetes Prow Robot
f06b3b8c10 Merge pull request #84313 from oomichi/move-UDPPoke
Move PokeUDP() to e2e service subpkg
2019-10-24 21:35:46 -07:00
Kubernetes Prow Robot
39a8417510 Merge pull request #84258 from oomichi/move-TranslateIPv4ToIPv6
Move TranslateIPv4ToIPv6() to e2e scheduling test
2019-10-24 16:56:31 -07:00
Kenichi Omichi
a74b63d335 Move PokeUDP() to e2e service subpkg
PokeUDP() is used at e2e service subpackage only, so this moves the
function and the related code to the subpackage for making e2e core
framework small.
2019-10-24 22:49:35 +00:00
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
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
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
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
wojtekt
bf34ba0cdf Fix timeouts for networking tests in large clusters 2019-10-23 14:44:45 +02: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
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
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
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
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
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
9aed79b585 Merge pull request #83812 from oomichi/move-Initialized
Move Initialized() to e2e framework util
2019-10-16 22:25:21 -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
6b3d154787 Merge pull request #83816 from oomichi/remove-test_verify.go
Remove test_verify from e2e framework package
2019-10-15 23:06:09 -07:00
Boqin Qin
24dcd8eaac framework: Fix a goroutine leak bug in resource_usage_gatherer.go 2019-10-15 16:09:31 -04:00
Kubernetes Prow Robot
cb3b715de2 Merge pull request #83804 from jpbetz/etcd-3_3_17_server
Upgrade to etcd server 3.3.17
2019-10-15 12:50:09 -07:00
Kubernetes Prow Robot
46a29a0cc3 Merge pull request #71674 from grayluck/firewall-event-msg
Change XPN firewall change msg. Should be required by security admin
2019-10-14 21:09:51 -07:00
Joe Betz
c92bd5e7b5 Upgrade to etcd server 3.3.17 2019-10-13 17:17:15 -07:00
Kubernetes Prow Robot
2e55cf01d1 Merge pull request #83854 from mrbobbytables/update-test-vsphere-owners
Prune inactive owners from test/e2e/framework/providers/vsphere/OWNERS.
2019-10-13 13:20:36 -07:00
Bob Killen
340eefe76b Prune inactive owners from test/e2e/framework/providers/vsphere/OWNERS. 2019-10-13 08:39:38 -04:00
Kubernetes Prow Robot
743031d793 Merge pull request #83817 from oomichi/rename-framework-funcs
Rename e2e framework functions used locally
2019-10-12 17:34:37 -07:00
Kubernetes Prow Robot
fbcfabe8ae Merge pull request #83808 from oomichi/rename-volume-fixtures
Rename Generate[Read|Write]FileCmd()s on e2e framework
2019-10-11 22:40:38 -07:00
Kubernetes Prow Robot
8553d50426 Merge pull request #83793 from oomichi/psp
Fix package name of psp on e2e framework
2019-10-11 18:05:04 -07:00
Kenichi Omichi
0126d35df1 Rename e2e framework functions used locally
The following functions are used locally in e2e framework subpackages.
 - RunSSHCommandViaBastion
 - MakeNginxPod
 - LogPodTerminationMessages
 - CheckPodsCondition
 - SetNodeAffinityRequirement

This renames them to clarify them as local ones.
2019-10-12 00:06:49 +00:00
Kenichi Omichi
ab208e9063 Remove test_verify from e2e framework package
test_verify.go contained the function TestPodSuccessOrFail() only,
and the function is used in the package only.
This moves the function to create.go and remove test_verify.go.
2019-10-12 00:01:20 +00:00
Kenichi Omichi
06d41a485c Move Initialized() to e2e framework util
The function is used at e2e framework util module only.
So this moves the function to the module for trying to remove
dependencies to subpackages from core e2e framework.
2019-10-11 22:29:03 +00:00