154 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Go
		
	
	
	
package util
 | 
						|
 | 
						|
import "time"
 | 
						|
 | 
						|
const (
 | 
						|
	// ServiceNamespaceLabel is added to work object, which is report by member cluster, to specify service namespace associated with EndpointSlice.
 | 
						|
	ServiceNamespaceLabel = "endpointslice.karmada.io/namespace"
 | 
						|
 | 
						|
	// ServiceNameLabel is added to work object, which is report by member cluster, to specify service name associated with EndpointSlice.
 | 
						|
	ServiceNameLabel = "endpointslice.karmada.io/name"
 | 
						|
 | 
						|
	// PropagationInstruction is used to mark a resource(like Work) propagation instruction.
 | 
						|
	// Valid values includes:
 | 
						|
	// - suppressed: indicates that the resource should not be propagated.
 | 
						|
	//
 | 
						|
	// Note: This instruction is intended to set on Work objects to indicate the Work should be ignored by
 | 
						|
	// execution controller. The instruction maybe deprecated once we extend the Work API and no other scenario want this.
 | 
						|
	PropagationInstruction = "propagation.karmada.io/instruction"
 | 
						|
 | 
						|
	// FederatedResourceQuotaNamespaceLabel is added to Work to specify associated FederatedResourceQuota's namespace.
 | 
						|
	FederatedResourceQuotaNamespaceLabel = "federatedresourcequota.karmada.io/namespace"
 | 
						|
 | 
						|
	// FederatedResourceQuotaNameLabel is added to Work to specify associated FederatedResourceQuota's name.
 | 
						|
	FederatedResourceQuotaNameLabel = "federatedresourcequota.karmada.io/name"
 | 
						|
)
 | 
						|
 | 
						|
// Define annotations used by karmada system.
 | 
						|
const (
 | 
						|
	// PolicyPlacementAnnotation is the annotation of a policy's placement.
 | 
						|
	// It is intended to set on ResourceBinding or ClusterResourceBinding objects to record applied placement declaration.
 | 
						|
	// The placement could be either PropagationPolicy's or ClusterPropagationPolicy's.
 | 
						|
	PolicyPlacementAnnotation = "policy.karmada.io/applied-placement"
 | 
						|
 | 
						|
	// AppliedOverrides is the annotation which used to record override items an object applied.
 | 
						|
	// It is intended to set on Work objects to record applied overrides.
 | 
						|
	// The overrides items should be sorted alphabetically in ascending order by OverridePolicy's name.
 | 
						|
	AppliedOverrides = "policy.karmada.io/applied-overrides"
 | 
						|
 | 
						|
	// AppliedClusterOverrides is the annotation which used to record override items an object applied.
 | 
						|
	// It is intended to set on Work objects to record applied overrides.
 | 
						|
	// The overrides items should be sorted alphabetically in ascending order by ClusterOverridePolicy's name.
 | 
						|
	AppliedClusterOverrides = "policy.karmada.io/applied-cluster-overrides"
 | 
						|
)
 | 
						|
 | 
						|
// Define finalizers used by karmada system.
 | 
						|
const (
 | 
						|
	// ClusterControllerFinalizer is added to Cluster to ensure Work as well as the
 | 
						|
	// execution space (namespace) is deleted before itself is deleted.
 | 
						|
	ClusterControllerFinalizer = "karmada.io/cluster-controller"
 | 
						|
 | 
						|
	// ExecutionControllerFinalizer is added to Work to ensure manifests propagated to member cluster
 | 
						|
	// is deleted before Work itself is deleted.
 | 
						|
	ExecutionControllerFinalizer = "karmada.io/execution-controller"
 | 
						|
 | 
						|
	// BindingControllerFinalizer is added to ResourceBinding to ensure related Works are deleted
 | 
						|
	// before ResourceBinding itself is deleted.
 | 
						|
	BindingControllerFinalizer = "karmada.io/binding-controller"
 | 
						|
 | 
						|
	// ClusterResourceBindingControllerFinalizer is added to ClusterResourceBinding to ensure related Works are deleted
 | 
						|
	// before ClusterResourceBinding itself is deleted.
 | 
						|
	ClusterResourceBindingControllerFinalizer = "karmada.io/cluster-resource-binding-controller"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// ProviderField indicates the 'provider' field of a cluster
 | 
						|
	ProviderField = "provider"
 | 
						|
	// RegionField indicates the 'region' field of a cluster
 | 
						|
	RegionField = "region"
 | 
						|
	// ZoneField indicates the 'zone' field of a cluster
 | 
						|
	ZoneField = "zone"
 | 
						|
)
 | 
						|
 | 
						|
