Commit Graph

4863 Commits

Author SHA1 Message Date
Roy Hvaara
dffcf7c8cd Fix golint issues in pkg/controller/volume/persistentvolume/options 2019-11-04 21:45:21 +01:00
Mike Danese
6a004d0c18 support URI SANs in local signer 2019-11-04 10:56:06 -08:00
Mike Danese
fe51712288 refactor into seperate authority package 2019-11-04 10:56:06 -08:00
Mike Danese
4bd2c3998f don't use cfssl in signer 2019-11-04 10:56:06 -08:00
Kubernetes Prow Robot
6a19261e96 Merge pull request #84123 from smarterclayton/terminating_cause
Handle namespace deletion more gracefully in built-in controllers
2019-11-04 07:55:41 -08:00
Kubernetes Prow Robot
5e33f3db5f Merge pull request #84445 from krzysied/node_controller_retry_fix
NodeLifecycleController - MarkPodsNotReady retry fix
2019-11-03 20:15:40 -08:00
Kubernetes Prow Robot
b55440dcf8 Merge pull request #84637 from zhipengzuo/master
fix log and note :cidr mask size must be <= node mask
2019-11-03 18:53:40 -08:00
Kubernetes Prow Robot
d8ab3f26e7 Merge pull request #84323 from draveness/feature/remove-suspended-daemon-pods
feat: remove suspendedDaemonPods from daemon controller
2019-11-02 23:41:40 -07:00
Kubernetes Prow Robot
6e0c915f43 Merge pull request #84060 from yutedz/gc-ref-diff
Traverse OwnerReference maps more efficiently
2019-11-01 18:07:41 -07:00
zhipengzuo
1e0b019062 fix log and annotation :cidr mask size must be <= node mask 2019-11-01 17:26:23 +08:00
Krzysztof Siedlecki
3a82f50b2e adding test for retrying MarkPodsNotReady 2019-10-31 16:56:54 +01:00
Krzysztof Siedlecki
9759a982c5 MarkPodsNotReady retry fix 2019-10-31 16:56:54 +01:00
Ryan Phillips
f87da3fdfa fixes for tests to pass with FIPS compiler
* use P256 ECDSA key since P224 is not supported
* regen test certs to be 2048bits
2019-10-30 10:10:11 -05:00
Rob Scott
40423cf18e Adding owners file for Endpoint controller utils 2019-10-29 11:01:49 -07:00
Andrew Sy Kim
897b8d7476 improve error handling in cloud node controller
Signed-off-by: Andrew Sy Kim <kiman@vmware.com>
2019-10-28 20:23:12 -04:00
Michelle Au
fb6dfeb718 Convert attach-detach controller to use v1.CSINode 2019-10-28 13:41:13 -07:00
wojtekt
ce499ac286 Migrate components to EndpointsLeases leader election lock 2019-10-28 09:09:03 +01:00
Kubernetes Prow Robot
d379ab2697 Merge pull request #84288 from wojtek-t/cleanup_conversions_registrations
Cleanup conversions registrations
2019-10-25 22:53:22 -07:00
draveness
dc437a7890 feat: remove suspendedDaemonPods from daemon controller 2019-10-25 09:16:48 +08:00
wojtekt
7b6bcdf780 Autogenerated code 2019-10-24 20:21:00 +02:00
Kubernetes Prow Robot
2c4cba8aa0 Merge pull request #82365 from jkaniuk/pod-gc
Pod GC controller - use node lister
2019-10-24 03:13:06 -07:00
Rob Scott
724b142f07 Adding initial EndpointSlice metrics. 2019-10-23 17:33:17 -07: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
Kubernetes Prow Robot
4f63f61c36 Merge pull request #84193 from ahg-g/ahg-list
Separate scheduler listers into their own package
2019-10-23 12:51:30 -07:00
Kubernetes Prow Robot
7dc298af42 Merge pull request #82795 from draveness/feature/remove-schedule-daemonset-pods
feat(scheduler): graduate ScheduleDaemonSetPods to GA
2019-10-23 12:49:12 -07:00
Kubernetes Prow Robot
65fa4c979a Merge pull request #82152 from misterikkit/disruption
Fix retry logic in DisruptionController
2019-10-23 12:48:58 -07:00
Jacek Kaniuk
39883f08bf Pod GC controller - use node lister 2019-10-23 16:54:54 +02:00
draveness
35d772e354 feat: graduate ScheduleDaemonSetPods to GA 2019-10-23 21:34:47 +08:00
Kubernetes Prow Robot
75cd65ae0e Merge pull request #82145 from shivi28/fix-controller-nodeipam-ipam-cidrset
nodeipam-controller:fix static check failures
2019-10-22 23:18:26 -07:00
Cristian Dima
da759609dc in pkg/controller/service rename service_controller.go to controller.go 2019-10-23 01:52:19 +03:00
Cristian Dima
a18de39166 fix golint errors in pkg/controller/service 2019-10-23 01:52:19 +03:00
Abdullah Gharaibeh
d393804237 separate listers into their own package 2019-10-22 18:11:02 -04:00
Kubernetes Prow Robot
3c0fa84f92 Merge pull request #84075 from yutedz/replica-set-rolling
Extract PodPhase map outside Less func
2019-10-22 10:28:36 -07:00
Kubernetes Prow Robot
4984c6f000 Merge pull request #84049 from jsafrane/block-feature-gate-checks
Add block feature gate checks to PV controller
2019-10-21 21:12:09 -07:00
Ted Yu
7a4b98b896 Extract PodPhase map outside Less func 2019-10-21 14:32:20 -07:00
Clayton Coleman
bd9260711f deployment: Ignore namespace termination errors when creating replicasets
Instead of reporting an event or displaying an error, simply exit
when the namespace is being terminated. This reduces the amount of
controller churn on namespace shutdown. Unlike other controllers, we
drop the replica set create error very late (in the queue handleErr)
in order to avoid changing the structure of the controller
substantially.
2019-10-20 18:39:01 -04:00
Clayton Coleman
c6e34e58c5 job: Ignore namespace termination errors when creating pods or jobs
Instead of reporting an event or displaying an error, simply exit
when the namespace is being terminated. This reduces the amount of
controller churn on namespace shutdown. While we could technically
exit the entire processing loop early for very large jobs,
we should wait for more evidence that is an issue before changing
that logic substantially.
2019-10-20 18:39:01 -04:00
Clayton Coleman
8f74c8970b daemonset: Ignore namespace termination errors when creating pods
Instead of reporting an event or displaying an error, simply exit
when the namespace is being terminated. This reduces the amount of
controller churn on namespace shutdown. While we could technically
exit the entire processing loop early for very large daemon sets,
we should wait for more evidence that is an issue before changing
that logic substantially.
2019-10-20 18:39:00 -04:00
Clayton Coleman
2e8ace82eb replicaset: Ignore namespace termination errors when creating pods
Instead of reporting an event or displaying an error, simply exit
when the namespace is being terminated. This reduces the amount of
controller churn on namespace shutdown. While we could technically
exit the entire processing loop early for very large replica sets,
we should wait for more evidence that is an issue before changing
that logic substantially.
2019-10-20 18:39:00 -04:00
Clayton Coleman
dc0c21c7d7 serviceaccount: If namespace is terminating, ignore create errors
In some scenarios the service account and token controllers can
race with namespace deletion, causing a burst of errors as they
attempt to recreate secrets being deleted.

