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" // PersistentVolumeKind indicates the target resource is a persistentvolume PersistentVolumeKind = "PersistentVolume" // HorizontalPodAutoscalerKind indicates the target resource is a horizontalpodautoscaler HorizontalPodAutoscalerKind = "HorizontalPodAutoscaler" // PodDisruptionBudgetKind indicates the target resource is a poddisruptionbudget PodDisruptionBudgetKind = "PodDisruptionBudget" // 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 )