Documentation ¶
Index ¶
- Constants
- func AggregateClusterResourceBindingWorkStatus(c client.Client, binding *workv1alpha2.ClusterResourceBinding, ...) error
- func AggregateResourceBindingWorkStatus(c client.Client, binding *workv1alpha2.ResourceBinding, ...) error
- func ApplyReplica(workload *unstructured.Unstructured, desireReplica int64, field string) error
- func ConvertToClusterPropagationPolicy(obj *unstructured.Unstructured) (*policyv1alpha1.ClusterPropagationPolicy, error)
- func ConvertToDaemonSet(obj *unstructured.Unstructured) (*appsv1.DaemonSet, error)
- func ConvertToDeployment(obj *unstructured.Unstructured) (*appsv1.Deployment, error)
- func ConvertToEndpointSlice(obj *unstructured.Unstructured) (*discoveryv1.EndpointSlice, error)
- func ConvertToJob(obj *unstructured.Unstructured) (*batchv1.Job, error)
- func ConvertToNode(obj *unstructured.Unstructured) (*corev1.Node, error)
- func ConvertToPod(obj *unstructured.Unstructured) (*corev1.Pod, error)
- func ConvertToPropagationPolicy(obj *unstructured.Unstructured) (*policyv1alpha1.PropagationPolicy, error)
- func ConvertToReplicaSet(obj *unstructured.Unstructured) (*appsv1.ReplicaSet, error)
- func ConvertToResourceBinding(obj *unstructured.Unstructured) (*workv1alpha2.ResourceBinding, error)
- func ConvertToResourceExploringWebhookConfiguration(obj *unstructured.Unstructured) (*configv1alpha1.ResourceInterpreterWebhookConfiguration, error)
- func ConvertToStatefulSet(obj *unstructured.Unstructured) (*appsv1.StatefulSet, error)
- func CreateOrUpdateEndpointSlice(client client.Client, endpointSlice *discoveryv1.EndpointSlice) error
- func CreateOrUpdateWork(client client.Client, workMeta metav1.ObjectMeta, ...) error
- func DeleteEndpointSlice(c client.Client, selector labels.Set) error
- func DeleteWorkByCRBName(c client.Client, name string) error
- func DeleteWorkByRBNamespaceAndName(c client.Client, namespace, name string) error
- func DeleteWorks(c client.Client, selector labels.Set) error
- func FetchWorkload(dynamicClient dynamic.Interface, ...) (*unstructured.Unstructured, error)
- func FindOrphanWorks(c client.Client, bindingNamespace, bindingName string, clusterNames []string, ...) ([]workv1alpha1.Work, error)
- func GenerateNodeClaimByPodSpec(podSpec *corev1.PodSpec) *workv1alpha2.NodeClaim
- func GenerateReplicaRequirements(podTemplate *corev1.PodTemplateSpec) *workv1alpha2.ReplicaRequirements
- func GenerateResourceSelectorForServiceImport(svcImport policyv1alpha1.ResourceSelector) []policyv1alpha1.ResourceSelector
- func GetBindingClusterNames(targetClusters []workv1alpha2.TargetCluster) []string
- func GetClusterResourceBindings(c client.Client, ls labels.Set) (*workv1alpha2.ClusterResourceBindingList, error)
- func GetEndpointSlices(c client.Client, ls labels.Set) (*discoveryv1.EndpointSliceList, error)
- func GetFollowedResourceSelectorsWhenMatchServiceImport(resourceSelectors []policyv1alpha1.ResourceSelector) []policyv1alpha1.ResourceSelector
- func GetJobFinishedStatus(jobStatus *batchv1.JobStatus) (bool, batchv1.JobConditionType)
- func GetManifestIndex(manifests []workv1alpha1.Manifest, clusterObj *unstructured.Unstructured) (int, error)
- func GetObjectFromCache(restMapper meta.RESTMapper, ...) (*unstructured.Unstructured, error)
- func GetResourceBindings(c client.Client, ls labels.Set) (*workv1alpha2.ResourceBindingList, error)
- func GetWorks(c client.Client, ls labels.Set) (*workv1alpha1.WorkList, error)
- func GetWorksByLabelSelector(c client.Client, selector labels.Selector) (*workv1alpha1.WorkList, error)
- func HasScheduledReplica(scheduleResult []workv1alpha2.TargetCluster) bool
- func IsAPIEnabled(APIEnablements []clusterv1alpha1.APIEnablement, groupVersion string, ...) bool
- func IsBindingScheduled(status *workv1alpha2.ResourceBindingStatus) bool
- func IsClusterOverridePolicyExist(c client.Client, name string) (bool, error)
- func IsDependentClusterOverridesPresent(c client.Client, policy *policyv1alpha1.ClusterPropagationPolicy) (bool, error)
- func IsDependentOverridesPresent(c client.Client, policy *policyv1alpha1.PropagationPolicy) (bool, error)
- func IsOverridePolicyExist(c client.Client, ns string, name string) (bool, error)
- func IsResourceApplied(workStatus *workv1alpha1.WorkStatus) bool
- func IsWorkContains(workStatus *workv1alpha1.WorkStatus, targetResource schema.GroupVersionKind) bool
- func NewClusterPredicateOnAgent(clusterName string) predicate.Funcs
- func NewExecutionPredicate(mgr controllerruntime.Manager) predicate.Funcs
- func NewExecutionPredicateOnAgent() predicate.Funcs
- func NewPredicateForServiceExportController(mgr controllerruntime.Manager) predicate.Funcs
- func NewPredicateForServiceExportControllerOnAgent(curClusterName string) predicate.Funcs
- func NodeReady(node *corev1.Node) bool
- func ParsingJobStatus(obj *batchv1.Job, status []workv1alpha2.AggregatedStatusItem, ...) (*batchv1.JobStatus, error)
- func RemoveOrphanWorks(c client.Client, works []workv1alpha1.Work) error
- func SetDefaultSpreadConstraints(spreadConstraints []policyv1alpha1.SpreadConstraint)
- func ToUnstructured(obj interface{}) (*unstructured.Unstructured, error)
- func ValidateSpreadConstraint(spreadConstraints []policyv1alpha1.SpreadConstraint) error
- type ClusterWeightInfo
- type ClusterWeightInfoList
Constants ¶
const ( // FullyAppliedSuccessReason defines the success reason for the FullyApplied condition. FullyAppliedSuccessReason = "FullyAppliedSuccess" // FullyAppliedFailedReason defines the failure reason for the FullyApplied condition. FullyAppliedFailedReason = "FullyAppliedFailed" // FullyAppliedSuccessMessage defines the success message for the FullyApplied condition. FullyAppliedSuccessMessage = "All works have been successfully applied" // FullyAppliedFailedMessage defines the failure message for the FullyApplied condition. FullyAppliedFailedMessage = "Failed to apply all works, see status.aggregatedStatus for details" )
const DenyReasonResourceSelectorsModify = "modify ResourceSelectors is forbidden"
DenyReasonResourceSelectorsModify constructs a reason indicating that modify ResourceSelectors is not allowed.
Variables ¶
This section is empty.
Functions ¶
func AggregateClusterResourceBindingWorkStatus ¶ added in v0.5.0
func AggregateClusterResourceBindingWorkStatus(c client.Client, binding *workv1alpha2.ClusterResourceBinding, workload *unstructured.Unstructured) error
AggregateClusterResourceBindingWorkStatus will collect all work statuses with current ClusterResourceBinding objects, then aggregate status info to current ClusterResourceBinding status.
func AggregateResourceBindingWorkStatus ¶ added in v0.5.0
func AggregateResourceBindingWorkStatus(c client.Client, binding *workv1alpha2.ResourceBinding, workload *unstructured.Unstructured) error
AggregateResourceBindingWorkStatus will collect all work statuses with current ResourceBinding objects, then aggregate status info to current ResourceBinding status.
func ApplyReplica ¶ added in v1.0.0
func ApplyReplica(workload *unstructured.Unstructured, desireReplica int64, field string) error
ApplyReplica applies the Replica value for the specific field.
func ConvertToClusterPropagationPolicy ¶ added in v0.8.0
func ConvertToClusterPropagationPolicy(obj *unstructured.Unstructured) (*policyv1alpha1.ClusterPropagationPolicy, error)
ConvertToClusterPropagationPolicy converts a ClusterPropagationPolicy object from unstructured to typed.
func ConvertToDaemonSet ¶ added in v0.9.0
func ConvertToDaemonSet(obj *unstructured.Unstructured) (*appsv1.DaemonSet, error)
ConvertToDaemonSet converts a DaemonSet object from unstructured to typed.
func ConvertToDeployment ¶ added in v0.9.0
func ConvertToDeployment(obj *unstructured.Unstructured) (*appsv1.Deployment, error)
ConvertToDeployment converts a Deployment object from unstructured to typed.
func ConvertToEndpointSlice ¶ added in v0.9.0
func ConvertToEndpointSlice(obj *unstructured.Unstructured) (*discoveryv1.EndpointSlice, error)
ConvertToEndpointSlice converts a EndpointSlice object from unstructured to typed.
func ConvertToJob ¶ added in v0.9.0
func ConvertToJob(obj *unstructured.Unstructured) (*batchv1.Job, error)
ConvertToJob converts a Job object from unstructured to typed.
func ConvertToNode ¶ added in v0.9.0
func ConvertToNode(obj *unstructured.Unstructured) (*corev1.Node, error)
ConvertToNode converts a Node object from unstructured to typed.
func ConvertToPod ¶ added in v0.9.0
func ConvertToPod(obj *unstructured.Unstructured) (*corev1.Pod, error)
ConvertToPod converts a Pod object from unstructured to typed.
func ConvertToPropagationPolicy ¶ added in v0.8.0
func ConvertToPropagationPolicy(obj *unstructured.Unstructured) (*policyv1alpha1.PropagationPolicy, error)
ConvertToPropagationPolicy converts a PropagationPolicy object from unstructured to typed.
func ConvertToReplicaSet ¶ added in v0.9.0
func ConvertToReplicaSet(obj *unstructured.Unstructured) (*appsv1.ReplicaSet, error)
ConvertToReplicaSet converts a ReplicaSet object from unstructured to typed.
func ConvertToResourceBinding ¶ added in v0.8.0
func ConvertToResourceBinding(obj *unstructured.Unstructured) (*workv1alpha2.ResourceBinding, error)
ConvertToResourceBinding converts a ResourceBinding object from unstructured to typed.
func ConvertToResourceExploringWebhookConfiguration ¶ added in v0.10.0
func ConvertToResourceExploringWebhookConfiguration(obj *unstructured.Unstructured) (*configv1alpha1.ResourceInterpreterWebhookConfiguration, error)
ConvertToResourceExploringWebhookConfiguration converts a ResourceInterpreterWebhookConfiguration object from unstructured to typed.
func ConvertToStatefulSet ¶ added in v0.9.0
func ConvertToStatefulSet(obj *unstructured.Unstructured) (*appsv1.StatefulSet, error)
ConvertToStatefulSet converts a StatefulSet object from unstructured to typed.
func CreateOrUpdateEndpointSlice ¶ added in v0.7.0
func CreateOrUpdateEndpointSlice(client client.Client, endpointSlice *discoveryv1.EndpointSlice) error
CreateOrUpdateEndpointSlice creates a EndpointSlice object if not exist, or updates if it already exist.
func CreateOrUpdateWork ¶ added in v0.7.0
func CreateOrUpdateWork(client client.Client, workMeta metav1.ObjectMeta, resource *unstructured.Unstructured) error
CreateOrUpdateWork creates a Work object if not exist, or updates if it already exist.
func DeleteEndpointSlice ¶ added in v0.7.0
DeleteEndpointSlice will delete all EndpointSlice objects by labels.
func DeleteWorkByCRBName ¶ added in v0.10.0
DeleteWorkByCRBName will delete all Work objects by ClusterResourceBinding name.
func DeleteWorkByRBNamespaceAndName ¶ added in v0.10.0
DeleteWorkByRBNamespaceAndName will delete all Work objects by ResourceBinding namespace and name.
func DeleteWorks ¶ added in v0.7.0
DeleteWorks will delete all Work objects by labels.
func FetchWorkload ¶
func FetchWorkload(dynamicClient dynamic.Interface, informerManager informermanager.SingleClusterInformerManager, restMapper meta.RESTMapper, resource workv1alpha2.ObjectReference) (*unstructured.Unstructured, error)
FetchWorkload fetches the kubernetes resource to be propagated.
func FindOrphanWorks ¶
func FindOrphanWorks(c client.Client, bindingNamespace, bindingName string, clusterNames []string, scope apiextensionsv1.ResourceScope) ([]workv1alpha1.Work, error)
FindOrphanWorks retrieves all works that labeled with current binding(ResourceBinding or ClusterResourceBinding) objects, then pick the works that not meet current binding declaration.
func GenerateNodeClaimByPodSpec ¶ added in v0.9.0
func GenerateNodeClaimByPodSpec(podSpec *corev1.PodSpec) *workv1alpha2.NodeClaim
GenerateNodeClaimByPodSpec will return a NodeClaim from PodSpec.
func GenerateReplicaRequirements ¶ added in v0.10.0
func GenerateReplicaRequirements(podTemplate *corev1.PodTemplateSpec) *workv1alpha2.ReplicaRequirements
GenerateReplicaRequirements generates replica requirements for node and resources.
func GenerateResourceSelectorForServiceImport ¶ added in v0.7.0
func GenerateResourceSelectorForServiceImport(svcImport policyv1alpha1.ResourceSelector) []policyv1alpha1.ResourceSelector
GenerateResourceSelectorForServiceImport generates resource selectors for ServiceImport.
func GetBindingClusterNames ¶
func GetBindingClusterNames(targetClusters []workv1alpha2.TargetCluster) []string
GetBindingClusterNames will get clusterName list from bind clusters field
func GetClusterResourceBindings ¶ added in v0.6.0
func GetClusterResourceBindings(c client.Client, ls labels.Set) (*workv1alpha2.ClusterResourceBindingList, error)
GetClusterResourceBindings returns a ClusterResourceBindingList by labels.
func GetEndpointSlices ¶ added in v0.7.0
func GetEndpointSlices(c client.Client, ls labels.Set) (*discoveryv1.EndpointSliceList, error)
GetEndpointSlices returns a EndpointSliceList by labels
func GetFollowedResourceSelectorsWhenMatchServiceImport ¶ added in v0.7.0
func GetFollowedResourceSelectorsWhenMatchServiceImport(resourceSelectors []policyv1alpha1.ResourceSelector) []policyv1alpha1.ResourceSelector
GetFollowedResourceSelectorsWhenMatchServiceImport get followed derived-service and endpointSlices resource selectors when policy's ResourceSelectors contains ResourceSelector, whose kind is ServiceImport.
func GetJobFinishedStatus ¶ added in v1.0.4
func GetJobFinishedStatus(jobStatus *batchv1.JobStatus) (bool, batchv1.JobConditionType)
GetJobFinishedStatus checks whether the given Job has finished execution. It does not discriminate between successful and failed terminations.
func GetManifestIndex ¶ added in v0.5.0
func GetManifestIndex(manifests []workv1alpha1.Manifest, clusterObj *unstructured.Unstructured) (int, error)
GetManifestIndex get the index of clusterObj in manifest list, if not exist return -1.
func GetObjectFromCache ¶ added in v0.7.0
func GetObjectFromCache(restMapper meta.RESTMapper, manager informermanager.MultiClusterInformerManager, fedKey keys.FederatedKey, client client.Client, clientSetFunc clusterDynamicClientSetFunc) (*unstructured.Unstructured, error)
GetObjectFromCache gets full object information from cache by key in worker queue.
func GetResourceBindings ¶ added in v0.6.0
func GetResourceBindings(c client.Client, ls labels.Set) (*workv1alpha2.ResourceBindingList, error)
GetResourceBindings returns a ResourceBindingList by labels
func GetWorksByLabelSelector ¶ added in v0.10.0
func GetWorksByLabelSelector(c client.Client, selector labels.Selector) (*workv1alpha1.WorkList, error)
GetWorksByLabelSelector get WorkList by matching label selector.
func HasScheduledReplica ¶ added in v0.7.0
func HasScheduledReplica(scheduleResult []workv1alpha2.TargetCluster) bool
HasScheduledReplica checks if the scheduler has assigned replicas for each cluster.
func IsAPIEnabled ¶ added in v0.7.0
func IsAPIEnabled(APIEnablements []clusterv1alpha1.APIEnablement, groupVersion string, kind string) bool
IsAPIEnabled checks if target API (or CRD) referencing by groupVersion and kind has been installed.
func IsBindingScheduled ¶ added in v1.0.0
func IsBindingScheduled(status *workv1alpha2.ResourceBindingStatus) bool
IsBindingScheduled will check if resourceBinding/clusterResourceBinding is successfully scheduled.
func IsClusterOverridePolicyExist ¶
IsClusterOverridePolicyExist checks if specific ClusterOverridePolicy exist.
func IsDependentClusterOverridesPresent ¶
func IsDependentClusterOverridesPresent(c client.Client, policy *policyv1alpha1.ClusterPropagationPolicy) (bool, error)
IsDependentClusterOverridesPresent checks if a ClusterPropagationPolicy's dependent ClusterOverridePolicy all exist.
func IsDependentOverridesPresent ¶
func IsDependentOverridesPresent(c client.Client, policy *policyv1alpha1.PropagationPolicy) (bool, error)
IsDependentOverridesPresent checks if a PropagationPolicy's dependent OverridePolicy all exist.
func IsOverridePolicyExist ¶
IsOverridePolicyExist checks if specific OverridePolicy exist.
func IsResourceApplied ¶ added in v0.7.0
func IsResourceApplied(workStatus *workv1alpha1.WorkStatus) bool
IsResourceApplied checks whether resource has been dispatched to member cluster or not
func IsWorkContains ¶ added in v0.7.0
func IsWorkContains(workStatus *workv1alpha1.WorkStatus, targetResource schema.GroupVersionKind) bool
IsWorkContains checks if the target resource exists in a work. Note: This function checks the Work object's status to detect the target resource, so the Work should be 'Applied', otherwise always returns false.
func NewClusterPredicateOnAgent ¶ added in v0.7.0
NewClusterPredicateOnAgent generates an event filter function with Cluster for karmada-agent.
func NewExecutionPredicate ¶ added in v0.7.0
func NewExecutionPredicate(mgr controllerruntime.Manager) predicate.Funcs
NewExecutionPredicate generates the event filter function to skip events that the controllers are uninterested. Used by controllers: - execution controller working in karmada-controller-manager - work status controller working in karmada-controller-manager
func NewExecutionPredicateOnAgent ¶ added in v0.7.0
NewExecutionPredicateOnAgent generates the event filter function to skip events that the controllers are uninterested. Used by controllers: - execution controller working in agent - work status controller working in agent
func NewPredicateForServiceExportController ¶ added in v0.7.0
func NewPredicateForServiceExportController(mgr controllerruntime.Manager) predicate.Funcs
NewPredicateForServiceExportController generates an event filter function for ServiceExport controller running by karmada-controller-manager.
func NewPredicateForServiceExportControllerOnAgent ¶ added in v0.7.0
NewPredicateForServiceExportControllerOnAgent generates an event filter function for ServiceExport controller running by karmada-agent.
func ParsingJobStatus ¶ added in v1.0.0
func ParsingJobStatus(obj *batchv1.Job, status []workv1alpha2.AggregatedStatusItem, clusters []workv1alpha2.TargetCluster) (*batchv1.JobStatus, error)
ParsingJobStatus generates new status of given 'AggregatedStatusItem'.
func RemoveOrphanWorks ¶
func RemoveOrphanWorks(c client.Client, works []workv1alpha1.Work) error
RemoveOrphanWorks will remove orphan works.
func SetDefaultSpreadConstraints ¶
func SetDefaultSpreadConstraints(spreadConstraints []policyv1alpha1.SpreadConstraint)
SetDefaultSpreadConstraints set default spread constraints if both 'SpreadByField' and 'SpreadByLabel' not set.
func ToUnstructured ¶ added in v1.0.4
func ToUnstructured(obj interface{}) (*unstructured.Unstructured, error)
ToUnstructured converts a typed object to an unstructured object.
func ValidateSpreadConstraint ¶
func ValidateSpreadConstraint(spreadConstraints []policyv1alpha1.SpreadConstraint) error
ValidateSpreadConstraint tests if the constraints is valid.
Types ¶
type ClusterWeightInfo ¶ added in v0.5.0
ClusterWeightInfo records the weight of a cluster
type ClusterWeightInfoList ¶ added in v0.5.0
type ClusterWeightInfoList []ClusterWeightInfo
ClusterWeightInfoList is a slice of ClusterWeightInfo that implements sort.Interface to sort by Value.
func SortClusterByWeight ¶ added in v0.7.0
func SortClusterByWeight(m map[string]int64) ClusterWeightInfoList
SortClusterByWeight sort clusters by the weight
func (ClusterWeightInfoList) Len ¶ added in v0.5.0
func (p ClusterWeightInfoList) Len() int
func (ClusterWeightInfoList) Less ¶ added in v0.5.0
func (p ClusterWeightInfoList) Less(i, j int) bool
func (ClusterWeightInfoList) Swap ¶ added in v0.5.0
func (p ClusterWeightInfoList) Swap(i, j int)