Instead, detect these errors and do not retry.
2019-10-20 18:39:00 -04:00
Clayton Coleman
937ef77257 endpoints: If namespace is terminating, drop item immediately
Avoid sending an event to the namespace that is being terminated,
since it will be rejected.
2019-10-20 18:38:59 -04:00
walter
6991069e31 Push context up to cloud node controller.
This adds context to the cloud node controller. It continues the propogation started in 59287.  Fixes 815.
Fixed test code calls.
2019-10-20 11:20:49 -07:00
Ted Yu
0d704f1ce2 Traverse OwnerReference maps more efficiently 2019-10-19 17:56:11 -07:00
Kubernetes Prow Robot
aab740ffc2 Merge pull request #82703 from draveness/feature/graduate-taint-nodes-by-condition-to-ga
feat: update taint nodes by condition to GA
2019-10-18 20:01:37 -07:00
draveness
1163a1d51e feat: update taint nodes by condition to GA 2019-10-19 09:17:41 +08:00
Kubernetes Prow Robot
de9a7d863d Merge pull request #83934 from wccsama/wcc-service-dev
Convert error messages to use event recorder
2019-10-18 12:37:46 -07:00
wccsama
18cf49e3df Convert error messages to use event recorder
remove mix protocol validation
remove check nil
2019-10-18 13:30:00 +08: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
Miciah Masters
865c3c5670 TestGetPodsToDelete: Use field names in test cases
* pkg/controller/replicaset/replica_set_test.go (TestGetPodsToDelete): Use
explicit field names in declarations of test cases.
2019-10-17 11:50:09 -04:00
Jan Safranek
a689697519 Do not bind block PV/PVCs when block feature gate is off 2019-10-17 12:40:22 +02:00