Wire contexts to Bootstrap controllers
This commit is contained in:
@@ -111,20 +111,20 @@ func NewTokenCleaner(cl clientset.Interface, secrets coreinformers.SecretInforme
|
||||
}
|
||||
|
||||
// Run runs controller loops and returns when they are done
|
||||
func (tc *TokenCleaner) Run(stopCh <-chan struct{}) {
|
||||
func (tc *TokenCleaner) Run(ctx context.Context) {
|
||||
defer utilruntime.HandleCrash()
|
||||
defer tc.queue.ShutDown()
|
||||
|
||||
klog.Infof("Starting token cleaner controller")
|
||||
defer klog.Infof("Shutting down token cleaner controller")
|
||||
|
||||
if !cache.WaitForNamedCacheSync("token_cleaner", stopCh, tc.secretSynced) {
|
||||
if !cache.WaitForNamedCacheSync("token_cleaner", ctx.Done(), tc.secretSynced) {
|
||||
return
|
||||
}
|
||||
|
||||
go wait.Until(tc.worker, 10*time.Second, stopCh)
|
||||
go wait.UntilWithContext(ctx, tc.worker, 10*time.Second)
|
||||
|
||||
<-stopCh
|
||||
<-ctx.Done()
|
||||
}
|
||||
|
||||
func (tc *TokenCleaner) enqueueSecrets(obj interface{}) {
|
||||
@@ -137,20 +137,20 @@ func (tc *TokenCleaner) enqueueSecrets(obj interface{}) {
|
||||
}
|
||||
|
||||
// worker runs a thread that dequeues secrets, handles them, and marks them done.
|
||||
func (tc *TokenCleaner) worker() {
|
||||
for tc.processNextWorkItem() {
|
||||
func (tc *TokenCleaner) worker(ctx context.Context) {
|
||||
for tc.processNextWorkItem(ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
// processNextWorkItem deals with one key off the queue. It returns false when it's time to quit.
|
||||
func (tc *TokenCleaner) processNextWorkItem() bool {
|
||||
func (tc *TokenCleaner) processNextWorkItem(ctx context.Context) bool {
|
||||
key, quit := tc.queue.Get()
|
||||
if quit {
|
||||
return false
|
||||
}
|
||||
defer tc.queue.Done(key)
|
||||
|
||||
if err := tc.syncFunc(key.(string)); err != nil {
|
||||
if err := tc.syncFunc(ctx, key.(string)); err != nil {
|
||||
tc.queue.AddRateLimited(key)
|
||||
utilruntime.HandleError(fmt.Errorf("Sync %v failed with : %v", key, err))
|
||||
return true
|
||||
@@ -160,7 +160,7 @@ func (tc *TokenCleaner) processNextWorkItem() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (tc *TokenCleaner) syncFunc(key string) error {
|
||||
func (tc *TokenCleaner) syncFunc(ctx context.Context, key string) error {
|
||||
startTime := time.Now()
|
||||
defer func() {
|
||||
klog.V(4).Infof("Finished syncing secret %q (%v)", key, time.Since(startTime))
|
||||
@@ -182,12 +182,12 @@ func (tc *TokenCleaner) syncFunc(key string) error {
|
||||
}
|
||||
|
||||
if ret.Type == bootstrapapi.SecretTypeBootstrapToken {
|
||||
tc.evalSecret(ret)
|
||||
tc.evalSecret(ctx, ret)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (tc *TokenCleaner) evalSecret(o interface{}) {
|
||||
func (tc *TokenCleaner) evalSecret(ctx context.Context, o interface{}) {
|
||||
secret := o.(*v1.Secret)
|
||||
ttl, alreadyExpired := bootstrapsecretutil.GetExpiration(secret, time.Now())
|
||||
if alreadyExpired {
|
||||
@@ -196,7 +196,7 @@ func (tc *TokenCleaner) evalSecret(o interface{}) {
|
||||
if len(secret.UID) > 0 {
|
||||
options.Preconditions = &metav1.Preconditions{UID: &secret.UID}
|
||||
}
|
||||
err := tc.client.CoreV1().Secrets(secret.Namespace).Delete(context.TODO(), secret.Name, options)
|
||||
err := tc.client.CoreV1().Secrets(secret.Namespace).Delete(ctx, secret.Name, options)
|
||||
// NotFound isn't a real error (it's already been deleted)
|
||||
// Conflict isn't a real error (the UID precondition failed)
|
||||
if err != nil && !apierrors.IsConflict(err) && !apierrors.IsNotFound(err) {
|
||||
|
Reference in New Issue
Block a user