Skip to content

Commit

Permalink
add Karmada API Document for v1.9
Browse files Browse the repository at this point in the history
Signed-off-by: chaosi-zju <[email protected]>
  • Loading branch information
chaosi-zju committed Mar 6, 2024
1 parent 828997b commit 4ac0f31
Show file tree
Hide file tree
Showing 21 changed files with 1,242 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,10 @@ ClusterStatus contains information about the current status of a cluster updated

TotalNum is the total number of nodes in the cluster.

- **remedyActions** ([]string)

RemedyActions represents the remedy actions that needs to be performed on the cluster.

- **resourceSummary** (ResourceSummary)

ResourceSummary represents the summary of resources in the member cluster.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ A label selector is a label query over a set of resources. The result of matchLa

- **matchExpressions.key** (string), required

*Patch strategy: merge on key `key`*

key is the label key that the selector applies to.

- **matchExpressions.operator** (string), required
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/karmada-api/common-definitions/quantity.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ auto_generated: true

`import "k8s.io/apimachinery/pkg/api/resource"`

Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshalling in JSON and YAML, in addition to String() and AsInt64() accessors.
Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.

The serialization format is:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ api_metadata:
content_type: "api_reference"
description: ""
title: "Common Parameters"
weight: 9
weight: 10
auto_generated: true
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,67 +202,89 @@ MultiClusterIngress is a collection of rules that allow inbound connections to r

secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the "Host" header is used for routing.

