Skip to content

Commit e305c33

Browse files
authored
Merge pull request kubernetes#126387 from pohly/log-client-go-tools-cache-apis
client-go/tools/cache: add APIs with context parameter
2 parents 5cfad4f + 4638ba9 commit e305c33

File tree

33 files changed

+1131
-365
lines changed

33 files changed

+1131
-365
lines changed

cmd/kube-controller-manager/app/controllermanager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,7 @@ func startServiceAccountTokenController(ctx context.Context, controllerContext C
805805
return nil, false, fmt.Errorf("failed to build token generator: %v", err)
806806
}
807807
tokenController, err := serviceaccountcontroller.NewTokensController(
808+
logger,
808809
controllerContext.InformerFactory.Core().V1().ServiceAccounts(),
809810
controllerContext.InformerFactory.Core().V1().Secrets(),
810811
rootClientBuilder.ClientOrDie("tokens-controller"),

hack/golangci-hints.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ linters-settings: # please keep this alphabetized
143143
contextual k8s.io/api/.*
144144
contextual k8s.io/apimachinery/pkg/util/runtime/.*
145145
contextual k8s.io/client-go/metadata/.*
146+
contextual k8s.io/client-go/tools/cache/.*
146147
contextual k8s.io/client-go/tools/events/.*
147148
contextual k8s.io/client-go/tools/record/.*
148149
contextual k8s.io/component-helpers/.*

hack/golangci-strict.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ linters-settings: # please keep this alphabetized
189189
contextual k8s.io/api/.*
190190
contextual k8s.io/apimachinery/pkg/util/runtime/.*
191191
contextual k8s.io/client-go/metadata/.*
192+
contextual k8s.io/client-go/tools/cache/.*
192193
contextual k8s.io/client-go/tools/events/.*
193194
contextual k8s.io/client-go/tools/record/.*
194195
contextual k8s.io/component-helpers/.*

hack/golangci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ linters-settings: # please keep this alphabetized
191191
contextual k8s.io/api/.*
192192
contextual k8s.io/apimachinery/pkg/util/runtime/.*
193193
contextual k8s.io/client-go/metadata/.*
194+
contextual k8s.io/client-go/tools/cache/.*
194195
contextual k8s.io/client-go/tools/events/.*
195196
contextual k8s.io/client-go/tools/record/.*
196197
contextual k8s.io/component-helpers/.*

hack/logcheck.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ structured k8s.io/apiserver/pkg/server/options/encryptionconfig/.*
2727
contextual k8s.io/api/.*
2828
contextual k8s.io/apimachinery/pkg/util/runtime/.*
2929
contextual k8s.io/client-go/metadata/.*
30+
contextual k8s.io/client-go/tools/cache/.*
3031
contextual k8s.io/client-go/tools/events/.*
3132
contextual k8s.io/client-go/tools/record/.*
3233
contextual k8s.io/component-helpers/.*

pkg/controller/resourceclaim/controller.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func NewController(
146146

147147
metrics.RegisterMetrics()
148148

149-
if _, err := podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
149+
if _, err := podInformer.Informer().AddEventHandlerWithOptions(cache.ResourceEventHandlerFuncs{
150150
AddFunc: func(obj interface{}) {
151151
ec.enqueuePod(logger, obj, false)
152152
},
@@ -156,10 +156,10 @@ func NewController(
156156
DeleteFunc: func(obj interface{}) {
157157
ec.enqueuePod(logger, obj, true)
158158
},
159-
}); err != nil {
159+
}, cache.HandlerOptions{Logger: &logger}); err != nil {
160160
return nil, err
161161
}
162-
if _, err := claimInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
162+
if _, err := claimInformer.Informer().AddEventHandlerWithOptions(cache.ResourceEventHandlerFuncs{
163163
AddFunc: func(obj interface{}) {
164164
logger.V(6).Info("new claim", "claimDump", obj)
165165
ec.enqueueResourceClaim(logger, nil, obj)
@@ -172,7 +172,7 @@ func NewController(
172172
logger.V(6).Info("deleted claim", "claimDump", obj)
173173
ec.enqueueResourceClaim(logger, obj, nil)
174174
},
175-
}); err != nil {
175+
}, cache.HandlerOptions{Logger: &logger}); err != nil {
176176
return nil, err
177177
}
178178
if err := ec.podIndexer.AddIndexers(cache.Indexers{podResourceClaimIndex: podResourceClaimIndexFunc}); err != nil {
@@ -190,7 +190,7 @@ func NewController(
190190
if err := claimInformerCache.AddIndexers(cache.Indexers{claimPodOwnerIndex: claimPodOwnerIndexFunc}); err != nil {
191191
return nil, fmt.Errorf("could not initialize ResourceClaim controller: %w", err)
192192
}
193-
ec.claimCache = cache.NewIntegerResourceVersionMutationCache(claimInformerCache, claimInformerCache,
193+
ec.claimCache = cache.NewIntegerResourceVersionMutationCache(logger, claimInformerCache, claimInformerCache,
194194
// Very long time to live, unlikely to be needed because
195195
// the informer cache should get updated soon.
196196
time.Hour,

pkg/controller/serviceaccount/tokens_controller.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ type TokensControllerOptions struct {
6969
}
7070

7171
// NewTokensController returns a new *TokensController.
72-
func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secrets informers.SecretInformer, cl clientset.Interface, options TokensControllerOptions) (*TokensController, error) {
72+
func NewTokensController(logger klog.Logger, serviceAccounts informers.ServiceAccountInformer, secrets informers.SecretInformer, cl clientset.Interface, options TokensControllerOptions) (*TokensController, error) {
7373
maxRetries := options.MaxRetries
7474
if maxRetries == 0 {
7575
maxRetries = 10
@@ -104,9 +104,9 @@ func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secre
104104
)
105105

106106
secretCache := secrets.Informer().GetIndexer()
107-
e.updatedSecrets = cache.NewIntegerResourceVersionMutationCache(secretCache, secretCache, 60*time.Second, true)
107+
e.updatedSecrets = cache.NewIntegerResourceVersionMutationCache(logger, secretCache, secretCache, 60*time.Second, true)
108108
e.secretSynced = secrets.Informer().HasSynced
109-
secrets.Informer().AddEventHandlerWithResyncPeriod(
109+
secrets.Informer().AddEventHandlerWithOptions(
110110
cache.FilteringResourceEventHandler{
111111
FilterFunc: func(obj interface{}) bool {
112112
switch t := obj.(type) {
@@ -123,7 +123,10 @@ func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secre
123123
DeleteFunc: e.queueSecretSync,
124124
},
125125
},
126-
options.SecretResync,
126+
cache.HandlerOptions{
127+
Logger: &logger,
128+
ResyncPeriod: &options.SecretResync,
129+
},
127130
)
128131

129132
return e, nil

pkg/controller/serviceaccount/tokens_controller_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ func TestTokenCreation(t *testing.T) {
440440

441441
for k, tc := range testcases {
442442
t.Run(k, func(t *testing.T) {
443-
_, ctx := ktesting.NewTestContext(t)
443+
logger, ctx := ktesting.NewTestContext(t)
444444

445445
// Re-seed to reset name generation
446446
utilrand.Seed(1)
@@ -455,7 +455,7 @@ func TestTokenCreation(t *testing.T) {
455455
secretInformer := informers.Core().V1().Secrets().Informer()
456456
secrets := secretInformer.GetStore()
457457
serviceAccounts := informers.Core().V1().ServiceAccounts().Informer().GetStore()
458-
controller, err := NewTokensController(informers.Core().V1().ServiceAccounts(), informers.Core().V1().Secrets(), client, TokensControllerOptions{TokenGenerator: generator, RootCA: []byte("CA Data"), MaxRetries: tc.MaxRetries})
458+
controller, err := NewTokensController(logger, informers.Core().V1().ServiceAccounts(), informers.Core().V1().Secrets(), client, TokensControllerOptions{TokenGenerator: generator, RootCA: []byte("CA Data"), MaxRetries: tc.MaxRetries})
459459
if err != nil {
460460
t.Fatalf("error creating Tokens controller: %v", err)
461461
}

staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/apiserver.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
genericapiserver "k8s.io/apiserver/pkg/server"
4949
serverstorage "k8s.io/apiserver/pkg/server/storage"
5050
"k8s.io/apiserver/pkg/util/webhook"
51+
"k8s.io/klog/v2"
5152
)
5253

5354
var (
@@ -211,7 +212,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
211212
aggregatedDiscoveryManager = aggregatedDiscoveryManager.WithSource(aggregated.CRDSource)
212213
}
213214
discoveryController := NewDiscoveryController(s.Informers.Apiextensions().V1().CustomResourceDefinitions(), versionDiscoveryHandler, groupDiscoveryHandler, aggregatedDiscoveryManager)
214-
namingController := status.NewNamingConditionController(s.Informers.Apiextensions().V1().CustomResourceDefinitions(), crdClient.ApiextensionsV1())
215+
namingController := status.NewNamingConditionController(klog.TODO() /* for contextual logging */, s.Informers.Apiextensions().V1().CustomResourceDefinitions(), crdClient.ApiextensionsV1())
215216
nonStructuralSchemaController := nonstructuralschema.NewConditionController(s.Informers.Apiextensions().V1().CustomResourceDefinitions(), crdClient.ApiextensionsV1())
216217
apiApprovalController := apiapproval.NewKubernetesAPIApprovalPolicyConformantConditionController(s.Informers.Apiextensions().V1().CustomResourceDefinitions(), crdClient.ApiextensionsV1())
217218
finalizingController := finalizer.NewCRDFinalizer(

staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ type NamingConditionController struct {
6262
}
6363

6464
func NewNamingConditionController(
65+
logger klog.Logger,
6566
crdInformer informers.CustomResourceDefinitionInformer,
6667
crdClient client.CustomResourceDefinitionsGetter,
6768
) *NamingConditionController {
@@ -76,13 +77,17 @@ func NewNamingConditionController(
7677
}
7778

7879
informerIndexer := crdInformer.Informer().GetIndexer()
79-
c.crdMutationCache = cache.NewIntegerResourceVersionMutationCache(informerIndexer, informerIndexer, 60*time.Second, false)
80+
c.crdMutationCache = cache.NewIntegerResourceVersionMutationCache(logger, informerIndexer, informerIndexer, 60*time.Second, false)
8081

81-
crdInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
82+
crdInformer.Informer().AddEventHandlerWithOptions(cache.ResourceEventHandlerFuncs{
8283
AddFunc: c.addCustomResourceDefinition,
8384
UpdateFunc: c.updateCustomResourceDefinition,
8485
DeleteFunc: c.deleteCustomResourceDefinition,
85-
})
86+
},
87+
cache.HandlerOptions{
88+
Logger: &logger,
89+
},
90+
)
8691

8792
c.syncFn = c.sync
8893

0 commit comments

Comments
 (0)