func()

in operator/controllers/operator/eventexporter_controller.go [60:103]


func (r *EventExporterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
	log := runtimelog.FromContext(ctx)
	log.Info(fmt.Sprintf("===============eventexporter reconcile started (ns: %s, name: %s)===============", req.Namespace, req.Name))

	eventExporter := operatorv1alpha1.EventExporter{}
	if err := r.Client.Get(ctx, req.NamespacedName, &eventExporter); err != nil {
		return ctrl.Result{}, client.IgnoreNotFound(err)
	}

	newConfigMapName := configMapName(&eventExporter)
	if _, err := r.overlayData(ctx, log, &eventExporter, newConfigMapName); err != nil {
		log.Error(err, "failed to delete eventexporter's configMap")
		return ctrl.Result{}, err
	}

	ff, err := r.FileRepo.GetFilesRecursive("templates")
	if err != nil {
		log.Error(err, "failed to load resource templates")
		return ctrl.Result{}, err
	}

	app := kubernetes.Application{
		Client:   r.Client,
		FileRepo: r.FileRepo,
		CR:       &eventExporter,
		GVK:      operatorv1alpha1.GroupVersion.WithKind("EventExporter"),
		Recorder: r.Recorder,
		TmplFunc: template.FuncMap{
			"configMapName": func() string { return newConfigMapName },
		},
	}

	if err := app.ApplyAll(ctx, ff, log); err != nil {
		return ctrl.Result{}, err
	}

	if err := r.checkState(ctx, log, &eventExporter); err != nil {
		l.Error(err, "failed to check sub resources state")
		return ctrl.Result{}, err
	}

	return ctrl.Result{RequeueAfter: schedDuration}, nil

}