func GetSvcClusterDomainBase() string {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.ClusterSvcDomainBase != nil {
		return *globalConfig.Spec.ClusterSvcDomainBase
	}
	return DefaultSvcDomainBase
}
GetSvcClusterDomainBase extracts the default svc cluster domain
from the globalConfig CR data if present, otherwise returns the default
value (NodePort).
package shared
import (
	"errors"
	"sync"
	kdv1 "github.com/bluek8s/kubedirector/pkg/apis/kubedirector/v1beta1"
)
var (
	globalConfig     *kdv1.KubeDirectorConfig
	globalConfigLock sync.RWMutex
)
func GetRequiredSecretPrefix() string {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.RequiredSecretPrefix != nil {
		return *globalConfig.Spec.RequiredSecretPrefix
	}
	return ""
}
func GetNativeSystemdSupport() bool {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.NativeSystemdSupport != nil {
		return *globalConfig.Spec.NativeSystemdSupport
	}
	return false
}
func GetDefaultNamingScheme() string {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.DefaultNamingScheme != nil {
		return *globalConfig.Spec.DefaultNamingScheme
	}
	return DefaultNamingScheme
}
func GetDefaultStorageClass() string {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.StorageClass != nil {
		return *globalConfig.Spec.StorageClass
	}
	return ""
}
func GetDefaultServiceType() string {
	globalConfigLock.RLock()
	defer globalConfigLock.RUnlock()
	if globalConfig != nil && globalConfig.Spec.ServiceType != nil {
		return *globalConfig.Spec.ServiceType
	}
	return DefaultServiceType
}