Commit Graph

249 Commits

Author SHA1 Message Date
Jordan Liggitt
30eb6683e6 Avoid marking virtual nodes as observed when they haven't been
Virtual nodes can be added to the GC graph in order to represent objects
which have not been observed via an informer, but are referenced via ownerReferences.

These virtual nodes are requeued into attemptToDelete until they are observed via an informer,
or successfully verified absent via a live lookup. Previously, both of those code paths
called markObserved() to stop requeuing into attemptToDelete.

Because it is useful to know whether a particular node has been observed via
a real informer event, this commit does the following:

* adds a `virtual bool` attribute to graph events so we know which ones came from a real informer
* limits the markObserved() call to the code path where a real informer event is observed
* uses an alternative mechanism to stop requeueing into attemptToDelete when a virtual node is verified absent via a live lookup
2020-11-17 10:42:48 -05:00
Jordan Liggitt
445f20dbdb Switch GC absentOwnerCache to full reference
Before deleting an object based on absent owners, GC verifies absence of those owners with a live lookup.

The coordinates used to perform that live lookup are the ones specified in the ownerReference of the child.

In order to performantly delete multiple children from the same parent (e.g. 1000 pods from a replicaset),
a 404 response to a lookup is cached in absentOwnerCache.

Previously, the cache was a simple uid set. However, since children can disagree on the coordinates
that should be used to look up a given uid, the cache should record the exact coordinates verified absent.
This is a [apiVersion, kind, namespace, name, uid] tuple.
2020-11-17 10:42:48 -05:00
Jordan Liggitt
09bdf76b8a Plumb event recorder to garbage collector controller 2020-11-17 10:42:45 -05:00
cici37
a91a2cdad6 Move informer_factory to staging 2020-10-29 12:20:33 -07:00
wangkai1994
b3b95f5ab5 add defer 2020-07-07 10:20:19 +08:00
Lukasz Szaszkiewicz
50db32cf8c GC doesn't have to create monitors in the constructor 2020-06-10 14:59:45 +02:00
tahsinrahman
78318c7a26 Migrate to log calls to klog.InfoS and klog.ErroS for pkg/controller 2020-06-05 13:23:01 +08:00
Davanum Srinivas
07d88617e5
Run hack/update-vendor.sh
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:33 -04:00
Davanum Srinivas
442a69c3bd
switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
Jordan Liggitt
04a72d5ef9 client-go metadata: update callers 2020-03-06 11:07:54 -05:00
s-ito-ts
e6b9a7a309 Fix golint errors in pkg/controller/garbagecollector 2020-02-20 04:46:02 +00:00
hwdef
38256df718 pkg/controller: fix staticcheck warning 2019-11-07 16:46:47 +08: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
wojtekt
7b6bcdf780 Autogenerated code 2019-10-24 20:21:00 +02:00
Ted Yu
0d704f1ce2 Traverse OwnerReference maps more efficiently 2019-10-19 17:56:11 -07:00
zouyee
a864fd2100 fix unsafe JSON construction
Signed-off-by: Zou Nengren <zouyee1989@gmail.com>
2019-10-10 09:44:54 +08:00
Tim Allclair
ef6cba0b36 Always set content-type & nosniff 2019-09-11 15:01:43 -07:00
Yassine TIJANI
7e4c3096fe move WaitForCacheSync to the sharedInformer package
Signed-off-by: Yassine TIJANI <ytijani@vmware.com>
2019-08-22 16:13:41 +01:00
Lukasz Szaszkiewicz
2d81cee900 changes the way gc detect that an object needs to be deleted
before this change, an object would be added to `attemptToDelete` queue only if `gc` detected the transition, simply by check if `deletionTimestamp` was set. After the change, it will check if `foregroundDeletion` finalizer has been set before adding the item to the queue.
2019-08-12 10:52:43 +02:00
David Xia
fabfd950b1
cleanup: fix some log and error capitalizations
Part of https://github.com/kubernetes/kubernetes/issues/15863
2019-07-20 18:26:16 -04:00
Clayton Coleman
637cc83341
Switch the garbage collector to use metadata client and protobuf 2019-07-11 12:18:51 -04:00
Kubernetes Prow Robot
95e3a2576b
Merge pull request #78650 from cwdsuzhou/gc_graph_common
Merge similar funcs
2019-06-14 11:53:02 -07:00
Jordan Liggitt
6a7e7fc156 Fix TestStressingCascadingDeletion flake 2019-06-04 17:26:36 -04:00
caiweidong
0989bfee95 merge common funcs 2019-06-04 16:37:42 +08:00
Chao Xu
369314959c generated 2019-05-24 18:14:53 -07:00
Yu Liao
05ebe91277 Switched to use dynamic shared informer for Garbage Collector. 2019-05-17 15:41:36 -07:00
Humble Chirammal
4d56ab19e4 Remove unwanted conditions from controllers.
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2019-05-01 14:13:19 +05:30
Jordan Liggitt
bba9f5e673 Fixup gonum.org/v1/gonum/graph API calls 2019-04-08 15:20:46 -04:00
Kubernetes Prow Robot
f83fcbefb6
Merge pull request #76004 from yue9944882/chore/trival-reserving-error-msg
Fixes reversed owner relation in error msg from garbage collector
2019-04-02 03:04:58 -07:00
yue9944882
0a60d19ebd fixes reversed owner relation in error msg 2019-04-02 12:08:53 +08:00
Clayton Coleman
a63fef26ca
Garbage collector should use a merge patch instead of Update
Fix a TODO in GC controller that blocks using the new
PartialObjectMetadata flow (because we don't support PUT of
PartialObjectMetadata). This patch is equivalent to the previous
mutation.
2019-04-01 11:02:03 -04:00
Jordan Liggitt
8146fe47d8 Clean up test output 2019-03-26 23:15:39 -04:00
stewart-yu
ecbd5427e7 auto-generated file 2019-03-02 12:55:26 +08:00
stewart-yu
e01ff1641c move config local to every controllers in kube-controller-manager 2019-03-02 12:54:33 +08:00
Kubernetes Prow Robot
808f2cf0ef
Merge pull request #72525 from justinsb/owners_should_not_be_executable
Remove executable file permission from OWNERS files
2019-02-14 23:55:45 -08:00
Dr. Stefan Schimanski
618050e35d client-go: extend discovery intf with ServerGroupsAndResources 2019-02-12 14:28:19 +01:00
Kubernetes Prow Robot
b50c643be0
Merge pull request #73540 from rlenferink/patch-5
Updated OWNERS files to include link to docs
2019-02-08 09:05:56 -08:00
Antoine Pelisse
0e1d50e70f API Machinery, Kubectl and tests 2019-02-04 13:51:48 -08:00
Roy Lenferink
b43c04452f Updated OWNERS files to include link to docs 2019-02-04 22:33:12 +01:00
Chao Xu
e2812ce312 Slightly modify the comment in the test 2019-01-24 10:42:30 -08:00
Kubernetes Prow Robot
8feab37d41
Merge pull request #72815 from humblec/md
Remove explicit `nil` initialization and correct error strings.
2019-01-12 01:32:17 -08:00
Justin SB
dd19b923b7
Remove executable file permission from OWNERS files 2019-01-11 16:42:59 -08:00
Kubernetes Prow Robot
dd99c2ba79
Merge pull request #72364 from kdada/master
WaitFor returns immediately when done is closed
2019-01-11 11:51:21 -08:00
hchiramm
11045ca28e Correct linter errors on error strings.
Signed-off-by: hchiramm <hchiramm@redhat.com>
2019-01-11 16:27:14 +05:30
Wei Guo
44b2e8464b change the period of GarbageCollector.Sync to 200ms for TestGarbageCollectorSync 2019-01-10 17:51:53 +08:00
Walter Fender
f192657380 Add gauge metric for master of leader election.
Fixes #71730
0 indicates standby, 1 indicates master, label indicates which lease.
Tweaked name and documentation
Factored in Mike Danese feedback.
Removed dependency on prometheus from client-go using adapter.
Centralized adapter import.
Fixed godeps
Fixed boilerplate.
Put in fixes for caesarxuchao
2018-12-27 09:40:33 -08:00
Davanum Srinivas
954996e231
Move from glog to klog
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
  * github.com/kubernetes/repo-infra
  * k8s.io/gengo/
  * k8s.io/kube-openapi/
  * github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods

Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135
2018-11-10 07:50:31 -05:00
Ibrahim AshShohail
2fb3ba71f1
Update usages of http.ResponseWriter.WriteHeader to use http.Error
Signed-off-by: Ibrahim AshShohail <me@ibrasho.com>
2018-10-14 05:58:00 +03:00
SataQiu
2f7b86c651 fix typo 2018-09-29 18:20:01 +08:00
Nikhita Raghunath
6e47ba1fde Add sig/api-machinery label to apimachinery OWNERS files 2018-08-20 18:46:47 +05:30