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.12 #746

Merged
merged 1 commit into from
Nov 30, 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
32 changes: 16 additions & 16 deletions docs/reference/karmada-api/cluster-resources/cluster-v1alpha1.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ api_metadata:
import: "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
kind: "Cluster"
content_type: "api_reference"
description: "Cluster represents the desire state and status of a member cluster."
description: "Cluster represents the desired state and status of a member cluster."
title: "Cluster v1alpha1"
weight: 1
auto_generated: true
Expand All @@ -20,7 +20,7 @@ auto_generated: true

## Cluster

Cluster represents the desire state and status of a member cluster.
Cluster represents the desired state and status of a member cluster.

<hr/>

Expand All @@ -46,15 +46,15 @@ ClusterSpec defines the desired state of a member cluster.

- **syncMode** (string), required

SyncMode describes how a cluster sync resources from karmada control plane.
SyncMode describes how a cluster syncs resources from karmada control plane.

- **apiEndpoint** (string)

The API endpoint of the member cluster. This can be a hostname, hostname:port, IP or IP:port.

- **id** (string)

ID is the unique identifier for the cluster. It is different from the object uid(.metadata.uid) and typically collected automatically from member cluster during the progress of registration.
ID is the unique identifier for the cluster. It is different from the object uid(.metadata.uid) and is typically collected automatically from each member cluster during the process of registration.

The value is collected in order: 1. If the registering cluster enabled ClusterProperty API and defined the cluster ID by
creating a ClusterProperty object with name 'cluster.clusterset.k8s.io', Karmada would
Expand All @@ -66,15 +66,15 @@ ClusterSpec defines the desired state of a member cluster.

- **impersonatorSecretRef** (LocalSecretReference)

ImpersonatorSecretRef represents the secret contains the token of impersonator. The secret should hold credentials as follows: - secret.data.token
ImpersonatorSecretRef represents the secret that contains the token of impersonator. The secret should hold credentials as follows: - secret.data.token

<a name="LocalSecretReference"></a>

*LocalSecretReference is a reference to a secret within the enclosing namespace.*

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

Name is the name of resource being referenced.
Name is the name of the resource being referenced.

- **impersonatorSecretRef.namespace** (string), required

Expand All @@ -90,15 +90,15 @@ ClusterSpec defines the desired state of a member cluster.

- **proxyHeader** (map[string]string)

ProxyHeader is the HTTP header required by proxy server. The key in the key-value pair is HTTP header key and value is the associated header payloads. For the header with multiple values, the values should be separated by comma(e.g. 'k1': 'v1,v2,v3').
ProxyHeader is the HTTP header required by proxy server. The key in the key-value pair is HTTP header key and the value is the associated header payloads. For the header with multiple values, the values should be separated by comma(e.g. 'k1': 'v1,v2,v3').

- **proxyURL** (string)

ProxyURL is the proxy URL for the cluster. If not empty, the karmada control plane will use this proxy to talk to the cluster. More details please refer to: https://github.com/kubernetes/client-go/issues/351
ProxyURL is the proxy URL for the cluster. If not empty, the karmada control plane will use this proxy to talk to the cluster. For more details please refer to: https://github.com/kubernetes/client-go/issues/351

- **region** (string)

Region represents the region of the member cluster locate in.
Region represents the region in which the member cluster is located.

- **resourceModels** ([]ResourceModel)

Expand Down Expand Up @@ -161,7 +161,7 @@ ClusterSpec defines the desired state of a member cluster.

<a name="ResourceModelRange"></a>

*ResourceModelRange describes the detail of each modeling quota that ranges from min to max. Please pay attention, by default, the value of min can be inclusive, and the value of max cannot be inclusive. E.g. in an interval, min = 2, max =10 is set, which means the interval [2,10). This rule ensure that all intervals have the same meaning. If the last interval is infinite, it is definitely unreachable. Therefore, we define the right interval as the open interval. For a valid interval, the value on the right is greater than the value on the left, in other words, max must be greater than min. It is strongly recommended that the [Min, Max) of all ResourceModelRanges can make a continuous interval.*
*ResourceModelRange describes the detail of each modeling quota that ranges from min to max. Please pay attention, by default, the value of min can be inclusive, and the value of max cannot be inclusive. E.g. in an interval, min = 2, max = 10 is set, which means the interval [2,10). This rule ensures that all intervals have the same meaning. If the last interval is infinite, it is definitely unreachable. Therefore, we define the right interval as the open interval. For a valid interval, the value on the right is greater than the value on the left, in other words, max must be greater than min. It is strongly recommended that the [Min, Max) of all ResourceModelRanges can make a continuous interval.*

