func RecordStatus(name, version string, s interface{}) bool {
	defer statusRecorder.Unlock()
	statusRecorder.Lock()
	key := name + ":" + version
	if _, ok := statusRecorder.m[key]; ok {
		log.V(utils.Info).Info("crd release status exist already", "name", name)
		return false
	}
	statusRecorder.m[key] = s
	return true
}
RecordStatus  record crd release status to clm memory.
package internal
import (
	"cloudnativeapp/clm/pkg/utils"
	"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	ctrl "sigs.k8s.io/controller-runtime"
	"sync"
)
type CRDReleasePhase string
const (
	CRDReleaseRunning    CRDReleasePhase = "Running"
	CRDReleaseAbnormal   CRDReleasePhase = "Abnormal"
	CRDReleaseInstalling CRDReleasePhase = "Installing"
)
type CRDReleaseCondition struct {
	Type   CRDReleaseConditionType       `json:"type,omitempty"`
	Status apiextensions.ConditionStatus `json:"status,omitempty"`
	LastTransitionTime v1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"`
}
type CRDReleaseConditionType string
const (
	CRDReleaseInitialized CRDReleaseConditionType = "Initialized"
	CRDReleasesDependenciesSatisfied CRDReleaseConditionType = "DependenciesSatisfied"
	CRDReleaseModulesReady CRDReleaseConditionType = "ModulesReady"
	CRDReleaseReady CRDReleaseConditionType = "Ready"
)
var log = ctrl.Log.WithName("crd release status")
var statusRecorder = struct {
	m map[string]interface{}
	sync.RWMutex
}{
	m: make(map[string]interface{}),
}