in internal/controller/acrpullbinding_controller.go [200:234]
func (r *AcrPullBindingReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager) error {
if r.now == nil {
r.now = time.Now
}
if err := mgr.GetFieldIndexer().IndexField(ctx, &msiacrpullv1beta1.AcrPullBinding{}, serviceAccountField, indexPullBindingByServiceAccount); err != nil {
return err
}
if err := mgr.GetFieldIndexer().IndexField(ctx, &corev1.Secret{}, pullBindingField, indexPullSecretByPullBinding); err != nil {
return err
}
if err := mgr.GetFieldIndexer().IndexField(ctx, &corev1.ServiceAccount{}, imagePullSecretsField, func(object client.Object) []string {
serviceAccount, ok := object.(*corev1.ServiceAccount)
if !ok {
return nil
}
var imagePullSecrets []string
for _, secretRef := range serviceAccount.ImagePullSecrets {
if strings.HasPrefix(secretRef.Name, pullSecretNamePrefix) {
imagePullSecrets = append(imagePullSecrets, secretRef.Name)
}
}
return imagePullSecrets
}); err != nil {
return err
}
return ctrl.NewControllerManagedBy(mgr).
For(&msiacrpullv1beta1.AcrPullBinding{}).
Named("acr-pull-binding").
Watches(&corev1.Secret{}, handler.EnqueueRequestsFromMapFunc(enqueuePullBindingsForPullSecret(mgr))).
Watches(&corev1.ServiceAccount{}, handler.EnqueueRequestsFromMapFunc(enqueuePullBindingsForServiceAccount(mgr))).
Complete(r)
}