- **resourceModels.ranges.max** ([Quantity](../common-definitions/quantity#quantity)), required

Expand All @@ -177,23 +177,23 @@ ClusterSpec defines the desired state of a member cluster.

- **secretRef** (LocalSecretReference)

SecretRef represents the secret contains mandatory credentials to access the member cluster. The secret should hold credentials as follows: - secret.data.token - secret.data.caBundle
SecretRef represents the secret that contains mandatory credentials to access the member cluster. The secret should hold credentials as follows: - secret.data.token - secret.data.caBundle

<a name="LocalSecretReference"></a>

*LocalSecretReference is a reference to a secret within the enclosing namespace.*

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

Name is the name of resource being referenced.
Name is the name of the resource being referenced.

- **secretRef.namespace** (string), required

Namespace is the namespace for the resource being referenced.

- **taints** ([]Taint)

Taints attached to the member cluster. Taints on the cluster have the "effect" on any resource that does not tolerate the Taint.
Taints are attached to the member cluster. Taints on the cluster have the "effect" on any resource that does not tolerate the Taint.

<a name="Taint"></a>

Expand Down Expand Up @@ -226,7 +226,7 @@ ClusterSpec defines the desired state of a member cluster.

- **zone** (string)

Zone represents the zone of the member cluster locate in. Deprecated: This filed was never been used by Karmada, and it will not be removed from v1alpha1 for backward compatibility, use Zones instead.
Zone represents the zone in which the member cluster is located. Deprecated: This field was never been used by Karmada, and it will not be removed from v1alpha1 for backward compatibility, use Zones instead.

- **zones** ([]string)

Expand All @@ -240,7 +240,7 @@ ClusterStatus contains information about the current status of a cluster updated

- **apiEnablements** ([]APIEnablement)

APIEnablements represents the list of APIs installed in the member cluster.
APIEnablements represents the list of APIs installed on the member cluster.

<a name="APIEnablement"></a>

Expand Down Expand Up @@ -364,7 +364,7 @@ ClusterStatus contains information about the current status of a cluster updated

## ClusterList

ClusterList contains a list of member cluster
ClusterList contains a list of member clusters

<hr/>

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: 11
weight: 12
auto_generated: true
---

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

*Overriders offers various alternatives to represent the override rules.

If more than one alternative exists, they will be applied with following order: - ImageOverrider - CommandOverrider - ArgsOverrider - LabelsOverrider - AnnotationsOverrider - Plaintext*
If more than one alternative exists, they will be applied with following order: - ImageOverrider - CommandOverrider - ArgsOverrider - LabelsOverrider - AnnotationsOverrider - FieldOverrider - Plaintext*

- **spec.overrideRules.overriders.annotationsOverrider** ([]LabelAnnotationOverrider)

Expand Down Expand Up @@ -112,6 +112,66 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Value to be applied to command/args. Items in Value which will be appended after command/args when Operator is 'add'. Items in Value which match in command/args will be deleted when Operator is 'remove'. If Value is empty, then the command/args will remain the same.

- **spec.overrideRules.overriders.fieldOverrider** ([]FieldOverrider)

FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.

<a name="FieldOverrider"></a>

*FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future. Note: In any given instance, FieldOverrider processes either JSON or YAML fields, but not both simultaneously.*

- **spec.overrideRules.overriders.fieldOverrider.fieldPath** (string), required

FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path "/data/db-config.yaml" specifies the configuration data key named "db-config.yaml" in a ConfigMap: "/data/db-config.yaml".

- **spec.overrideRules.overriders.fieldOverrider.json** ([]JSONPatchOperation)

JSON represents the operations performed on the JSON document specified by the FieldPath.

<a name="JSONPatchOperation"></a>

*JSONPatchOperation represents a single field modification operation for JSON format.*

- **spec.overrideRules.overriders.fieldOverrider.json.operator** (string), required

Operator indicates the operation on target field. Available operators are: "add", "remove", and "replace".

- **spec.overrideRules.overriders.fieldOverrider.json.subPath** (string), required

SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.

- **spec.overrideRules.overriders.fieldOverrider.json.value** (JSON)

Value is the new value to set for the specified field if the operation is "add" or "replace". For "remove" operation, this field is ignored.

<a name="JSON"></a>

*JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface[], map[string]interface[] and nil.*

- **spec.overrideRules.overriders.fieldOverrider.yaml** ([]YAMLPatchOperation)

YAML represents the operations performed on the YAML document specified by the FieldPath.

<a name="YAMLPatchOperation"></a>

*YAMLPatchOperation represents a single field modification operation for YAML format.*

- **spec.overrideRules.overriders.fieldOverrider.yaml.operator** (string), required

Operator indicates the operation on target field. Available operators are: "add", "remove", and "replace".

- **spec.overrideRules.overriders.fieldOverrider.yaml.subPath** (string), required

SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.

- **spec.overrideRules.overriders.fieldOverrider.yaml.value** (JSON)

Value is the new value to set for the specified field if the operation is "add" or "replace". For "remove" operation, this field is ignored.

<a name="JSON"></a>

*JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface[], map[string]interface[] and nil.*

- **spec.overrideRules.overriders.imageOverrider** ([]ImageOverrider)

ImageOverrider represents the rules dedicated to handling image overrides.
Expand Down Expand Up @@ -237,7 +297,7 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

*Overriders offers various alternatives to represent the override rules.

If more than one alternative exists, they will be applied with following order: - ImageOverrider - CommandOverrider - ArgsOverrider - LabelsOverrider - AnnotationsOverrider - Plaintext*
If more than one alternative exists, they will be applied with following order: - ImageOverrider - CommandOverrider - ArgsOverrider - LabelsOverrider - AnnotationsOverrider - FieldOverrider - Plaintext*

- **spec.overriders.annotationsOverrider** ([]LabelAnnotationOverrider)

Expand Down Expand Up @@ -295,6 +355,66 @@ ClusterOverridePolicy represents the cluster-wide policy that overrides a group

Value to be applied to command/args. Items in Value which will be appended after command/args when Operator is 'add'. Items in Value which match in command/args will be deleted when Operator is 'remove'. If Value is empty, then the command/args will remain the same.

- **spec.overriders.fieldOverrider** ([]FieldOverrider)

FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.

<a name="FieldOverrider"></a>

*FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future. Note: In any given instance, FieldOverrider processes either JSON or YAML fields, but not both simultaneously.*

- **spec.overriders.fieldOverrider.fieldPath** (string), required

FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path "/data/db-config.yaml" specifies the configuration data key named "db-config.yaml" in a ConfigMap: "/data/db-config.yaml".

- **spec.overriders.fieldOverrider.json** ([]JSONPatchOperation)

JSON represents the operations performed on the JSON document specified by the FieldPath.

<a name="JSONPatchOperation"></a>

*JSONPatchOperation represents a single field modification operation for JSON format.*

- **spec.overriders.fieldOverrider.json.operator** (string), required

Operator indicates the operation on target field. Available operators are: "add", "remove", and "replace".

- **spec.overriders.fieldOverrider.json.subPath** (string), required

SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.

- **spec.overriders.fieldOverrider.json.value** (JSON)

Value is the new value to set for the specified field if the operation is "add" or "replace". For "remove" operation, this field is ignored.

<a name="JSON"></a>

*JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface[], map[string]interface[] and nil.*

- **spec.overriders.fieldOverrider.yaml** ([]YAMLPatchOperation)

YAML represents the operations performed on the YAML document specified by the FieldPath.

<a name="YAMLPatchOperation"></a>

*YAMLPatchOperation represents a single field modification operation for YAML format.*

- **spec.overriders.fieldOverrider.yaml.operator** (string), required

Operator indicates the operation on target field. Available operators are: "add", "remove", and "replace".

- **spec.overriders.fieldOverrider.yaml.subPath** (string), required

SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.

- **spec.overriders.fieldOverrider.yaml.value** (JSON)

Value is the new value to set for the specified field if the operation is "add" or "replace". For "remove" operation, this field is ignored.

<a name="JSON"></a>

*JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface[], map[string]interface[] and nil.*

- **spec.overriders.imageOverrider** ([]ImageOverrider)

ImageOverrider represents the rules dedicated to handling image overrides.
Expand Down
Loading