// Define resource kind.
 | 
						|
const (
 | 
						|
	// DeploymentKind indicates the target resource is a deployment
 | 
						|
	DeploymentKind = "Deployment"
 | 
						|
	// ServiceKind indicates the target resource is a service
 | 
						|
	ServiceKind = "Service"
 | 
						|
	// IngressKind indicates the target resource is a ingress
 | 
						|
	IngressKind = "Ingress"
 | 
						|
	// CronJobKind indicates the target resource is a cronjob
 | 
						|
	CronJobKind = "CronJob"
 | 
						|
	// JobKind indicates the target resource is a job
 | 
						|
	JobKind = "Job"
 | 
						|
	// PodKind indicates the target resource is a pod
 | 
						|
	PodKind = "Pod"
 | 
						|
	// ServiceAccountKind indicates the target resource is a serviceaccount
 | 
						|
	ServiceAccountKind = "ServiceAccount"
 | 
						|
	// ReplicaSetKind indicates the target resource is a replicaset
 | 
						|
	ReplicaSetKind = "ReplicaSet"
 | 
						|
	// StatefulSetKind indicates the target resource is a statefulset
 | 
						|
	StatefulSetKind = "StatefulSet"
 | 
						|
	// DaemonSetKind indicates the target resource is a daemonset
 | 
						|
	DaemonSetKind = "DaemonSet"
 | 
						|
	// EndpointSliceKind indicates the target resource is a endpointslice
 | 
						|
	EndpointSliceKind = "EndpointSlice"
 | 
						|
	// PersistentVolumeClaimKind indicated the target resource is a persistentvolumeclaim
 | 
						|
	PersistentVolumeClaimKind = "PersistentVolumeClaim"
 | 
						|
	// HorizontalPodAutoscalerKind indicated the target resource is a horizontalpodautoscaler
 | 
						|
	HorizontalPodAutoscalerKind = "HorizontalPodAutoscaler"
 | 
						|
 | 
						|
	// ServiceExportKind indicates the target resource is a serviceexport crd
 | 
						|
	ServiceExportKind = "ServiceExport"
 | 
						|
	// ServiceImportKind indicates the target resource is a serviceimport crd
 | 
						|
	ServiceImportKind = "ServiceImport"
 | 
						|
 | 
						|
	// CRDKind indicated the target resource is a CustomResourceDefinition
 | 
						|
	CRDKind = "CustomResourceDefinition"
 | 
						|
 | 
						|
	// ClusterRoleKind indicates the target resource is a clusterrole
 | 
						|
	ClusterRoleKind = "ClusterRole"
 | 
						|
	// ClusterRoleBindingKind indicates the target resource is a clusterrolebinding
 | 
						|
	ClusterRoleBindingKind = "ClusterRoleBinding"
 | 
						|
)
 | 
						|
 | 
						|
// Define resource filed
 | 
						|
const (
 | 
						|
	// SpecField indicates the 'spec' field of a resource
 | 
						|
	SpecField = "spec"
 | 
						|
	// ReplicasField indicates the 'replicas' field of a resource
 | 
						|
	ReplicasField = "replicas"
 | 
						|
	// ReadyReplicasField indicates the 'readyReplicas' field of a resource status
 | 
						|
	ReadyReplicasField = "readyReplicas"
 | 
						|
	// ParallelismField indicates the 'parallelism' field of a job
 | 
						|
	ParallelismField = "parallelism"
 | 
						|
	// CompletionsField indicates the 'completions' field of a job
 | 
						|
	CompletionsField = "completions"
 | 
						|
	// TemplateField indicates the 'template' field of a resource
 | 
						|
	TemplateField = "template"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// PropagationInstructionSuppressed indicates that the resource should not be propagated.
 | 
						|
	PropagationInstructionSuppressed = "suppressed"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// NamespaceKarmadaSystem is the karmada system namespace.
 | 
						|
	NamespaceKarmadaSystem = "karmada-system"
 | 
						|
)
 | 
						|
 | 
						|
// ContextKey is the key of context.
 | 
						|
type ContextKey string
 | 
						|
 | 
						|
const (
 | 
						|
	// ContextKeyObject is the context value key of a resource.
 | 
						|
	ContextKeyObject ContextKey = "object"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// CacheSyncTimeout refers to the time limit set on waiting for cache to sync
 | 
						|
	CacheSyncTimeout = 30 * time.Second
 | 
						|
)
 |