Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Karmada API Document for v1.11 #679

Merged
merged 1 commit into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ DeleteOptions may be provided when deleting an API object.

- **dryRun** ([]string)

*Atomic: will be replaced during a merge*

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

- **gracePeriodSeconds** (int64)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ A label selector is a label query over a set of resources. The result of matchLa

- **matchExpressions** ([]LabelSelectorRequirement)

*Atomic: will be replaced during a merge*

matchExpressions is a list of label selector requirements. The requirements are ANDed.

<a name="LabelSelectorRequirement"></a>
Expand All @@ -38,6 +40,8 @@ A label selector is a label query over a set of resources. The result of matchLa

- **matchExpressions.values** ([]string)

*Atomic: will be replaced during a merge*

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

- **matchLabels** (map[string]string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,7 @@ A node selector requirement is a selector that contains values, a key, and an op

- **values** ([]string)

*Atomic: will be replaced during a merge*

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

6 changes: 6 additions & 0 deletions docs/reference/karmada-api/common-definitions/object-meta.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ ObjectMeta is metadata that all persisted resources must have, which includes al

- **finalizers** ([]string)

*Set: unique values will be kept during a merge*

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

- **generateName** (string)
Expand All @@ -70,6 +72,8 @@ ObjectMeta is metadata that all persisted resources must have, which includes al

- **managedFields** ([]ManagedFieldsEntry)

*Atomic: will be replaced during a merge*

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

<a name="ManagedFieldsEntry"></a>
Expand Down Expand Up @@ -130,6 +134,8 @@ ObjectMeta is metadata that all persisted resources must have, which includes al

*Patch strategy: merge on key `uid`*

*Map: unique values on key uid will be kept during a merge*

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

<a name="OwnerReference"></a>
Expand Down
4 changes: 4 additions & 0 deletions docs/reference/karmada-api/common-definitions/status.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ Status is a return value for calls that don't return other objects.

- **details** (StatusDetails)

*Atomic: will be replaced during a merge*

Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

<a name="StatusDetails"></a>
Expand All @@ -38,6 +40,8 @@ Status is a return value for calls that don't return other objects.

- **details.causes** ([]StatusCause)

*Atomic: will be replaced during a merge*

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

<a name="StatusCause"></a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,8 @@ MultiClusterIngressStatus is the current state of the MultiClusterIngress.

- **loadBalancer.ingress** ([]IngressLoadBalancerIngress)

*Atomic: will be replaced during a merge*

ingress is a list containing ingress points for the load-balancer.

<a name="IngressLoadBalancerIngress"></a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ MultiClusterService is a named abstraction of multi-cluster software service. Th

- **status.loadBalancer.ingress** ([]LoadBalancerIngress)

*Atomic: will be replaced during a merge*

Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.

<a name="LoadBalancerIngress"></a>
Expand Down Expand Up @@ -158,7 +160,7 @@ MultiClusterServiceSpec is the desired state of the MultiClusterService.

*ClusterSelector specifies the cluster to be selected.*

- **consumerClusters.name** (string)
- **consumerClusters.name** (string), required

Name is the name of the cluster to be selected.

Expand Down Expand Up @@ -186,7 +188,7 @@ MultiClusterServiceSpec is the desired state of the MultiClusterService.

*ClusterSelector specifies the cluster to be selected.*

- **providerClusters.name** (string)
- **providerClusters.name** (string), required

Name is the name of the cluster to be selected.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Operator represents the operator which will apply on the workload.

- **spec.overrideRules.overriders.annotationsOverrider.value** (map[string]string)
- **spec.overrideRules.overriders.annotationsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -167,7 +167,7 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Operator represents the operator which will apply on the workload.

- **spec.overrideRules.overriders.labelsOverrider.value** (map[string]string)
- **spec.overrideRules.overriders.labelsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -251,7 +251,7 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Operator represents the operator which will apply on the workload.

- **spec.overriders.annotationsOverrider.value** (map[string]string)
- **spec.overriders.annotationsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -350,7 +350,7 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Operator represents the operator which will apply on the workload.

- **spec.overriders.labelsOverrider.value** (map[string]string)
- **spec.overriders.labelsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,30 @@ ClusterPropagationPolicy represents the cluster-wide policy that propagates a gr

SchedulerName represents which scheduler to proceed the scheduling. If specified, the policy will be dispatched by specified scheduler. If not specified, the policy will be dispatched by default scheduler.

- **spec.suspension** (Suspension)

Suspension declares the policy for suspending different aspects of propagation. nil means no suspension. no default values.

<a name="Suspension"></a>

*Suspension defines the policy for suspending different aspects of propagation.*

- **spec.suspension.dispatching** (boolean)

Dispatching controls whether dispatching should be suspended. nil means not suspend, no default value, only accepts 'true'. Note: true means stop propagating to all clusters. Can not co-exist with DispatchingOnClusters which is used to suspend particular clusters.

- **spec.suspension.dispatchingOnClusters** (SuspendClusters)

DispatchingOnClusters declares a list of clusters to which the dispatching should be suspended. Note: Can not co-exist with Dispatching which is used to suspend all.

<a name="SuspendClusters"></a>

*SuspendClusters represents a group of clusters that should be suspended from propagating. Note: No plan to introduce the label selector or field selector to select clusters yet, as it would make the system unpredictable.*

- **spec.suspension.dispatchingOnClusters.clusterNames** ([]string)

ClusterNames is the list of clusters to be selected.

## ClusterPropagationPolicyList

ClusterPropagationPolicyList contains a list of ClusterPropagationPolicy.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ OverridePolicy represents the policy that overrides a group of resources to one

Operator represents the operator which will apply on the workload.

- **spec.overrideRules.overriders.annotationsOverrider.value** (map[string]string)
- **spec.overrideRules.overriders.annotationsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -167,7 +167,7 @@ OverridePolicy represents the policy that overrides a group of resources to one

Operator represents the operator which will apply on the workload.

- **spec.overrideRules.overriders.labelsOverrider.value** (map[string]string)
- **spec.overrideRules.overriders.labelsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -251,7 +251,7 @@ OverridePolicy represents the policy that overrides a group of resources to one

Operator represents the operator which will apply on the workload.

- **spec.overriders.annotationsOverrider.value** (map[string]string)
- **spec.overriders.annotationsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down Expand Up @@ -350,7 +350,7 @@ OverridePolicy represents the policy that overrides a group of resources to one

Operator represents the operator which will apply on the workload.

- **spec.overriders.labelsOverrider.value** (map[string]string)
- **spec.overriders.labelsOverrider.value** (map[string]string), required

Value to be applied to annotations/labels of workload. Items in Value which will be appended after annotations/labels when Operator is 'add'. Items in Value which match in annotations/labels will be deleted when Operator is 'remove'. Items in Value which match in annotations/labels will be replaced when Operator is 'replace'.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,30 @@ PropagationPolicy represents the policy that propagates a group of resources to

SchedulerName represents which scheduler to proceed the scheduling. If specified, the policy will be dispatched by specified scheduler. If not specified, the policy will be dispatched by default scheduler.

- **spec.suspension** (Suspension)

Suspension declares the policy for suspending different aspects of propagation. nil means no suspension. no default values.

<a name="Suspension"></a>

*Suspension defines the policy for suspending different aspects of propagation.*

- **spec.suspension.dispatching** (boolean)

Dispatching controls whether dispatching should be suspended. nil means not suspend, no default value, only accepts 'true'. Note: true means stop propagating to all clusters. Can not co-exist with DispatchingOnClusters which is used to suspend particular clusters.

- **spec.suspension.dispatchingOnClusters** (SuspendClusters)

DispatchingOnClusters declares a list of clusters to which the dispatching should be suspended. Note: Can not co-exist with Dispatching which is used to suspend all.

<a name="SuspendClusters"></a>

*SuspendClusters represents a group of clusters that should be suspended from propagating. Note: No plan to introduce the label selector or field selector to select clusters yet, as it would make the system unpredictable.*

- **spec.suspension.dispatchingOnClusters.clusterNames** ([]string)

ClusterNames is the list of clusters to be selected.

## PropagationPolicyList

PropagationPolicyList contains a list of PropagationPolicy.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ ResourceRegistrySpec defines the desired state of ResourceRegistry.

Addresses is a list of node endpoint(e.g. 'https://localhost:9200') to use. For the 'node' concept, please refer to: https://opensearch.org/docs/latest/opensearch/index/#clusters-and-nodes

- **backendStore.openSearch.secretRef** (LocalSecretReference)
- **backendStore.openSearch.secretRef** (LocalSecretReference), required

SecretRef represents the secret contains mandatory credentials to access the server. The secret should hold credentials as follows: - secret.data.userName - secret.data.password

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,8 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

- **replicaRequirements.nodeClaim.hardNodeAffinity.nodeSelectorTerms** ([]NodeSelectorTerm), required

*Atomic: will be replaced during a merge*

Required. A list of node selector terms. The terms are ORed.

<a name="NodeSelectorTerm"></a>
Expand All @@ -455,10 +457,14 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

- **replicaRequirements.nodeClaim.hardNodeAffinity.nodeSelectorTerms.matchExpressions** ([][NodeSelectorRequirement](../common-definitions/node-selector-requirement#nodeselectorrequirement))

*Atomic: will be replaced during a merge*

A list of node selector requirements by node's labels.

- **replicaRequirements.nodeClaim.hardNodeAffinity.nodeSelectorTerms.matchFields** ([][NodeSelectorRequirement](../common-definitions/node-selector-requirement#nodeselectorrequirement))

*Atomic: will be replaced during a merge*

A list of node selector requirements by node's fields.

- **replicaRequirements.nodeClaim.nodeSelector** (map[string]string)
Expand Down Expand Up @@ -560,6 +566,30 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

SchedulerName represents which scheduler to proceed the scheduling. It inherits directly from the associated PropagationPolicy(or ClusterPropagationPolicy).

- **suspension** (Suspension)

Suspension declares the policy for suspending different aspects of propagation. nil means no suspension. no default values.

<a name="Suspension"></a>

*Suspension defines the policy for suspending different aspects of propagation.*

- **suspension.dispatching** (boolean)

Dispatching controls whether dispatching should be suspended. nil means not suspend, no default value, only accepts 'true'. Note: true means stop propagating to all clusters. Can not co-exist with DispatchingOnClusters which is used to suspend particular clusters.

- **suspension.dispatchingOnClusters** (SuspendClusters)

DispatchingOnClusters declares a list of clusters to which the dispatching should be suspended. Note: Can not co-exist with Dispatching which is used to suspend all.

<a name="SuspendClusters"></a>

*SuspendClusters represents a group of clusters that should be suspended from propagating. Note: No plan to introduce the label selector or field selector to select clusters yet, as it would make the system unpredictable.*

- **suspension.dispatchingOnClusters.clusterNames** ([]string)

ClusterNames is the list of clusters to be selected.

## ResourceBindingStatus

ResourceBindingStatus represents the overall status of the strategy as well as the referenced resources.
Expand Down
4 changes: 4 additions & 0 deletions docs/reference/karmada-api/work-resources/work-v1alpha1.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ WorkSpec defines the desired state of Work.

<hr/>

- **suspendDispatching** (boolean)

SuspendDispatching controls whether dispatching should be suspended, nil means not suspend. Note: true means stop propagating to all clusters.

- **workload** (WorkloadTemplate)

Workload represents the manifest workload to be deployed on managed cluster.
Expand Down