func (c *Collection) Store(namespacedName types.NamespacedName, provisioner *Provisioner) {
	c.m.Store(namespacedName, provisioner)
}
Store adds a provisioner to the collection.
package provisioners
import (
	"context"
	"fmt"
	"math"
	"sync"
	"github.com/cloudflare/origin-ca-issuer/internal/cfapi"
	v1 "github.com/cloudflare/origin-ca-issuer/pkgs/apis/v1"
	"github.com/go-logr/logr"
	certmanager "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
	"github.com/jetstack/cert-manager/pkg/util/pki"
	"k8s.io/apimachinery/pkg/types"
)
const (
	DefaultDurationInternval = 7
)
var allowedValidty = []int{7, 30, 90, 365, 730, 1095, 5475}
type Collection struct {
	m sync.Map
}
type CollectionItem struct {
	NamespacedName types.NamespacedName
	Provisioner    *Provisioner
}
func CollectionWith(items []CollectionItem) *Collection {
	c := &Collection{}
	for _, i := range items {
		c.Store(i.NamespacedName, i.Provisioner)
	}
	return c
}
type Provisioner struct {
	client cfapi.Interface
	log    logr.Logger
	reqType v1.RequestType
}
func New(client cfapi.Interface, reqType v1.RequestType, log logr.Logger) (*Provisioner, error) {
	p := &Provisioner{
		client:  client,
		log:     log,
		reqType: reqType,
	}
	return p, nil
}