Commit Graph

15456 Commits

Author SHA1 Message Date
immutablet
4d24b41410 Use single kms-plugin mock in unit and integration tests. 2019-10-17 13:46:03 -07:00
Kubernetes Prow Robot
397f8b4248 Merge pull request #84020 from BenTheElder/bentheelder-checks-types
add myself to typecheck / go-srcimporter owners, move rmmh to emeritus
2019-10-17 09:52:38 -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
fef819254a Merge pull request #83998 from draveness/feature/node-affinity-score-plugin
feat(scheduler): implement node affinity as score plugin
2019-10-17 08:24:38 -07:00
Abdullah Gharaibeh
517116921b GeneralPredicate as plugin config 2019-10-17 11:13:57 -04:00
notpad
f06925b0ee [migration phase 1] CSIMaxVolumeLimitChecker as filter plugin 2019-10-17 22:04:02 +08:00
Kubernetes Prow Robot
534051acec Merge pull request #84036 from Huang-Wei/tbe-int-test-issue
Ensure TaintBasedEviction int test not rely on TaintNodeByConditions
2019-10-17 05:12:50 -07:00
draveness
3d74da4d53 feat(scheduler): implement node affinity as score plugin 2019-10-17 17:02:10 +08: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
bdc3f96838 Merge pull request #83989 from wojtek-t/remove_coordination_v1beta1
Swtich nodelifecyclecontroller to coordination/v1
2019-10-17 01:47:29 -07:00
Kubernetes Prow Robot
3719fcdffa Merge pull request #82072 from draveness/feature/use-context-instead-of-channel
feat(scheduler): use context in scheduler package
2019-10-17 01:46:39 -07:00
Wei Huang
fbcc3c183a Ensure TaintBasedEviction int test not rely on TaintNodeByConditions 2019-10-17 01:25:12 -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
draveness
47a6c5b693 feat(scheduler): use context in the scheduler package
+ Use context instead of stopCh
+ Add context to the scheduling framework interface
2019-10-17 09:03:55 +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
Benjamin Elder
0f807d5048 add myself to typecheck / go-srcimporter owners, move rmmh to emeritus 2019-10-16 15:17:22 -07:00
Kubernetes Prow Robot
cb19b56831 Merge pull request #83419 from deads2k/insecure-backend-proxy
Insecure backend proxy
2019-10-16 13:58:38 -07:00
Kubernetes Prow Robot
0e2383df15 Merge pull request #83893 from draveness/feature/node-prefer-avoid-pods
feat(scheduler): implement NodePreferAvoidPods as score plugin
2019-10-16 11:37:30 -07: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
Kubernetes Prow Robot
461c9b3c8c Merge pull request #83935 from draveness/feature/fix-scheduler-perf
fix: scheduler perf test with pod informer
2019-10-16 09:35:33 -07:00
David Eads
867ee1d5ff add insecurebackendproxy 2019-10-16 11:43:17 -04:00
Yecheng Fu
1ff13e0782 e2e: remove duplicatd test suites 2019-10-16 19:42:11 +08:00
Claudiu Belu
8880a4f74f tests: Extends agnhost netexec udp buffers
Currently, the UDP buffer sizes are set to 1024 bytes. Larger requests will not be
read entirely by the UDP handlers, which can lead to tests relying on this to fail.
2019-10-16 04:21:45 -07:00
wojtekt
cf9203501e Swtich nodelifecyclecontroller to coordination/v1 2019-10-16 10:59:02 +02:00
Kubernetes Prow Robot
63cf2e260b Merge pull request #83819 from mrbobbytables/emeritus-jbeda
Move jbeda to emeritus status.
2019-10-15 23:06:20 -07: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
Kubernetes Prow Robot
d160c68aa4 Merge pull request #83978 from mikedanese/fuzz
add fuzzing targets for sig-yaml and yaml.v2
2019-10-15 21:10:07 -07:00
Mike Danese
647d6582bf add fuzzing targets for sig-yaml and yaml.v2
This is in prepration to add continous fuzzing of various targets via
https://github.com/google/oss-fuzz.
2019-10-16 00:40:50 +00: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
Jan Safranek
7c240a18b6 Disable local block volume reconstruction test
Quite hacky, hoping to fix the volume plugin soon.
2019-10-15 13:59:36 +02:00
draveness
e5a23f8dda fix: scheduler perf test with pod informer 2019-10-15 13:54:45 +08: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
Kubernetes Prow Robot
63bd1d7a5c Merge pull request #80725 from aramase/dualstack-phase2-e2e
E2E tests for dualstack phase2
2019-10-14 17:45:51 -07:00
draveness
2d7044a556 feat(scheduler): implement NodePreferAvoidPods as score plugin 2019-10-14 21:21:24 +08:00
Krzysztof Siedlecki
92f56ab692 enabling fluentd on kubemark 2019-10-14 14:48:48 +02:00
Joe Betz
c92bd5e7b5 Upgrade to etcd server 3.3.17 2019-10-13 17:17:15 -07:00
notpad
4ff7251026 [migration phase 1] VolumeZoneChecker as filter plugin 2019-10-14 07:45:40 +08: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
Kubernetes Prow Robot
dd5cb6426d Merge pull request #83849 from draveness/feature/node-locality-as-score-plugin
feat: implement imagelocality as a score plugin
2019-10-13 06:36:35 -07:00
Bob Killen
e37d702208 Prune inactive owners from autoscaling related OWNERS files. 2019-10-13 08:52:14 -04:00
Bob Killen
340eefe76b Prune inactive owners from test/e2e/framework/providers/vsphere/OWNERS. 2019-10-13 08:39:38 -04:00
yuxiaobo
3346d3d18f Remove direct references to prometheus from transformation_testcase.go
Signed-off-by: yuxiaobo <yuxiaobogo@163.com>
2019-10-13 20:36:39 +08:00
draveness
6f6618fc5d feat: implement imagelocality as a score plugin 2019-10-13 19:58:21 +08:00
Kubernetes Prow Robot
ceceacaa77 Merge pull request #83573 from ahmad-diaa/remove-factory-package
Move Factory Package to Scheduler
2019-10-13 00:32:36 -07: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
Ahmad Diaa
4448a1cea9 move factory package to scheduler 2019-10-12 23:03:07 +02:00