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
|
|
)
|