func()

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)
}