func newReconciler(mgr manager.Manager) reconcile.Reconciler {
	return &ReconcileCertificateRequest{
		client:        mgr.GetClient(),
		scheme:        mgr.GetScheme(),
		clientBuilder: cClient.NewClient,
	}
}
newReconciler returns a new reconcile.Reconciler.
package certificaterequest
import (
	"context"
	gerrors "errors"
	"fmt"
	"strings"
	"github.com/go-logr/logr"
	hivev1 "github.com/openshift/hive/pkg/apis/hive/v1"
	"github.com/prometheus/client_golang/prometheus"
	corev1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/api/errors"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"
	"k8s.io/apimachinery/pkg/types"
	"sigs.k8s.io/controller-runtime/pkg/client"
	"sigs.k8s.io/controller-runtime/pkg/controller"
	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
	"sigs.k8s.io/controller-runtime/pkg/handler"
	logf "sigs.k8s.io/controller-runtime/pkg/log"
	"sigs.k8s.io/controller-runtime/pkg/manager"
	"sigs.k8s.io/controller-runtime/pkg/reconcile"
	"sigs.k8s.io/controller-runtime/pkg/source"
	certmanv1alpha1 "github.com/openshift/certman-operator/pkg/apis/certman/v1alpha1"
	cClient "github.com/openshift/certman-operator/pkg/clients"
	"github.com/openshift/certman-operator/pkg/controller/utils"
	"github.com/openshift/certman-operator/pkg/localmetrics"
)
const (
	controllerName                        = "controller_certificaterequest"
	maxConcurrentReconciles               = 10
	hiveRelocationAnnotation              = "hive.openshift.io/relocate"
	hiveRelocationOutgoingValue           = "outgoing"
	hiveRelocationCertificateRequstStatus = "Not reconciling: ClusterDeployment is relocating"
	certRequestSuffix                     = "-primary-cert-bundle"
)
var log = logf.Log.WithName(controllerName)
func Add(mgr manager.Manager) error {
	return add(mgr, newReconciler(mgr))
}