- **status** (IngressStatus)
- **status** ([MultiClusterIngressStatus](../networking-resources/multi-cluster-ingress-v1alpha1#multiclusteringressstatus))

Status is the current state of the MultiClusterIngress.

<a name="IngressStatus"></a>
## MultiClusterIngressStatus

*IngressStatus describe the current state of the Ingress.*
MultiClusterIngressStatus is the current state of the MultiClusterIngress.

- **status.loadBalancer** (IngressLoadBalancerStatus)
<hr/>

loadBalancer contains the current status of the load-balancer.
- **loadBalancer** (IngressLoadBalancerStatus)

<a name="IngressLoadBalancerStatus"></a>
loadBalancer contains the current status of the load-balancer.

*IngressLoadBalancerStatus represents the status of a load-balancer.*
<a name="IngressLoadBalancerStatus"></a>

- **status.loadBalancer.ingress** ([]IngressLoadBalancerIngress)
*IngressLoadBalancerStatus represents the status of a load-balancer.*

ingress is a list containing ingress points for the load-balancer.
- **loadBalancer.ingress** ([]IngressLoadBalancerIngress)

<a name="IngressLoadBalancerIngress"></a>
ingress is a list containing ingress points for the load-balancer.

*IngressLoadBalancerIngress represents the status of a load-balancer ingress point.*
<a name="IngressLoadBalancerIngress"></a>

- **status.loadBalancer.ingress.hostname** (string)
*IngressLoadBalancerIngress represents the status of a load-balancer ingress point.*

hostname is set for load-balancer ingress points that are DNS based.
- **loadBalancer.ingress.hostname** (string)

- **status.loadBalancer.ingress.ip** (string)
hostname is set for load-balancer ingress points that are DNS based.

ip is set for load-balancer ingress points that are IP based.
- **loadBalancer.ingress.ip** (string)

- **status.loadBalancer.ingress.ports** ([]IngressPortStatus)
ip is set for load-balancer ingress points that are IP based.

*Atomic: will be replaced during a merge*
- **loadBalancer.ingress.ports** ([]IngressPortStatus)

*Atomic: will be replaced during a merge*

ports provides information about the ports exposed by this LoadBalancer.

<a name="IngressPortStatus"></a>

*IngressPortStatus represents the error condition of a service port*

- **loadBalancer.ingress.ports.port** (int32), required

port is the port number of the ingress port.

- **loadBalancer.ingress.ports.protocol** (string), required

protocol is the protocol of the ingress port. The supported values are: "TCP", "UDP", "SCTP"

ports provides information about the ports exposed by this LoadBalancer.
Possible enum values:
- `"SCTP"` is the SCTP protocol.
- `"TCP"` is the TCP protocol.
- `"UDP"` is the UDP protocol.

<a name="IngressPortStatus"></a>
- **loadBalancer.ingress.ports.error** (string)

*IngressPortStatus represents the error condition of a service port*
error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use
CamelCase names
- cloud provider specific error values must have names that comply with the
format foo.example.com/CamelCase.

- **status.loadBalancer.ingress.ports.port** (int32), required
- **serviceLocations** ([]ServiceLocation)

port is the port number of the ingress port.
ServiceLocations records the locations of MulticlusterIngress's backend Service resources. It will be set by the system controller.

- **status.loadBalancer.ingress.ports.protocol** (string), required
<a name="ServiceLocation"></a>

protocol is the protocol of the ingress port. The supported values are: "TCP", "UDP", "SCTP"

Possible enum values:
- `"SCTP"` is the SCTP protocol.
- `"TCP"` is the TCP protocol.
- `"UDP"` is the UDP protocol.
*ServiceLocation records the locations of MulticlusterIngress's backend Service resources.*

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

name is the referenced service. The service must exist in the same namespace as the MultiClusterService object.

- **serviceLocations.clusters** ([]string)

Clusters records the cluster list where the Service is located.

- **status.loadBalancer.ingress.ports.error** (string)
- **trafficBlockClusters** ([]string)

error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use
CamelCase names
- cloud provider specific error values must have names that comply with the
format foo.example.com/CamelCase.
TrafficBlockClusters records the cluster name list that needs to perform traffic block. When the cloud provider implements its multicluster-cloud-provider and refreshes the service backend address to the LoadBalancer Service, it needs to filter out the backend addresses in these clusters.

## MultiClusterIngressList

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,18 @@ MultiClusterServiceSpec is the desired state of the MultiClusterService.

Types specifies how to expose the service referencing by this MultiClusterService.

- **consumerClusters** ([]ClusterSelector)

ConsumerClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters.

<a name="ClusterSelector"></a>

*ClusterSelector specifies the cluster to be selected.*

- **consumerClusters.name** (string)

Name is the name of the cluster to be selected.

- **ports** ([]ExposurePort)

Ports is the list of ports that are exposed by this MultiClusterService. No specified port will be filtered out during the service exposure and discovery process. All ports in the referencing service will be exposed by default.
Expand All @@ -162,9 +174,21 @@ MultiClusterServiceSpec is the desired state of the MultiClusterService.

Name is the name of the port that needs to be exposed within the service. The port name must be the same as that defined in the service.

- **providerClusters** ([]ClusterSelector)

ProviderClusters specifies the clusters which will provide the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ConsumerClusters.

<a name="ClusterSelector"></a>

*ClusterSelector specifies the cluster to be selected.*

- **providerClusters.name** (string)

Name is the name of the cluster to be selected.

- **range** (ExposureRange)

Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ServiceProvisionClusters/ServiceConsumptionClusters.
Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.

<a name="ExposureRange"></a>

Expand All @@ -176,11 +200,11 @@ MultiClusterServiceSpec is the desired state of the MultiClusterService.

- **serviceConsumptionClusters** ([]string)

ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters.
ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.

- **serviceProvisionClusters** ([]string)

ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters.
ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.

## MultiClusterServiceList

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

Namespace of the target resource. Default is empty, which means inherit from the parent object scope.

- **spec.activationPreference** (string)

ActivationPreference indicates how the referencing resource template will be propagated, in case of policy changes.

If empty, the resource template will respond to policy changes immediately, in other words, any policy changes will drive the resource template to be propagated immediately as per the current propagation rules.

If the value is 'Lazy' means the policy changes will not take effect for now but defer to the resource template changes, in other words, the resource template will not be propagated as per the current propagation rules until there is an update on it. This is an experimental feature that might help in a scenario where a policy manages huge amount of resource templates, changes to a policy typically affect numerous applications simultaneously. A minor misconfiguration could lead to widespread failures. With this feature, the change can be gradually rolled out through iterative modifications of resource templates.

- **spec.association** (boolean)

Association tells if relevant resources should be selected automatically. e.g. a ConfigMap referred by a Deployment. default false. Deprecated: in favor of PropagateDeps.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ PropagationPolicy represents the policy that propagates a group of resources to

Namespace of the target resource. Default is empty, which means inherit from the parent object scope.

- **spec.activationPreference** (string)

ActivationPreference indicates how the referencing resource template will be propagated, in case of policy changes.

If empty, the resource template will respond to policy changes immediately, in other words, any policy changes will drive the resource template to be propagated immediately as per the current propagation rules.

If the value is 'Lazy' means the policy changes will not take effect for now but defer to the resource template changes, in other words, the resource template will not be propagated as per the current propagation rules until there is an update on it. This is an experimental feature that might help in a scenario where a policy manages huge amount of resource templates, changes to a policy typically affect numerous applications simultaneously. A minor misconfiguration could lead to widespread failures. With this feature, the change can be gradually rolled out through iterative modifications of resource templates.

- **spec.association** (boolean)

Association tells if relevant resources should be selected automatically. e.g. a ConfigMap referred by a Deployment. default false. Deprecated: in favor of PropagateDeps.
Expand Down
Loading

0 comments on commit 4ac0f31

Please sign in to comment.