diff --git a/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1.md b/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1.md
index f1dbf0dd..3d708d25 100644
--- a/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1.md
+++ b/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1.md
@@ -37,9 +37,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `type` _[AgentType](#agenttype)_ | Type of the member agent. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member agent. | | |
-| `lastReceivedHeartbeat` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | Last time we received a heartbeat from the member agent. | | |
+| `type` _[AgentType](#agenttype)_ | Type of the member agent. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member agent. | | Optional: \{\}
|
+| `lastReceivedHeartbeat` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | Last time we received a heartbeat from the member agent. | | Optional: \{\}
|
#### AgentType
@@ -97,8 +97,8 @@ _Appears in:_
| `apiVersion` _string_ | `cluster.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `InternalMemberCluster` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[InternalMemberClusterSpec](#internalmemberclusterspec)_ | The desired state of InternalMemberCluster. | | |
-| `status` _[InternalMemberClusterStatus](#internalmemberclusterstatus)_ | The observed status of InternalMemberCluster. | | |
+| `spec` _[InternalMemberClusterSpec](#internalmemberclusterspec)_ | The desired state of InternalMemberCluster. | | Required: \{\}
|
+| `status` _[InternalMemberClusterStatus](#internalmemberclusterstatus)_ | The observed status of InternalMemberCluster. | | Optional: \{\}
|
#### InternalMemberClusterList
@@ -132,8 +132,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `state` _[ClusterState](#clusterstate)_ | The desired state of the member cluster. Possible values: Join, Leave. | | |
-| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
|
+| `state` _[ClusterState](#clusterstate)_ | The desired state of the member cluster. Possible values: Join, Leave. | | Required: \{\}
|
+| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
Optional: \{\}
|
#### InternalMemberClusterStatus
@@ -149,10 +149,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | |
-| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is populated by the member agent. | | |
-| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | Optional: \{\}
|
+| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is populated by the member agent. | | Optional: \{\}
|
+| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | Optional: \{\}
|
#### MemberCluster
@@ -171,8 +171,8 @@ _Appears in:_
| `apiVersion` _string_ | `cluster.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `MemberCluster` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[MemberClusterSpec](#memberclusterspec)_ | The desired state of MemberCluster. | | |
-| `status` _[MemberClusterStatus](#memberclusterstatus)_ | The observed status of MemberCluster. | | |
+| `spec` _[MemberClusterSpec](#memberclusterspec)_ | The desired state of MemberCluster. | | Required: \{\}
|
+| `status` _[MemberClusterStatus](#memberclusterstatus)_ | The observed status of MemberCluster. | | Optional: \{\}
|
@@ -208,9 +208,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `identity` _[Subject](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#subject-v1-rbac)_ | The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster. | | |
-| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
|
-| `taints` _[Taint](#taint) array_ | If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
|
+| `identity` _[Subject](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#subject-v1-rbac)_ | The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster. | | Required: \{\}
|
+| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
Optional: \{\}
|
+| `taints` _[Taint](#taint) array_ | If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
Optional: \{\}
|
#### MemberClusterStatus
@@ -226,10 +226,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | |
-| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is copied from the corresponding InternalMemberCluster object. | | |
-| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | Optional: \{\}
|
+| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is copied from the corresponding InternalMemberCluster object. | | Optional: \{\}
|
+| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | Optional: \{\}
|
#### PropertyName
@@ -273,8 +273,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `value` _string_ | Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity. | | |
-| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is when the cluster property is observed. | | |
+| `value` _string_ | Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity. | | Required: \{\}
|
+| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is when the cluster property is observed. | | Required: \{\}
|
#### ResourceUsage
@@ -291,10 +291,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `capacity` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node. | | |
-| `allocatable` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/. | | |
-| `available` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | When the resource usage is observed. | | |
+| `capacity` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node. | | Optional: \{\}
|
+| `allocatable` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/. | | Optional: \{\}
|
+| `available` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | When the resource usage is observed. | | Optional: \{\}
|
#### Taint
@@ -311,8 +311,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `key` _string_ | The taint key to be applied to a MemberCluster. | | |
-| `value` _string_ | The taint value corresponding to the taint key. | | |
-| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported. | | Enum: [NoSchedule]
|
+| `key` _string_ | The taint key to be applied to a MemberCluster. | | Required: \{\}
|
+| `value` _string_ | The taint value corresponding to the taint key. | | Optional: \{\}
|
+| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported. | | Enum: [NoSchedule]
Required: \{\}
|
diff --git a/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1beta1.md b/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1beta1.md
index c74123ae..e1317d6e 100644
--- a/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1beta1.md
+++ b/content/en/docs/api-reference/cluster.kubernetes-fleet.io/v1beta1.md
@@ -37,9 +37,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `type` _[AgentType](#agenttype)_ | Type of the member agent. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member agent. | | |
-| `lastReceivedHeartbeat` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | Last time we received a heartbeat from the member agent. | | |
+| `type` _[AgentType](#agenttype)_ | Type of the member agent. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member agent. | | Optional: \{\}
|
+| `lastReceivedHeartbeat` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | Last time we received a heartbeat from the member agent. | | Optional: \{\}
|
#### AgentType
@@ -126,8 +126,8 @@ _Appears in:_
| `apiVersion` _string_ | `cluster.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `InternalMemberCluster` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[InternalMemberClusterSpec](#internalmemberclusterspec)_ | The desired state of InternalMemberCluster. | | |
-| `status` _[InternalMemberClusterStatus](#internalmemberclusterstatus)_ | The observed status of InternalMemberCluster. | | |
+| `spec` _[InternalMemberClusterSpec](#internalmemberclusterspec)_ | The desired state of InternalMemberCluster. | | Required: \{\}
|
+| `status` _[InternalMemberClusterStatus](#internalmemberclusterstatus)_ | The observed status of InternalMemberCluster. | | Optional: \{\}
|
#### InternalMemberClusterList
@@ -161,8 +161,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `state` _[ClusterState](#clusterstate)_ | The desired state of the member cluster. Possible values: Join, Leave. | | |
-| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
|
+| `state` _[ClusterState](#clusterstate)_ | The desired state of the member cluster. Possible values: Join, Leave. | | Required: \{\}
|
+| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
Optional: \{\}
|
#### InternalMemberClusterStatus
@@ -178,10 +178,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | |
-| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is populated by the member agent. | | |
-| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | Optional: \{\}
|
+| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is populated by the member agent. | | Optional: \{\}
|
+| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | Optional: \{\}
|
#### MemberCluster
@@ -200,8 +200,8 @@ _Appears in:_
| `apiVersion` _string_ | `cluster.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `MemberCluster` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[MemberClusterSpec](#memberclusterspec)_ | The desired state of MemberCluster. | | |
-| `status` _[MemberClusterStatus](#memberclusterstatus)_ | The observed status of MemberCluster. | | |
+| `spec` _[MemberClusterSpec](#memberclusterspec)_ | The desired state of MemberCluster. | | Required: \{\}
|
+| `status` _[MemberClusterStatus](#memberclusterstatus)_ | The observed status of MemberCluster. | | Optional: \{\}
|
@@ -237,10 +237,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `identity` _[Subject](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#subject-v1-rbac)_ | The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster. | | |
-| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
|
-| `taints` _[Taint](#taint) array_ | If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
|
-| `deleteOptions` _[DeleteOptions](#deleteoptions)_ | DeleteOptions for deleting the MemberCluster. | | |
+| `identity` _[Subject](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#subject-v1-rbac)_ | The identity used by the member cluster to access the hub cluster.
The hub agents deployed on the hub cluster will automatically grant the minimal required permissions to this identity for the member agents deployed on the member cluster to access the hub cluster. | | Required: \{\}
|
+| `heartbeatPeriodSeconds` _integer_ | How often (in seconds) for the member cluster to send a heartbeat to the hub cluster. Default: 60 seconds. Min: 1 second. Max: 10 minutes. | 60 | Maximum: 600
Minimum: 1
Optional: \{\}
|
+| `taints` _[Taint](#taint) array_ | If specified, the MemberCluster's taints.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
Optional: \{\}
|
+| `deleteOptions` _[DeleteOptions](#deleteoptions)_ | DeleteOptions for deleting the MemberCluster. | | Optional: \{\}
|
#### MemberClusterStatus
@@ -256,10 +256,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | |
-| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is copied from the corresponding InternalMemberCluster object. | | |
-| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for the member cluster. | | Optional: \{\}
|
+| `properties` _object (keys:[PropertyName](#propertyname), values:[PropertyValue](#propertyvalue))_ | Properties is an array of properties observed for the member cluster.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `resourceUsage` _[ResourceUsage](#resourceusage)_ | The current observed resource usage of the member cluster. It is copied from the corresponding InternalMemberCluster object. | | Optional: \{\}
|
+| `agentStatus` _[AgentStatus](#agentstatus) array_ | AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster. | | Optional: \{\}
|
#### PropertyName
@@ -290,8 +290,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `value` _string_ | Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity. | | |
-| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is when the cluster property is observed. | | |
+| `value` _string_ | Value is the value of the cluster property.
Currently, it should be a valid Kubernetes quantity.
For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity. | | Required: \{\}
|
+| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is when the cluster property is observed. | | Required: \{\}
|
#### ResourceUsage
@@ -308,10 +308,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `capacity` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node. | | |
-| `allocatable` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/. | | |
-| `available` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | |
-| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | When the resource usage is observed. | | |
+| `capacity` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Capacity represents the total resource capacity of all the nodes on a member cluster.
A node's total capacity is the amount of resource installed on the node. | | Optional: \{\}
|
+| `allocatable` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Allocatable represents the total allocatable resources of all the nodes on a member cluster.
A node's allocatable capacity is the amount of resource that can actually be used
for user workloads, i.e.,
allocatable capacity = total capacity - capacities reserved for the OS, kubelet, etc.
For more information, see
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/. | | Optional: \{\}
|
+| `available` _[ResourceList](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#resourcelist-v1-core)_ | Available represents the total available resources of all the nodes on a member cluster.
A node's available capacity is the amount of resource that has not been used yet, i.e.,
available capacity = allocatable capacity - capacity that has been requested by workloads.
This field is beta-level; it is for the property-based scheduling feature and is only
populated when a property provider is enabled in the deployment. | | Optional: \{\}
|
+| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | When the resource usage is observed. | | Optional: \{\}
|
#### Taint
@@ -328,8 +328,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `key` _string_ | The taint key to be applied to a MemberCluster. | | |
-| `value` _string_ | The taint value corresponding to the taint key. | | |
-| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported. | | Enum: [NoSchedule]
|
+| `key` _string_ | The taint key to be applied to a MemberCluster. | | Required: \{\}
|
+| `value` _string_ | The taint value corresponding to the taint key. | | Optional: \{\}
|
+| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | The effect of the taint on ClusterResourcePlacements that do not tolerate the taint.
Only NoSchedule is supported. | | Enum: [NoSchedule]
Required: \{\}
|
diff --git a/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1.md b/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1.md
index d20e4b4d..e32fa939 100644
--- a/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1.md
+++ b/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1.md
@@ -42,7 +42,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterAffinity` _[ClusterAffinity](#clusteraffinity)_ | ClusterAffinity contains cluster affinity scheduling rules for the selected resources. | | |
+| `clusterAffinity` _[ClusterAffinity](#clusteraffinity)_ | ClusterAffinity contains cluster affinity scheduling rules for the selected resources. | | Optional: \{\}
|
#### AppliedResourceMeta
@@ -66,7 +66,7 @@ _Appears in:_
| `resource` _string_ | Resource is the resource type of the resource | | |
| `namespace` _string_ | Namespace is the namespace of the resource, the resource is cluster scoped if the value
is empty | | |
| `name` _string_ | Name is the name of the resource | | |
-| `uid` _[UID](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#uid-types-pkg)_ | UID is set on successful deletion of the Kubernetes resource by controller. The
resource might be still visible on the managed cluster after this field is set.
It is not directly settable by a client. | | |
+| `uid` _[UID](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#uid-types-pkg)_ | UID is set on successful deletion of the Kubernetes resource by controller. The
resource might be still visible on the managed cluster after this field is set.
It is not directly settable by a client. | | Optional: \{\}
|
#### AppliedWork
@@ -92,8 +92,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `AppliedWork` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[AppliedWorkSpec](#appliedworkspec)_ | Spec represents the desired configuration of AppliedWork. | | Required: \{\}
|
-| `status` _[AppliedWorkStatus](#appliedworkstatus)_ | Status represents the current status of AppliedWork. | | |
+| `spec` _[AppliedWorkSpec](#appliedworkspec)_ | Spec represents the desired configuration of AppliedWork. | | Required: \{\}
Required: \{\}
|
+| `status` _[AppliedWorkStatus](#appliedworkstatus)_ | Status represents the current status of AppliedWork. | | Optional: \{\}
|
#### AppliedWorkList
@@ -110,7 +110,7 @@ AppliedWorkList contains a list of AppliedWork.
| --- | --- | --- | --- |
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `AppliedWorkList` | | |
-| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
|
| `items` _[AppliedWork](#appliedwork) array_ | List of works. | | |
@@ -127,8 +127,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `workName` _string_ | WorkName represents the name of the related work on the hub. | | Required: \{\}
|
-| `workNamespace` _string_ | WorkNamespace represents the namespace of the related work on the hub. | | Required: \{\}
|
+| `workName` _string_ | WorkName represents the name of the related work on the hub. | | Required: \{\}
Required: \{\}
|
+| `workNamespace` _string_ | WorkNamespace represents the namespace of the related work on the hub. | | Required: \{\}
Required: \{\}
|
#### AppliedWorkStatus
@@ -144,7 +144,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `appliedResources` _[AppliedResourceMeta](#appliedresourcemeta) array_ | AppliedResources represents a list of resources defined within the Work that are applied.
Only resources with valid GroupVersionResource, namespace, and name are suitable.
An item in this slice is deleted when there is no mapped manifest in Work.Spec or by finalizer.
The resource relating to the item will also be removed from managed cluster.
The deleted resource may still be present until the finalizers for that resource are finished.
However, the resource will not be undeleted, so it can be removed from this list and eventual consistency is preserved. | | |
+| `appliedResources` _[AppliedResourceMeta](#appliedresourcemeta) array_ | AppliedResources represents a list of resources defined within the Work that are applied.
Only resources with valid GroupVersionResource, namespace, and name are suitable.
An item in this slice is deleted when there is no mapped manifest in Work.Spec or by finalizer.
The resource relating to the item will also be removed from managed cluster.
The deleted resource may still be present until the finalizers for that resource are finished.
However, the resource will not be undeleted, so it can be removed from this list and eventual consistency is preserved. | | Optional: \{\}
|
#### ApplyStrategy
@@ -169,7 +169,7 @@ _Appears in:_
| `whenToApply` _[WhenToApplyType](#whentoapplytype)_ | WhenToApply controls when Fleet would apply the manifests on the hub cluster to the member
clusters.
Available options are:
* Always: with this option, Fleet will periodically apply hub cluster manifests
on the member cluster side; this will effectively overwrite any change in the fields
managed by Fleet (i.e., specified in the hub cluster manifest). This is the default
option.
Note that this option would revert any ad-hoc changes made on the member cluster side in the
managed fields; if you would like to make temporary edits on the member cluster side
in the managed fields, switch to IfNotDrifted option. Note that changes in unmanaged
fields will be left alone; if you use the FullDiff compare option, such changes will
be reported as drifts.
* IfNotDrifted: with this option, Fleet will stop applying hub cluster manifests on
clusters that have drifted from the desired state; apply ops would still continue on
the rest of the clusters. Drifts are calculated using the ComparisonOption,
as explained in the corresponding field.
Use this option if you would like Fleet to detect drifts in your multi-cluster setup.
A drift occurs when an agent makes an ad-hoc change on the member cluster side that
makes affected resources deviate from its desired state as kept in the hub cluster;
and this option grants you an opportunity to view the drift details and take actions
accordingly. The drift details will be reported in the CRP status.
To fix a drift, you may:
* revert the changes manually on the member cluster side
* update the hub cluster manifest; this will trigger Fleet to apply the latest revision
of the manifests, which will overwrite the drifted fields
(if they are managed by Fleet)
* switch to the Always option; this will trigger Fleet to apply the current revision
of the manifests, which will overwrite the drifted fields (if they are managed by Fleet).
* if applicable and necessary, delete the drifted resources on the member cluster side; Fleet
will attempt to re-create them using the hub cluster manifests | Always | Enum: [Always IfNotDrifted]
Optional: \{\}
|
| `type` _[ApplyStrategyType](#applystrategytype)_ | Type is the apply strategy to use; it determines how Fleet applies manifests from the
hub cluster to a member cluster.
Available options are:
* ClientSideApply: Fleet uses three-way merge to apply manifests, similar to how kubectl
performs a client-side apply. This is the default option.
Note that this strategy requires that Fleet keep the last applied configuration in the
annotation of an applied resource. If the object gets so large that apply ops can no longer
be executed, Fleet will switch to server-side apply.
Use ComparisonOption and WhenToApply settings to control when an apply op can be executed.
* ServerSideApply: Fleet uses server-side apply to apply manifests; Fleet itself will
become the field manager for specified fields in the manifests. Specify
ServerSideApplyConfig as appropriate if you would like Fleet to take over field
ownership upon conflicts. This is the recommended option for most scenarios; it might
help reduce object size and safely resolve conflicts between field values. For more
information, please refer to the Kubernetes documentation
(https://kubernetes.io/docs/reference/using-api/server-side-apply/#comparison-with-client-side-apply).
Use ComparisonOption and WhenToApply settings to control when an apply op can be executed.
* ReportDiff: Fleet will compare the desired state of a resource as kept in the hub cluster
with its current state (if applicable) on the member cluster side, and report any
differences. No actual apply ops would be executed, and resources will be left alone as they
are on the member clusters.
If configuration differences are found on a resource, Fleet will consider this as an apply
error, which might block rollout depending on the specified rollout strategy.
Use ComparisonOption setting to control how the difference is calculated.
ClientSideApply and ServerSideApply apply strategies only work when Fleet can assume
ownership of a resource (e.g., the resource is created by Fleet, or Fleet has taken over
the resource). See the comments on the WhenToTakeOver field for more information.
ReportDiff apply strategy, however, will function regardless of Fleet's ownership
status. One may set up a CRP with the ReportDiff strategy and the Never takeover option,
and this will turn Fleet into a detection tool that reports only configuration differences
but do not touch any resources on the member cluster side.
For a comparison between the different strategies and usage examples, refer to the
Fleet documentation. | ClientSideApply | Enum: [ClientSideApply ServerSideApply ReportDiff]
Optional: \{\}
|
| `allowCoOwnership` _boolean_ | AllowCoOwnership controls whether co-ownership between Fleet and other agents are allowed
on a Fleet-managed resource. If set to false, Fleet will refuse to apply manifests to
a resource that has been owned by one or more non-Fleet agents.
Note that Fleet does not support the case where one resource is being placed multiple
times by different CRPs on the same member cluster. An apply error will be returned if
Fleet finds that a resource has been owned by another placement attempt by Fleet, even
with the AllowCoOwnership setting set to true. | | |
-| `serverSideApplyConfig` _[ServerSideApplyConfig](#serversideapplyconfig)_ | ServerSideApplyConfig defines the configuration for server side apply. It is honored only when type is ServerSideApply. | | |
+| `serverSideApplyConfig` _[ServerSideApplyConfig](#serversideapplyconfig)_ | ServerSideApplyConfig defines the configuration for server side apply. It is honored only when type is ServerSideApply. | | Optional: \{\}
|
| `whenToTakeOver` _[WhenToTakeOverType](#whentotakeovertype)_ | WhenToTakeOver determines the action to take when Fleet applies resources to a member
cluster for the first time and finds out that the resource already exists in the cluster.
This setting is most relevant in cases where you would like Fleet to manage pre-existing
resources on a member cluster.
Available options include:
* Always: with this action, Fleet will apply the hub cluster manifests to the member
clusters even if the affected resources already exist. This is the default action.
Note that this might lead to fields being overwritten on the member clusters, if they
are specified in the hub cluster manifests.
* IfNoDiff: with this action, Fleet will apply the hub cluster manifests to the member
clusters if (and only if) pre-existing resources look the same as the hub cluster manifests.
This is a safer option as pre-existing resources that are inconsistent with the hub cluster
manifests will not be overwritten; Fleet will ignore them until the inconsistencies
are resolved properly: any change you make to the hub cluster manifests would not be
applied, and if you delete the manifests or even the ClusterResourcePlacement itself
from the hub cluster, these pre-existing resources would not be taken away.
Fleet will check for inconsistencies in accordance with the ComparisonOption setting. See also
the comments on the ComparisonOption field for more information.
If a diff has been found in a field that is **managed** by Fleet (i.e., the field
**is specified ** in the hub cluster manifest), consider one of the following actions:
* set the field in the member cluster to be of the same value as that in the hub cluster
manifest.
* update the hub cluster manifest so that its field value matches with that in the member
cluster.
* switch to the Always action, which will allow Fleet to overwrite the field with the
value in the hub cluster manifest.
If a diff has been found in a field that is **not managed** by Fleet (i.e., the field
**is not specified** in the hub cluster manifest), consider one of the following actions:
* remove the field from the member cluster.
* update the hub cluster manifest so that the field is included in the hub cluster manifest.
If appropriate, you may also delete the object from the member cluster; Fleet will recreate
it using the hub cluster manifest.
* Never: with this action, Fleet will not apply a hub cluster manifest to the member
clusters if there is a corresponding pre-existing resource. However, if a manifest
has never been applied yet; or it has a corresponding resource which Fleet has assumed
ownership, apply op will still be executed.
This is the safest option; one will have to remove the pre-existing resources (so that
Fleet can re-create them) or switch to a different
WhenToTakeOver option before Fleet starts processing the corresponding hub cluster
manifests.
If you prefer Fleet stop processing all manifests, use this option along with the
ReportDiff apply strategy type. This setup would instruct Fleet to touch nothing
on the member cluster side but still report configuration differences between the
hub cluster and member clusters. Fleet will not give up ownership
that it has already assumed though. | Always | Enum: [Always IfNoDiff Never]
Optional: \{\}
|
@@ -222,8 +222,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `requiredDuringSchedulingIgnoredDuringExecution` _[ClusterSelector](#clusterselector)_ | If the affinity requirements specified by this field are not met at
scheduling time, the resource will not be scheduled onto the cluster.
If the affinity requirements specified by this field cease to be met
at some point after the placement (e.g. due to an update), the system
may or may not try to eventually remove the resource from the cluster. | | |
-| `preferredDuringSchedulingIgnoredDuringExecution` _[PreferredClusterSelector](#preferredclusterselector) array_ | The scheduler computes a score for each cluster at schedule time by iterating
through the elements of this field and adding "weight" to the sum if the cluster
matches the corresponding matchExpression. The scheduler then chooses the first
`N` clusters with the highest sum to satisfy the placement.
This field is ignored if the placement type is "PickAll".
If the cluster score changes at some point after the placement (e.g. due to an update),
the system may or may not try to eventually move the resource from a cluster with a lower score
to a cluster with higher score. | | |
+| `requiredDuringSchedulingIgnoredDuringExecution` _[ClusterSelector](#clusterselector)_ | If the affinity requirements specified by this field are not met at
scheduling time, the resource will not be scheduled onto the cluster.
If the affinity requirements specified by this field cease to be met
at some point after the placement (e.g. due to an update), the system
may or may not try to eventually remove the resource from the cluster. | | Optional: \{\}
|
+| `preferredDuringSchedulingIgnoredDuringExecution` _[PreferredClusterSelector](#preferredclusterselector) array_ | The scheduler computes a score for each cluster at schedule time by iterating
through the elements of this field and adding "weight" to the sum if the cluster
matches the corresponding matchExpression. The scheduler then chooses the first
`N` clusters with the highest sum to satisfy the placement.
This field is ignored if the placement type is "PickAll".
If the cluster score changes at some point after the placement (e.g. due to an update),
the system may or may not try to eventually move the resource from a cluster with a lower score
to a cluster with higher score. | | Optional: \{\}
|
#### ClusterDecision
@@ -241,10 +241,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterName` _string_ | ClusterName is the name of the ManagedCluster. If it is not empty, its value should be unique cross all
placement decisions for the Placement. | | Required: \{\}
|
-| `selected` _boolean_ | Selected indicates if this cluster is selected by the scheduler. | | |
-| `clusterScore` _[ClusterScore](#clusterscore)_ | ClusterScore represents the score of the cluster calculated by the scheduler. | | |
-| `reason` _string_ | Reason represents the reason why the cluster is selected or not. | | |
+| `clusterName` _string_ | ClusterName is the name of the ManagedCluster. If it is not empty, its value should be unique cross all
placement decisions for the Placement. | | Required: \{\}
Required: \{\}
|
+| `selected` _boolean_ | Selected indicates if this cluster is selected by the scheduler. | | Required: \{\}
|
+| `clusterScore` _[ClusterScore](#clusterscore)_ | ClusterScore represents the score of the cluster calculated by the scheduler. | | Optional: \{\}
|
+| `reason` _string_ | Reason represents the reason why the cluster is selected or not. | | Required: \{\}
|
#### ClusterResourceBinding
@@ -264,8 +264,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterResourceBinding` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ClusterResourceBinding. | | |
-| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ClusterResourceBinding. | | |
+| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ClusterResourceBinding. | | Required: \{\}
|
+| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ClusterResourceBinding. | | Optional: \{\}
|
@@ -287,7 +287,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterResourceOverride` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | The desired state of ClusterResourceOverrideSpec. | | |
+| `spec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | The desired state of ClusterResourceOverrideSpec. | | Required: \{\}
|
@@ -315,7 +315,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterResourceOverrideSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ClusterResourceOverrideSnapshotSpec](#clusterresourceoverridesnapshotspec)_ | The desired state of ClusterResourceOverrideSnapshotSpec. | | |
+| `spec` _[ClusterResourceOverrideSnapshotSpec](#clusterresourceoverridesnapshotspec)_ | The desired state of ClusterResourceOverrideSnapshotSpec. | | Required: \{\}
|
@@ -334,7 +334,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `overrideSpec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | OverrideSpec stores the spec of ClusterResourceOverride. | | |
-| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | |
+| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | Required: \{\}
|
#### ClusterResourceOverrideSpec
@@ -354,9 +354,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | |
-| `clusterResourceSelectors` _[ClusterResourceSelector](#clusterresourceselector) array_ | ClusterResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
If a namespace is selected, ALL the resources under the namespace are selected automatically.
LabelSelector is not supported.
You can have 1-20 selectors.
We only support Name selector for now. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
-| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | |
+| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | Optional: \{\}
|
+| `clusterResourceSelectors` _[ClusterResourceSelector](#clusterresourceselector) array_ | ClusterResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
If a namespace is selected, ALL the resources under the namespace are selected automatically.
LabelSelector is not supported.
You can have 1-20 selectors.
We only support Name selector for now. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
+| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | Required: \{\}
|
#### ClusterResourcePlacement
@@ -386,8 +386,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterResourcePlacement` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ClusterResourcePlacementSpec](#clusterresourceplacementspec)_ | The desired state of ClusterResourcePlacement. | | |
-| `status` _[ClusterResourcePlacementStatus](#clusterresourceplacementstatus)_ | The observed status of ClusterResourcePlacement. | | |
+| `spec` _[ClusterResourcePlacementSpec](#clusterresourceplacementspec)_ | The desired state of ClusterResourcePlacement. | | Required: \{\}
|
+| `status` _[ClusterResourcePlacementStatus](#clusterresourceplacementstatus)_ | The observed status of ClusterResourcePlacement. | | Optional: \{\}
|
@@ -407,10 +407,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `resourceSelectors` _[ClusterResourceSelector](#clusterresourceselector) array_ | ResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
You can have 1-100 selectors. | | MaxItems: 100
MinItems: 1
|
-| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | |
-| `strategy` _[RolloutStrategy](#rolloutstrategy)_ | The rollout strategy to use to replace existing placement with new ones. | | |
-| `revisionHistoryLimit` _integer_ | The number of old ClusterSchedulingPolicySnapshot or ClusterResourceSnapshot resources to retain to allow rollback.
This is a pointer to distinguish between explicit zero and not specified.
Defaults to 10. | 10 | Maximum: 1000
Minimum: 1
|
+| `resourceSelectors` _[ClusterResourceSelector](#clusterresourceselector) array_ | ResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
You can have 1-100 selectors. | | MaxItems: 100
MinItems: 1
Required: \{\}
|
+| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | Optional: \{\}
|
+| `strategy` _[RolloutStrategy](#rolloutstrategy)_ | The rollout strategy to use to replace existing placement with new ones. | | Optional: \{\}
|
+| `revisionHistoryLimit` _integer_ | The number of old ClusterSchedulingPolicySnapshot or ClusterResourceSnapshot resources to retain to allow rollback.
This is a pointer to distinguish between explicit zero and not specified.
Defaults to 10. | 10 | Maximum: 1000
Minimum: 1
Optional: \{\}
|
#### ClusterResourcePlacementStatus
@@ -426,10 +426,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `selectedResources` _[ResourceIdentifier](#resourceidentifier) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | |
-| `observedResourceIndex` _string_ | Resource index logically represents the generation of the selected resources.
We take a new snapshot of the selected resources whenever the selection or their content change.
Each snapshot has a different resource index.
One resource snapshot can contain multiple clusterResourceSnapshots CRs in order to store large amount of resources.
To get clusterResourceSnapshot of a given resource index, use the following command:
`kubectl get ClusterResourceSnapshot --selector=kubernetes-fleet.io/resource-index=$ObservedResourceIndex `
ObservedResourceIndex is the resource index that the conditions in the ClusterResourcePlacementStatus observe.
For example, a condition of `ClusterResourcePlacementWorkSynchronized` type
is observing the synchronization status of the resource snapshot with the resource index $ObservedResourceIndex. | | |
-| `placementStatuses` _[ResourcePlacementStatus](#resourceplacementstatus) array_ | PlacementStatuses contains a list of placement status on the clusters that are selected by PlacementPolicy.
Each selected cluster according to the latest resource placement is guaranteed to have a corresponding placementStatuses.
In the pickN case, there are N placement statuses where N = NumberOfClusters; Or in the pickFixed case, there are
N placement statuses where N = ClusterNames.
In these cases, some of them may not have assigned clusters when we cannot fill the required number of clusters. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourcePlacement. | | |
+| `selectedResources` _[ResourceIdentifier](#resourceidentifier) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | Optional: \{\}
|
+| `observedResourceIndex` _string_ | Resource index logically represents the generation of the selected resources.
We take a new snapshot of the selected resources whenever the selection or their content change.
Each snapshot has a different resource index.
One resource snapshot can contain multiple clusterResourceSnapshots CRs in order to store large amount of resources.
To get clusterResourceSnapshot of a given resource index, use the following command:
`kubectl get ClusterResourceSnapshot --selector=kubernetes-fleet.io/resource-index=$ObservedResourceIndex `
ObservedResourceIndex is the resource index that the conditions in the ClusterResourcePlacementStatus observe.
For example, a condition of `ClusterResourcePlacementWorkSynchronized` type
is observing the synchronization status of the resource snapshot with the resource index $ObservedResourceIndex. | | Optional: \{\}
|
+| `placementStatuses` _[ResourcePlacementStatus](#resourceplacementstatus) array_ | PlacementStatuses contains a list of placement status on the clusters that are selected by PlacementPolicy.
Each selected cluster according to the latest resource placement is guaranteed to have a corresponding placementStatuses.
In the pickN case, there are N placement statuses where N = NumberOfClusters; Or in the pickFixed case, there are
N placement statuses where N = ClusterNames.
In these cases, some of them may not have assigned clusters when we cannot fill the required number of clusters. | | Optional: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourcePlacement. | | Optional: \{\}
|
#### ClusterResourceSelector
@@ -448,11 +448,11 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group name of the cluster-scoped resource.
Use an empty string to select resources under the core API group (e.g., namespaces). | | |
-| `version` _string_ | Version of the cluster-scoped resource. | | |
-| `kind` _string_ | Kind of the cluster-scoped resource.
Note: When `Kind` is `namespace`, ALL the resources under the selected namespaces are selected. | | |
-| `name` _string_ | Name of the cluster-scoped resource. | | |
-| `labelSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#labelselector-v1-meta)_ | A label query over all the cluster-scoped resources. Resources matching the query are selected.
Note that namespace-scoped resources can't be selected even if they match the query. | | |
+| `group` _string_ | Group name of the cluster-scoped resource.
Use an empty string to select resources under the core API group (e.g., namespaces). | | Required: \{\}
|
+| `version` _string_ | Version of the cluster-scoped resource. | | Required: \{\}
|
+| `kind` _string_ | Kind of the cluster-scoped resource.
Note: When `Kind` is `namespace`, ALL the resources under the selected namespaces are selected. | | Required: \{\}
|
+| `name` _string_ | Name of the cluster-scoped resource. | | Optional: \{\}
|
+| `labelSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#labelselector-v1-meta)_ | A label query over all the cluster-scoped resources. Resources matching the query are selected.
Note that namespace-scoped resources can't be selected even if they match the query. | | Optional: \{\}
|
#### ClusterResourceSnapshot
@@ -495,8 +495,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterResourceSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | |
-| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | |
+| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | Required: \{\}
|
+| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | Optional: \{\}
|
@@ -524,8 +524,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ClusterSchedulingPolicySnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | |
-| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | |
+| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | Required: \{\}
|
+| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | Optional: \{\}
|
@@ -543,8 +543,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `affinityScore` _integer_ | AffinityScore represents the affinity score of the cluster calculated by the last
scheduling decision based on the preferred affinity selector.
An affinity score may not present if the cluster does not meet the required affinity. | | |
-| `priorityScore` _integer_ | TopologySpreadScore represents the priority score of the cluster calculated by the last
scheduling decision based on the topology spread applied to the cluster.
A priority score may not present if the cluster does not meet the topology spread. | | |
+| `affinityScore` _integer_ | AffinityScore represents the affinity score of the cluster calculated by the last
scheduling decision based on the preferred affinity selector.
An affinity score may not present if the cluster does not meet the required affinity. | | Optional: \{\}
|
+| `priorityScore` _integer_ | TopologySpreadScore represents the priority score of the cluster calculated by the last
scheduling decision based on the topology spread applied to the cluster.
A priority score may not present if the cluster does not meet the topology spread. | | Optional: \{\}
|
#### ClusterSelector
@@ -561,7 +561,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterSelectorTerms` _[ClusterSelectorTerm](#clusterselectorterm) array_ | ClusterSelectorTerms is a list of cluster selector terms. The terms are `ORed`. | | MaxItems: 10
|
+| `clusterSelectorTerms` _[ClusterSelectorTerm](#clusterselectorterm) array_ | ClusterSelectorTerms is a list of cluster selector terms. The terms are `ORed`. | | MaxItems: 10
Required: \{\}
|
#### ClusterSelectorTerm
@@ -628,12 +628,12 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group is the group name of the selected resource. | | |
-| `version` _string_ | Version is the version of the selected resource. | | |
-| `kind` _string_ | Kind represents the Kind of the selected resources. | | |
-| `name` _string_ | Name of the target resource. | | |
-| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | |
-| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | |
+| `group` _string_ | Group is the group name of the selected resource. | | Optional: \{\}
|
+| `version` _string_ | Version is the version of the selected resource. | | Required: \{\}
|
+| `kind` _string_ | Kind represents the Kind of the selected resources. | | Required: \{\}
|
+| `name` _string_ | Name of the target resource. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | Optional: \{\}
|
+| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | Optional: \{\}
|
| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is the time when we observe the configuration differences for the resource. | | Format: date-time
Required: \{\}
Type: string
|
| `targetClusterObservedGeneration` _integer_ | TargetClusterObservedGeneration is the generation of the resource on the target cluster
that contains the configuration differences.
This might be nil if the resource has not been created yet on the target cluster. | | Optional: \{\}
|
| `firstDiffedObservedTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | FirstDiffedObservedTime is the first time the resource on the target cluster is
observed to have configuration differences. | | Format: date-time
Required: \{\}
Type: string
|
@@ -673,12 +673,12 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group is the group name of the selected resource. | | |
-| `version` _string_ | Version is the version of the selected resource. | | |
-| `kind` _string_ | Kind represents the Kind of the selected resources. | | |
-| `name` _string_ | Name of the target resource. | | |
-| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | |
-| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | |
+| `group` _string_ | Group is the group name of the selected resource. | | Optional: \{\}
|
+| `version` _string_ | Version is the version of the selected resource. | | Required: \{\}
|
+| `kind` _string_ | Kind represents the Kind of the selected resources. | | Required: \{\}
|
+| `name` _string_ | Name of the target resource. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | Optional: \{\}
|
+| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | Optional: \{\}
|
| `observationTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | ObservationTime is the time when we observe the configuration drifts for the resource. | | Format: date-time
Required: \{\}
Type: string
|
| `targetClusterObservedGeneration` _integer_ | TargetClusterObservedGeneration is the generation of the resource on the target cluster
that contains the configuration drifts. | | Required: \{\}
|
| `firstDriftedObservedTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | FirstDriftedObservedTime is the first time the resource on the target cluster is
observed to have configuration drifts. | | Format: date-time
Required: \{\}
Type: string
|
@@ -701,9 +701,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `name` _string_ | Name of the envelope object. | | |
-| `namespace` _string_ | Namespace is the namespace of the envelope object. Empty if the envelope object is cluster scoped. | | |
-| `type` _[EnvelopeType](#envelopetype)_ | Type of the envelope object. | ConfigMap | Enum: [ConfigMap]
|
+| `name` _string_ | Name of the envelope object. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is the namespace of the envelope object. Empty if the envelope object is cluster scoped. | | Optional: \{\}
|
+| `type` _[EnvelopeType](#envelopetype)_ | Type of the envelope object. | ConfigMap | Enum: [ConfigMap]
Optional: \{\}
|
#### EnvelopeType
@@ -736,13 +736,13 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group is the group name of the selected resource. | | |
-| `version` _string_ | Version is the version of the selected resource. | | |
-| `kind` _string_ | Kind represents the Kind of the selected resources. | | |
-| `name` _string_ | Name of the target resource. | | |
-| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | |
-| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | |
-| `condition` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta)_ | The failed condition status. | | |
+| `group` _string_ | Group is the group name of the selected resource. | | Optional: \{\}
|
+| `version` _string_ | Version is the version of the selected resource. | | Required: \{\}
|
+| `kind` _string_ | Kind represents the Kind of the selected resources. | | Required: \{\}
|
+| `name` _string_ | Name of the target resource. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | Optional: \{\}
|
+| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | Optional: \{\}
|
+| `condition` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta)_ | The failed condition status. | | Required: \{\}
|
#### JSONPatchOverride
@@ -758,9 +758,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `op` _[JSONPatchOverrideOperator](#jsonpatchoverrideoperator)_ | Operator defines the operation on the target field. | | Enum: [add remove replace]
|
-| `path` _string_ | Path defines the target location.
Note: override will fail if the resource path does not exist. | | |
-| `value` _[JSON](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#json-v1-apiextensions-k8s-io)_ | Value defines the content to be applied on the target location.
Value should be empty when operator is `remove`.
We have reserved a few variables in this field that will be replaced by the actual values.
Those variables all start with `$` and are case sensitive.
Here is the list of currently supported variables:
`$\{MEMBER-CLUSTER-NAME\}`: this will be replaced by the name of the memberCluster CR that represents this cluster. | | |
+| `op` _[JSONPatchOverrideOperator](#jsonpatchoverrideoperator)_ | Operator defines the operation on the target field. | | Enum: [add remove replace]
Required: \{\}
|
+| `path` _string_ | Path defines the target location.
Note: override will fail if the resource path does not exist. | | Required: \{\}
|
+| `value` _[JSON](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#json-v1-apiextensions-k8s-io)_ | Value defines the content to be applied on the target location.
Value should be empty when operator is `remove`.
We have reserved a few variables in this field that will be replaced by the actual values.
Those variables all start with `$` and are case sensitive.
Here is the list of currently supported variables:
`$\{MEMBER-CLUSTER-NAME\}`: this will be replaced by the name of the memberCluster CR that represents this cluster. | | Optional: \{\}
|
#### JSONPatchOverrideOperator
@@ -808,8 +808,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `identifier` _[WorkResourceIdentifier](#workresourceidentifier)_ | resourceId represents a identity of a resource linking to manifests in spec. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions represents the conditions of this resource on spoke cluster | | |
+| `identifier` _[WorkResourceIdentifier](#workresourceidentifier)_ | resourceId represents a identity of a resource linking to manifests in spec. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions represents the conditions of this resource on spoke cluster | | Required: \{\}
|
| `driftDetails` _[DriftDetails](#driftdetails)_ | DriftDetails explains about the observed configuration drifts.
Fleet might truncate the details as appropriate to control object size.
Note that configuration drifts can only occur on a resource if it is currently owned by
Fleet and its corresponding placement is set to use the ClientSideApply or ServerSideApply
apply strategy. In other words, DriftDetails and DiffDetails will not be populated
at the same time. | | Optional: \{\}
|
| `diffDetails` _[DiffDetails](#diffdetails)_ | DiffDetails explains the details about the observed configuration differences.
Fleet might truncate the details as appropriate to control object size.
Note that configuration differences can only occur on a resource if it is not currently owned
by Fleet (i.e., it is a pre-existing resource that needs to be taken over), or if its
corresponding placement is set to use the ReportDiff apply strategy. In other words,
DiffDetails and DriftDetails will not be populated at the same time. | | Optional: \{\}
|
@@ -828,8 +828,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `name` _string_ | Name is the name of the namespaced scope resource. | | |
-| `namespace` _string_ | Namespace is namespace of the namespaced scope resource. | | |
+| `name` _string_ | Name is the name of the namespaced scope resource. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is namespace of the namespaced scope resource. | | Required: \{\}
|
#### OverridePolicy
@@ -847,7 +847,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `overrideRules` _[OverrideRule](#overriderule) array_ | OverrideRules defines an array of override rules to be applied on the selected resources.
The order of the rules determines the override order.
When there are two rules selecting the same fields on the target cluster, the last one will win.
You can have 1-20 rules. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
+| `overrideRules` _[OverrideRule](#overriderule) array_ | OverrideRules defines an array of override rules to be applied on the selected resources.
The order of the rules determines the override order.
When there are two rules selecting the same fields on the target cluster, the last one will win.
You can have 1-20 rules. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
#### OverrideRule
@@ -863,9 +863,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterSelector` _[ClusterSelector](#clusterselector)_ | ClusterSelectors selects the target clusters.
The resources will be overridden before applying to the matching clusters.
An empty clusterSelector selects ALL the member clusters.
A nil clusterSelector selects NO member clusters.
For now, only labelSelector is supported. | | |
-| `overrideType` _[OverrideType](#overridetype)_ | OverrideType defines the type of the override rules. | JSONPatch | Enum: [JSONPatch Delete]
|
-| `jsonPatchOverrides` _[JSONPatchOverride](#jsonpatchoverride) array_ | JSONPatchOverrides defines a list of JSON patch override rules.
This field is only allowed when OverrideType is JSONPatch. | | MaxItems: 20
MinItems: 1
|
+| `clusterSelector` _[ClusterSelector](#clusterselector)_ | ClusterSelectors selects the target clusters.
The resources will be overridden before applying to the matching clusters.
An empty clusterSelector selects ALL the member clusters.
A nil clusterSelector selects NO member clusters.
For now, only labelSelector is supported. | | Optional: \{\}
|
+| `overrideType` _[OverrideType](#overridetype)_ | OverrideType defines the type of the override rules. | JSONPatch | Enum: [JSONPatch Delete]
Optional: \{\}
|
+| `jsonPatchOverrides` _[JSONPatchOverride](#jsonpatchoverride) array_ | JSONPatchOverrides defines a list of JSON patch override rules.
This field is only allowed when OverrideType is JSONPatch. | | MaxItems: 20
MinItems: 1
Optional: \{\}
|
#### OverrideType
@@ -927,12 +927,12 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `placementType` _[PlacementType](#placementtype)_ | Type of placement. Can be "PickAll", "PickN" or "PickFixed". Default is PickAll. | PickAll | Enum: [PickAll PickN PickFixed]
|
-| `clusterNames` _string array_ | ClusterNames contains a list of names of MemberCluster to place the selected resources.
Only valid if the placement type is "PickFixed" | | MaxItems: 100
|
-| `numberOfClusters` _integer_ | NumberOfClusters of placement. Only valid if the placement type is "PickN". | | Minimum: 0
|
-| `affinity` _[Affinity](#affinity)_ | Affinity contains cluster affinity scheduling rules. Defines which member clusters to place the selected resources.
Only valid if the placement type is "PickAll" or "PickN". | | |
-| `topologySpreadConstraints` _[TopologySpreadConstraint](#topologyspreadconstraint) array_ | TopologySpreadConstraints describes how a group of resources ought to spread across multiple topology
domains. Scheduler will schedule resources in a way which abides by the constraints.
All topologySpreadConstraints are ANDed.
Only valid if the placement type is "PickN". | | |
-| `tolerations` _[Toleration](#toleration) array_ | If specified, the ClusterResourcePlacement's Tolerations.
Tolerations cannot be updated or deleted.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
|
+| `placementType` _[PlacementType](#placementtype)_ | Type of placement. Can be "PickAll", "PickN" or "PickFixed". Default is PickAll. | PickAll | Enum: [PickAll PickN PickFixed]
Optional: \{\}
|
+| `clusterNames` _string array_ | ClusterNames contains a list of names of MemberCluster to place the selected resources.
Only valid if the placement type is "PickFixed" | | MaxItems: 100
Optional: \{\}
|
+| `numberOfClusters` _integer_ | NumberOfClusters of placement. Only valid if the placement type is "PickN". | | Minimum: 0
Optional: \{\}
|
+| `affinity` _[Affinity](#affinity)_ | Affinity contains cluster affinity scheduling rules. Defines which member clusters to place the selected resources.
Only valid if the placement type is "PickAll" or "PickN". | | Optional: \{\}
|
+| `topologySpreadConstraints` _[TopologySpreadConstraint](#topologyspreadconstraint) array_ | TopologySpreadConstraints describes how a group of resources ought to spread across multiple topology
domains. Scheduler will schedule resources in a way which abides by the constraints.
All topologySpreadConstraints are ANDed.
Only valid if the placement type is "PickN". | | Optional: \{\}
|
+| `tolerations` _[Toleration](#toleration) array_ | If specified, the ClusterResourcePlacement's Tolerations.
Tolerations cannot be updated or deleted.
This field is beta-level and is for the taints and tolerations feature. | | MaxItems: 100
Optional: \{\}
|
#### PlacementRef
@@ -950,8 +950,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `name` _string_ | | | |
-| `scope` _[ResourceScope](#resourcescope)_ | Scope defines the scope of the placement.
A clusterResourceOverride can only reference a clusterResourcePlacement (cluster-scoped),
and a resourceOverride can reference either a clusterResourcePlacement or resourcePlacement (namespaced).
The referenced resourcePlacement must be in the same namespace as the resourceOverride. | Cluster | Enum: [Cluster Namespaced]
|
+| `name` _string_ | | | Required: \{\}
|
+| `scope` _[ResourceScope](#resourcescope)_ | Scope defines the scope of the placement.
A clusterResourceOverride can only reference a clusterResourcePlacement (cluster-scoped),
and a resourceOverride can reference either a clusterResourcePlacement or resourcePlacement (namespaced).
The referenced resourcePlacement must be in the same namespace as the resourceOverride. | Cluster | Enum: [Cluster Namespaced]
Optional: \{\}
|
#### PlacementType
@@ -985,8 +985,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `weight` _integer_ | Weight associated with matching the corresponding clusterSelectorTerm, in the range [-100, 100]. | | Maximum: 100
Minimum: -100
|
-| `preference` _[ClusterSelectorTerm](#clusterselectorterm)_ | A cluster selector term, associated with the corresponding weight. | | |
+| `weight` _integer_ | Weight associated with matching the corresponding clusterSelectorTerm, in the range [-100, 100]. | | Maximum: 100
Minimum: -100
Required: \{\}
|
+| `preference` _[ClusterSelectorTerm](#clusterselectorterm)_ | A cluster selector term, associated with the corresponding weight. | | Required: \{\}
|
@@ -1026,9 +1026,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `name` _string_ | Name is the name of the property; it should be a Kubernetes label name. | | |
-| `operator` _[PropertySelectorOperator](#propertyselectoroperator)_ | Operator specifies the relationship between a cluster's observed value of the specified
property and the values given in the requirement. | | |
-| `values` _string array_ | Values are a list of values of the specified property which Fleet will compare against
the observed values of individual member clusters in accordance with the given
operator.
At this moment, each value should be a Kubernetes quantity. For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity.
If the operator is Gt (greater than), Ge (greater than or equal to), Lt (less than),
or `Le` (less than or equal to), Eq (equal to), or Ne (ne), exactly one value must be
specified in the list. | | MaxItems: 1
|
+| `name` _string_ | Name is the name of the property; it should be a Kubernetes label name. | | Required: \{\}
|
+| `operator` _[PropertySelectorOperator](#propertyselectoroperator)_ | Operator specifies the relationship between a cluster's observed value of the specified
property and the values given in the requirement. | | Required: \{\}
|
+| `values` _string array_ | Values are a list of values of the specified property which Fleet will compare against
the observed values of individual member clusters in accordance with the given
operator.
At this moment, each value should be a Kubernetes quantity. For more information, see
https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity.
If the operator is Gt (greater than), Ge (greater than or equal to), Lt (less than),
or `Le` (less than or equal to), Eq (equal to), or Ne (ne), exactly one value must be
specified in the list. | | MaxItems: 1
Required: \{\}
|
#### PropertySortOrder
@@ -1065,14 +1065,14 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `state` _[BindingState](#bindingstate)_ | The desired state of the binding. Possible values: Scheduled, Bound, Unscheduled. | | |
+| `state` _[BindingState](#bindingstate)_ | The desired state of the binding. Possible values: Scheduled, Bound, Unscheduled. | | Required: \{\}
|
| `resourceSnapshotName` _string_ | ResourceSnapshotName is the name of the resource snapshot that this resource binding points to.
If the resources are divided into multiple snapshots because of the resource size limit,
it points to the name of the leading snapshot of the index group. | | |
| `resourceOverrideSnapshots` _[NamespacedName](#namespacedname) array_ | ResourceOverrideSnapshots is a list of ResourceOverride snapshots associated with the selected resources. | | |
| `clusterResourceOverrideSnapshots` _string array_ | ClusterResourceOverrides contains a list of applicable ClusterResourceOverride snapshot names associated with the
selected resources. | | |
| `schedulingPolicySnapshotName` _string_ | SchedulingPolicySnapshotName is the name of the scheduling policy snapshot that this resource binding
points to; more specifically, the scheduler creates this bindings in accordance with this
scheduling policy snapshot. | | |
| `targetCluster` _string_ | TargetCluster is the name of the cluster that the scheduler assigns the resources to. | | |
| `clusterDecision` _[ClusterDecision](#clusterdecision)_ | ClusterDecision explains why the scheduler selected this cluster. | | |
-| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | |
+| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | Optional: \{\}
|
#### ResourceBindingStatus
@@ -1088,10 +1088,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100. | | MaxItems: 100
|
+| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100. | | MaxItems: 100
Optional: \{\}
|
| `driftedPlacements` _[DriftedResourcePlacement](#driftedresourceplacement) array_ | DriftedPlacements is a list of resources that have drifted from their desired states
kept in the hub cluster, as found by Fleet using the drift detection mechanism.
To control the object size, only the first 100 drifted resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
| `diffedPlacements` _[DiffedResourcePlacement](#diffedresourceplacement) array_ | DiffedPlacements is a list of resources that have configuration differences from their
corresponding hub cluster manifests. Fleet will report such differences when:
* The CRP uses the ReportDiff apply strategy, which instructs Fleet to compare the hub
cluster manifests against the live resources without actually performing any apply op; or
* Fleet finds a pre-existing resource on the member cluster side that does not match its
hub cluster counterpart, and the CRP has been configured to only take over a resource if
no configuration differences are found.
To control the object size, only the first 100 diffed resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourceBinding. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourceBinding. | | Optional: \{\}
|
#### ResourceContent
@@ -1123,12 +1123,12 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group is the group name of the selected resource. | | |
-| `version` _string_ | Version is the version of the selected resource. | | |
-| `kind` _string_ | Kind represents the Kind of the selected resources. | | |
-| `name` _string_ | Name of the target resource. | | |
-| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | |
-| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | |
+| `group` _string_ | Group is the group name of the selected resource. | | Optional: \{\}
|
+| `version` _string_ | Version is the version of the selected resource. | | Required: \{\}
|
+| `kind` _string_ | Kind represents the Kind of the selected resources. | | Required: \{\}
|
+| `name` _string_ | Name of the target resource. | | Required: \{\}
|
+| `namespace` _string_ | Namespace is the namespace of the resource. Empty if the resource is cluster scoped. | | Optional: \{\}
|
+| `envelope` _[EnvelopeIdentifier](#envelopeidentifier)_ | Envelope identifies the envelope object that contains this resource. | | Optional: \{\}
|
#### ResourceOverride
@@ -1148,7 +1148,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ResourceOverride` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceOverrideSpec](#resourceoverridespec)_ | The desired state of ResourceOverrideSpec. | | |
+| `spec` _[ResourceOverrideSpec](#resourceoverridespec)_ | The desired state of ResourceOverrideSpec. | | Required: \{\}
|
@@ -1176,7 +1176,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `ResourceOverrideSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceOverrideSnapshotSpec](#resourceoverridesnapshotspec)_ | The desired state of ResourceOverrideSnapshot. | | |
+| `spec` _[ResourceOverrideSnapshotSpec](#resourceoverridesnapshotspec)_ | The desired state of ResourceOverrideSnapshot. | | Required: \{\}
|
@@ -1195,7 +1195,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `overrideSpec` _[ResourceOverrideSpec](#resourceoverridespec)_ | OverrideSpec stores the spec of ResourceOverride. | | |
-| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | |
+| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | Required: \{\}
|
#### ResourceOverrideSpec
@@ -1215,9 +1215,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | |
-| `resourceSelectors` _[ResourceSelector](#resourceselector) array_ | ResourceSelectors is an array of selectors used to select namespace scoped resources. The selectors are `ORed`.
You can have 1-20 selectors. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
-| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | |
+| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | Optional: \{\}
|
+| `resourceSelectors` _[ResourceSelector](#resourceselector) array_ | ResourceSelectors is an array of selectors used to select namespace scoped resources. The selectors are `ORed`.
You can have 1-20 selectors. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
+| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | Required: \{\}
|
@@ -1235,13 +1235,13 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterName` _string_ | ClusterName is the name of the cluster this resource is assigned to.
If it is not empty, its value should be unique cross all placement decisions for the Placement. | | |
-| `applicableResourceOverrides` _[NamespacedName](#namespacedname) array_ | ApplicableResourceOverrides contains a list of applicable ResourceOverride snapshots associated with the selected
resources.
This field is alpha-level and is for the override policy feature. | | |
-| `applicableClusterResourceOverrides` _string array_ | ApplicableClusterResourceOverrides contains a list of applicable ClusterResourceOverride snapshots associated with
the selected resources.
This field is alpha-level and is for the override policy feature. | | |
-| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
|
+| `clusterName` _string_ | ClusterName is the name of the cluster this resource is assigned to.
If it is not empty, its value should be unique cross all placement decisions for the Placement. | | Optional: \{\}
|
+| `applicableResourceOverrides` _[NamespacedName](#namespacedname) array_ | ApplicableResourceOverrides contains a list of applicable ResourceOverride snapshots associated with the selected
resources.
This field is alpha-level and is for the override policy feature. | | Optional: \{\}
|
+| `applicableClusterResourceOverrides` _string array_ | ApplicableClusterResourceOverrides contains a list of applicable ClusterResourceOverride snapshots associated with
the selected resources.
This field is alpha-level and is for the override policy feature. | | Optional: \{\}
|
+| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
| `driftedPlacements` _[DriftedResourcePlacement](#driftedresourceplacement) array_ | DriftedPlacements is a list of resources that have drifted from their desired states
kept in the hub cluster, as found by Fleet using the drift detection mechanism.
To control the object size, only the first 100 drifted resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
| `diffedPlacements` _[DiffedResourcePlacement](#diffedresourceplacement) array_ | DiffedPlacements is a list of resources that have configuration differences from their
corresponding hub cluster manifests. Fleet will report such differences when:
* The CRP uses the ReportDiff apply strategy, which instructs Fleet to compare the hub
cluster manifests against the live resources without actually performing any apply op; or
* Fleet finds a pre-existing resource on the member cluster side that does not match its
hub cluster counterpart, and the CRP has been configured to only take over a resource if
no configuration differences are found.
To control the object size, only the first 100 diffed resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourcePlacementStatus. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourcePlacementStatus. | | Optional: \{\}
|
#### ResourceScope
@@ -1276,10 +1276,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group name of the namespace-scoped resource.
Use an empty string to select resources under the core API group (e.g., services). | | |
-| `version` _string_ | Version of the namespace-scoped resource. | | |
-| `kind` _string_ | Kind of the namespace-scoped resource. | | |
-| `name` _string_ | Name of the namespace-scoped resource. | | |
+| `group` _string_ | Group name of the namespace-scoped resource.
Use an empty string to select resources under the core API group (e.g., services). | | Required: \{\}
|
+| `version` _string_ | Version of the namespace-scoped resource. | | Required: \{\}
|
+| `kind` _string_ | Kind of the namespace-scoped resource. | | Required: \{\}
|
+| `name` _string_ | Name of the namespace-scoped resource. | | Required: \{\}
|
#### ResourceSnapshotSpec
@@ -1295,7 +1295,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `selectedResources` _[ResourceContent](#resourcecontent) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | |
+| `selectedResources` _[ResourceContent](#resourcecontent) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | Required: \{\}
|
#### ResourceSnapshotStatus
@@ -1311,7 +1311,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourceSnapshot. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourceSnapshot. | | Optional: \{\}
|
#### RollingUpdateConfig
@@ -1327,9 +1327,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `maxUnavailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | The maximum number of clusters that can be unavailable during the rolling update
comparing to the desired number of clusters.
The desired number equals to the `NumberOfClusters` field when the placement type is `PickN`.
The desired number equals to the number of clusters scheduler selected when the placement type is `PickAll`.
Value can be an absolute number (ex: 5) or a percentage of the desired number of clusters (ex: 10%).
Absolute number is calculated from percentage by rounding up.
We consider a resource unavailable when we either remove it from a cluster or in-place
upgrade the resources content on the same cluster.
The minimum of MaxUnavailable is 0 to allow no downtime moving a placement from one cluster to another.
Please set it to be greater than 0 to avoid rolling out stuck during in-place resource update.
Defaults to 25%. | 25% | Pattern: `^((100\|[0-9]\{1,2\})%\|[0-9]+)$`
XIntOrString: \{\}
|
-| `maxSurge` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | The maximum number of clusters that can be scheduled above the desired number of clusters.
The desired number equals to the `NumberOfClusters` field when the placement type is `PickN`.
The desired number equals to the number of clusters scheduler selected when the placement type is `PickAll`.
Value can be an absolute number (ex: 5) or a percentage of desire (ex: 10%).
Absolute number is calculated from percentage by rounding up.
This does not apply to the case that we do in-place update of resources on the same cluster.
This can not be 0 if MaxUnavailable is 0.
Defaults to 25%. | 25% | Pattern: `^((100\|[0-9]\{1,2\})%\|[0-9]+)$`
XIntOrString: \{\}
|
-| `unavailablePeriodSeconds` _integer_ | UnavailablePeriodSeconds is used to configure the waiting time between rollout phases when we
cannot determine if the resources have rolled out successfully or not.
We have a built-in resource state detector to determine the availability status of following well-known Kubernetes
native resources: Deployment, StatefulSet, DaemonSet, Service, Namespace, ConfigMap, Secret,
ClusterRole, ClusterRoleBinding, Role, RoleBinding.
Please see [SafeRollout](https://github.com/Azure/fleet/tree/main/docs/concepts/SafeRollout/README.md) for more details.
For other types of resources, we consider them as available after `UnavailablePeriodSeconds` seconds
have passed since they were successfully applied to the target cluster.
Default is 60. | 60 | |
+| `maxUnavailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | The maximum number of clusters that can be unavailable during the rolling update
comparing to the desired number of clusters.
The desired number equals to the `NumberOfClusters` field when the placement type is `PickN`.
The desired number equals to the number of clusters scheduler selected when the placement type is `PickAll`.
Value can be an absolute number (ex: 5) or a percentage of the desired number of clusters (ex: 10%).
Absolute number is calculated from percentage by rounding up.
We consider a resource unavailable when we either remove it from a cluster or in-place
upgrade the resources content on the same cluster.
The minimum of MaxUnavailable is 0 to allow no downtime moving a placement from one cluster to another.
Please set it to be greater than 0 to avoid rolling out stuck during in-place resource update.
Defaults to 25%. | 25% | Pattern: `^((100\|[0-9]\{1,2\})%\|[0-9]+)$`
XIntOrString: \{\}
Optional: \{\}
|
+| `maxSurge` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | The maximum number of clusters that can be scheduled above the desired number of clusters.
The desired number equals to the `NumberOfClusters` field when the placement type is `PickN`.
The desired number equals to the number of clusters scheduler selected when the placement type is `PickAll`.
Value can be an absolute number (ex: 5) or a percentage of desire (ex: 10%).
Absolute number is calculated from percentage by rounding up.
This does not apply to the case that we do in-place update of resources on the same cluster.
This can not be 0 if MaxUnavailable is 0.
Defaults to 25%. | 25% | Pattern: `^((100\|[0-9]\{1,2\})%\|[0-9]+)$`
XIntOrString: \{\}
Optional: \{\}
|
+| `unavailablePeriodSeconds` _integer_ | UnavailablePeriodSeconds is used to configure the waiting time between rollout phases when we
cannot determine if the resources have rolled out successfully or not.
We have a built-in resource state detector to determine the availability status of following well-known Kubernetes
native resources: Deployment, StatefulSet, DaemonSet, Service, Namespace, ConfigMap, Secret,
ClusterRole, ClusterRoleBinding, Role, RoleBinding.
Please see [SafeRollout](https://github.com/Azure/fleet/tree/main/docs/concepts/SafeRollout/README.md) for more details.
For other types of resources, we consider them as available after `UnavailablePeriodSeconds` seconds
have passed since they were successfully applied to the target cluster.
Default is 60. | 60 | Optional: \{\}
|
#### RolloutStrategy
@@ -1345,9 +1345,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `type` _[RolloutStrategyType](#rolloutstrategytype)_ | Type of rollout. The only supported type is "RollingUpdate". Default is "RollingUpdate". | RollingUpdate | Enum: [RollingUpdate]
|
-| `rollingUpdate` _[RollingUpdateConfig](#rollingupdateconfig)_ | Rolling update config params. Present only if RolloutStrategyType = RollingUpdate. | | |
-| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | |
+| `type` _[RolloutStrategyType](#rolloutstrategytype)_ | Type of rollout. The only supported type is "RollingUpdate". Default is "RollingUpdate". | RollingUpdate | Enum: [RollingUpdate]
Optional: \{\}
|
+| `rollingUpdate` _[RollingUpdateConfig](#rollingupdateconfig)_ | Rolling update config params. Present only if RolloutStrategyType = RollingUpdate. | | Optional: \{\}
|
+| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | Optional: \{\}
|
#### RolloutStrategyType
@@ -1381,8 +1381,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | |
-| `policyHash` _integer array_ | PolicyHash is the sha-256 hash value of the Policy field. | | |
+| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | Optional: \{\}
|
+| `policyHash` _integer array_ | PolicyHash is the sha-256 hash value of the Policy field. | | Required: \{\}
|
#### SchedulingPolicySnapshotStatus
@@ -1398,9 +1398,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `observedCRPGeneration` _integer_ | ObservedCRPGeneration is the generation of the CRP which the scheduler uses to perform
the scheduling cycle and prepare the scheduling status. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for SchedulingPolicySnapshot. | | |
-| `targetClusters` _[ClusterDecision](#clusterdecision) array_ | ClusterDecisions contains a list of names of member clusters considered by the scheduler.
Note that all the selected clusters must present in the list while not all the
member clusters are guaranteed to be listed due to the size limit. We will try to
add the clusters that can provide the most insight to the list first. | | MaxItems: 1000
|
+| `observedCRPGeneration` _integer_ | ObservedCRPGeneration is the generation of the CRP which the scheduler uses to perform
the scheduling cycle and prepare the scheduling status. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for SchedulingPolicySnapshot. | | Optional: \{\}
|
+| `targetClusters` _[ClusterDecision](#clusterdecision) array_ | ClusterDecisions contains a list of names of member clusters considered by the scheduler.
Note that all the selected clusters must present in the list while not all the
member clusters are guaranteed to be listed due to the size limit. We will try to
add the clusters that can provide the most insight to the list first. | | MaxItems: 1000
Optional: \{\}
|
#### ServerSideApplyConfig
@@ -1417,7 +1417,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `force` _boolean_ | Force represents to force apply to succeed when resolving the conflicts
For any conflicting fields,
- If true, use the values from the resource to be applied to overwrite the values of the existing resource in the
target cluster, as well as take over ownership of such fields.
- If false, apply will fail with the reason ApplyConflictWithOtherApplier.
For non-conflicting fields, values stay unchanged and ownership are shared between appliers. | | |
+| `force` _boolean_ | Force represents to force apply to succeed when resolving the conflicts
For any conflicting fields,
- If true, use the values from the resource to be applied to overwrite the values of the existing resource in the
target cluster, as well as take over ownership of such fields.
- If false, apply will fail with the reason ApplyConflictWithOtherApplier.
For non-conflicting fields, values stay unchanged and ownership are shared between appliers. | | Optional: \{\}
|
#### Toleration
@@ -1434,10 +1434,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `key` _string_ | Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys. | | |
-| `operator` _[TolerationOperator](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tolerationoperator-v1-core)_ | Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a
ClusterResourcePlacement can tolerate all taints of a particular category. | Equal | Enum: [Equal Exists]
|
-| `value` _string_ | Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string. | | |
-| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, only allowed value is NoSchedule. | | Enum: [NoSchedule]
|
+| `key` _string_ | Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys. | | Optional: \{\}
|
+| `operator` _[TolerationOperator](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tolerationoperator-v1-core)_ | Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a
ClusterResourcePlacement can tolerate all taints of a particular category. | Equal | Enum: [Equal Exists]
Optional: \{\}
|
+| `value` _string_ | Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string. | | Optional: \{\}
|
+| `effect` _[TaintEffect](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#tainteffect-v1-core)_ | Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, only allowed value is NoSchedule. | | Enum: [NoSchedule]
Optional: \{\}
|
#### TopologySpreadConstraint
@@ -1453,9 +1453,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `maxSkew` _integer_ | MaxSkew describes the degree to which resources may be unevenly distributed.
When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
between the number of resource copies in the target topology and the global minimum.
The global minimum is the minimum number of resource copies in a domain.
When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
to topologies that satisfy it.
It's an optional field. Default value is 1 and 0 is not allowed. | 1 | Minimum: 1
|
-| `topologyKey` _string_ | TopologyKey is the key of cluster labels. Clusters that have a label with this key
and identical values are considered to be in the same topology.
We consider each as a "bucket", and try to put balanced number
of replicas of the resource into each bucket honor the `MaxSkew` value.
It's a required field. | | |
-| `whenUnsatisfiable` _[UnsatisfiableConstraintAction](#unsatisfiableconstraintaction)_ | WhenUnsatisfiable indicates how to deal with the resource if it doesn't satisfy
the spread constraint.
- DoNotSchedule (default) tells the scheduler not to schedule it.
- ScheduleAnyway tells the scheduler to schedule the resource in any cluster,
but giving higher precedence to topologies that would help reduce the skew.
It's an optional field. | | |
+| `maxSkew` _integer_ | MaxSkew describes the degree to which resources may be unevenly distributed.
When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
between the number of resource copies in the target topology and the global minimum.
The global minimum is the minimum number of resource copies in a domain.
When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
to topologies that satisfy it.
It's an optional field. Default value is 1 and 0 is not allowed. | 1 | Minimum: 1
Optional: \{\}
|
+| `topologyKey` _string_ | TopologyKey is the key of cluster labels. Clusters that have a label with this key
and identical values are considered to be in the same topology.
We consider each as a "bucket", and try to put balanced number
of replicas of the resource into each bucket honor the `MaxSkew` value.
It's a required field. | | Required: \{\}
|
+| `whenUnsatisfiable` _[UnsatisfiableConstraintAction](#unsatisfiableconstraintaction)_ | WhenUnsatisfiable indicates how to deal with the resource if it doesn't satisfy
the spread constraint.
- DoNotSchedule (default) tells the scheduler not to schedule it.
- ScheduleAnyway tells the scheduler to schedule the resource in any cluster,
but giving higher precedence to topologies that would help reduce the skew.
It's an optional field. | | Optional: \{\}
|
#### UnsatisfiableConstraintAction
@@ -1528,7 +1528,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `Work` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[WorkSpec](#workspec)_ | spec defines the workload of a work. | | |
+| `spec` _[WorkSpec](#workspec)_ | spec defines the workload of a work. | | Optional: \{\}
|
| `status` _[WorkStatus](#workstatus)_ | status defines the status of each applied manifest on the spoke cluster. | | |
@@ -1546,7 +1546,7 @@ WorkList contains a list of Work.
| --- | --- | --- | --- |
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1` | | |
| `kind` _string_ | `WorkList` | | |
-| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
|
| `items` _[Work](#work) array_ | List of works. | | |
@@ -1588,7 +1588,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `workload` _[WorkloadTemplate](#workloadtemplate)_ | Workload represents the manifest workload to be deployed on spoke cluster | | |
-| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | |
+| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers.
This field is a beta-level feature. | | Optional: \{\}
|
#### WorkStatus
@@ -1605,7 +1605,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions contains the different condition statuses for this work.
Valid condition types are:
1. Applied represents workload in Work is applied successfully on the spoke cluster.
2. Progressing represents workload in Work in the transitioning from one state to another the on the spoke cluster.
3. Available represents workload in Work exists on the spoke cluster.
4. Degraded represents the current state of workload does not match the desired
state for a certain period. | | |
-| `manifestConditions` _[ManifestCondition](#manifestcondition) array_ | ManifestConditions represents the conditions of each resource in work deployed on
spoke cluster. | | |
+| `manifestConditions` _[ManifestCondition](#manifestcondition) array_ | ManifestConditions represents the conditions of each resource in work deployed on
spoke cluster. | | Optional: \{\}
|
#### WorkloadTemplate
@@ -1621,6 +1621,6 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `manifests` _[Manifest](#manifest) array_ | Manifests represents a list of kubernetes resources to be deployed on the spoke cluster. | | |
+| `manifests` _[Manifest](#manifest) array_ | Manifests represents a list of kubernetes resources to be deployed on the spoke cluster. | | Optional: \{\}
|
diff --git a/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1beta1.md b/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1beta1.md
index 3eb92bad..a97419d3 100644
--- a/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1beta1.md
+++ b/content/en/docs/api-reference/placement.kubernetes-fleet.io/v1beta1.md
@@ -81,7 +81,7 @@ _Appears in:_
| `resource` _string_ | Resource is the resource type of the resource. | | |
| `namespace` _string_ | Namespace is the namespace of the resource, the resource is cluster scoped if the value
is empty. | | |
| `name` _string_ | Name is the name of the resource. | | |
-| `uid` _[UID](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#uid-types-pkg)_ | UID is set on successful deletion of the Kubernetes resource by controller. The
resource might be still visible on the managed cluster after this field is set.
It is not directly settable by a client. | | |
+| `uid` _[UID](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#uid-types-pkg)_ | UID is set on successful deletion of the Kubernetes resource by controller. The
resource might be still visible on the managed cluster after this field is set.
It is not directly settable by a client. | | Optional: \{\}
|
#### AppliedWork
@@ -107,8 +107,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `AppliedWork` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[AppliedWorkSpec](#appliedworkspec)_ | Spec represents the desired configuration of AppliedWork. | | Required: \{\}
|
-| `status` _[AppliedWorkStatus](#appliedworkstatus)_ | Status represents the current status of AppliedWork. | | |
+| `spec` _[AppliedWorkSpec](#appliedworkspec)_ | Spec represents the desired configuration of AppliedWork. | | Required: \{\}
Required: \{\}
|
+| `status` _[AppliedWorkStatus](#appliedworkstatus)_ | Status represents the current status of AppliedWork. | | Optional: \{\}
|
#### AppliedWorkList
@@ -125,7 +125,7 @@ AppliedWorkList contains a list of AppliedWork.
| --- | --- | --- | --- |
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `AppliedWorkList` | | |
-| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
|
| `items` _[AppliedWork](#appliedwork) array_ | List of works. | | |
@@ -142,8 +142,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `workName` _string_ | WorkName represents the name of the related work on the hub. | | Required: \{\}
|
-| `workNamespace` _string_ | WorkNamespace represents the namespace of the related work on the hub. | | Required: \{\}
|
+| `workName` _string_ | WorkName represents the name of the related work on the hub. | | Required: \{\}
Required: \{\}
|
+| `workNamespace` _string_ | WorkNamespace represents the namespace of the related work on the hub. | | Required: \{\}
Required: \{\}
|
#### AppliedWorkStatus
@@ -159,7 +159,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `appliedResources` _[AppliedResourceMeta](#appliedresourcemeta) array_ | AppliedResources represents a list of resources defined within the Work that are applied.
Only resources with valid GroupVersionResource, namespace, and name are suitable.
An item in this slice is deleted when there is no mapped manifest in Work.Spec or by finalizer.
The resource relating to the item will also be removed from managed cluster.
The deleted resource may still be present until the finalizers for that resource are finished.
However, the resource will not be undeleted, so it can be removed from this list and eventual consistency is preserved. | | |
+| `appliedResources` _[AppliedResourceMeta](#appliedresourcemeta) array_ | AppliedResources represents a list of resources defined within the Work that are applied.
Only resources with valid GroupVersionResource, namespace, and name are suitable.
An item in this slice is deleted when there is no mapped manifest in Work.Spec or by finalizer.
The resource relating to the item will also be removed from managed cluster.
The deleted resource may still be present until the finalizers for that resource are finished.
However, the resource will not be undeleted, so it can be removed from this list and eventual consistency is preserved. | | Optional: \{\}
|
#### ApplyStrategy
@@ -385,10 +385,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterName` _string_ | ClusterName is the name of the ManagedCluster. If it is not empty, its value should be unique cross all
placement decisions for the Placement. | | Required: \{\}
|
-| `selected` _boolean_ | Selected indicates if this cluster is selected by the scheduler. | | |
-| `clusterScore` _[ClusterScore](#clusterscore)_ | ClusterScore represents the score of the cluster calculated by the scheduler. | | |
-| `reason` _string_ | Reason represents the reason why the cluster is selected or not. | | |
+| `clusterName` _string_ | ClusterName is the name of the ManagedCluster. If it is not empty, its value should be unique cross all
placement decisions for the Placement. | | Required: \{\}
Required: \{\}
|
+| `selected` _boolean_ | Selected indicates if this cluster is selected by the scheduler. | | Required: \{\}
|
+| `clusterScore` _[ClusterScore](#clusterscore)_ | ClusterScore represents the score of the cluster calculated by the scheduler. | | Optional: \{\}
|
+| `reason` _string_ | Reason represents the reason why the cluster is selected or not. | | Required: \{\}
|
#### ClusterResourceBinding
@@ -408,8 +408,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourceBinding` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ClusterResourceBinding. | | |
-| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ClusterResourceBinding. | | |
+| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ClusterResourceBinding. | | Required: \{\}
|
+| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ClusterResourceBinding. | | Optional: \{\}
|
@@ -452,7 +452,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourceOverride` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | The desired state of ClusterResourceOverrideSpec. | | |
+| `spec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | The desired state of ClusterResourceOverrideSpec. | | Required: \{\}
|
@@ -480,7 +480,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourceOverrideSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ClusterResourceOverrideSnapshotSpec](#clusterresourceoverridesnapshotspec)_ | The desired state of ClusterResourceOverrideSnapshotSpec. | | |
+| `spec` _[ClusterResourceOverrideSnapshotSpec](#clusterresourceoverridesnapshotspec)_ | The desired state of ClusterResourceOverrideSnapshotSpec. | | Required: \{\}
|
@@ -499,7 +499,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `overrideSpec` _[ClusterResourceOverrideSpec](#clusterresourceoverridespec)_ | OverrideSpec stores the spec of ClusterResourceOverride. | | |
-| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | |
+| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | Required: \{\}
|
#### ClusterResourceOverrideSpec
@@ -519,9 +519,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | |
-| `clusterResourceSelectors` _[ResourceSelectorTerm](#resourceselectorterm) array_ | ClusterResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
If a namespace is selected, ALL the resources under the namespace are selected automatically.
LabelSelector is not supported.
You can have 1-20 selectors.
We only support Name selector for now. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
-| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | |
+| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | Optional: \{\}
|
+| `clusterResourceSelectors` _[ResourceSelectorTerm](#resourceselectorterm) array_ | ClusterResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
If a namespace is selected, ALL the resources under the namespace are selected automatically.
LabelSelector is not supported.
You can have 1-20 selectors.
We only support Name selector for now. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
+| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | Required: \{\}
|
#### ClusterResourcePlacement
@@ -580,7 +580,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourcePlacementDisruptionBudget` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[PlacementDisruptionBudgetSpec](#placementdisruptionbudgetspec)_ | Spec is the desired state of the ClusterResourcePlacementDisruptionBudget. | | |
+| `spec` _[PlacementDisruptionBudgetSpec](#placementdisruptionbudgetspec)_ | Spec is the desired state of the ClusterResourcePlacementDisruptionBudget. | | Required: \{\}
|
@@ -629,8 +629,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourcePlacementEviction` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[PlacementEvictionSpec](#placementevictionspec)_ | Spec is the desired state of the ClusterResourcePlacementEviction.
Note that all fields in the spec are immutable. | | |
-| `status` _[PlacementEvictionStatus](#placementevictionstatus)_ | Status is the observed state of the ClusterResourcePlacementEviction. | | |
+| `spec` _[PlacementEvictionSpec](#placementevictionspec)_ | Spec is the desired state of the ClusterResourcePlacementEviction.
Note that all fields in the spec are immutable. | | Required: \{\}
|
+| `status` _[PlacementEvictionStatus](#placementevictionstatus)_ | Status is the observed state of the ClusterResourcePlacementEviction. | | Optional: \{\}
|
@@ -706,8 +706,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterResourceSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | |
-| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | |
+| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | Required: \{\}
|
+| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | Optional: \{\}
|
@@ -735,8 +735,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ClusterSchedulingPolicySnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | |
-| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | |
+| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | Required: \{\}
|
+| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | Optional: \{\}
|
@@ -754,8 +754,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `affinityScore` _integer_ | AffinityScore represents the affinity score of the cluster calculated by the last
scheduling decision based on the preferred affinity selector.
An affinity score may not present if the cluster does not meet the required affinity. | | |
-| `priorityScore` _integer_ | TopologySpreadScore represents the priority score of the cluster calculated by the last
scheduling decision based on the topology spread applied to the cluster.
A priority score may not present if the cluster does not meet the topology spread. | | |
+| `affinityScore` _integer_ | AffinityScore represents the affinity score of the cluster calculated by the last
scheduling decision based on the preferred affinity selector.
An affinity score may not present if the cluster does not meet the required affinity. | | Optional: \{\}
|
+| `priorityScore` _integer_ | TopologySpreadScore represents the priority score of the cluster calculated by the last
scheduling decision based on the topology spread applied to the cluster.
A priority score may not present if the cluster does not meet the topology spread. | | Optional: \{\}
|
#### ClusterSelector
@@ -1076,9 +1076,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `op` _[JSONPatchOverrideOperator](#jsonpatchoverrideoperator)_ | Operator defines the operation on the target field. | | Enum: [add remove replace]
|
-| `path` _string_ | Path defines the target location.
Note: override will fail if the resource path does not exist. | | |
-| `value` _[JSON](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#json-v1-apiextensions-k8s-io)_ | Value defines the content to be applied on the target location.
Value should be empty when operator is `remove`.
We have reserved a few variables in this field that will be replaced by the actual values.
Those variables all start with `$` and are case sensitive.
Here is the list of currently supported variables:
`$\{MEMBER-CLUSTER-NAME\}`: this will be replaced by the name of the memberCluster CR that represents this cluster. | | |
+| `op` _[JSONPatchOverrideOperator](#jsonpatchoverrideoperator)_ | Operator defines the operation on the target field. | | Enum: [add remove replace]
Required: \{\}
|
+| `path` _string_ | Path defines the target location.
Note: override will fail if the resource path does not exist. | | Required: \{\}
|
+| `value` _[JSON](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#json-v1-apiextensions-k8s-io)_ | Value defines the content to be applied on the target location.
Value should be empty when operator is `remove`.
We have reserved a few variables in this field that will be replaced by the actual values.
Those variables all start with `$` and are case sensitive.
Here is the list of currently supported variables:
`$\{MEMBER-CLUSTER-NAME\}`: this will be replaced by the name of the memberCluster CR that represents this cluster. | | Optional: \{\}
|
#### JSONPatchOverrideOperator
@@ -1126,8 +1126,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `identifier` _[WorkResourceIdentifier](#workresourceidentifier)_ | resourceId represents a identity of a resource linking to manifests in spec. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions represents the conditions of this resource on spoke cluster | | |
+| `identifier` _[WorkResourceIdentifier](#workresourceidentifier)_ | resourceId represents a identity of a resource linking to manifests in spec. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions represents the conditions of this resource on spoke cluster | | Required: \{\}
|
| `driftDetails` _[DriftDetails](#driftdetails)_ | DriftDetails explains about the observed configuration drifts.
Fleet might truncate the details as appropriate to control object size.
Note that configuration drifts can only occur on a resource if it is currently owned by
Fleet and its corresponding placement is set to use the ClientSideApply or ServerSideApply
apply strategy. In other words, DriftDetails and DiffDetails will not be populated
at the same time. | | Optional: \{\}
|
| `diffDetails` _[DiffDetails](#diffdetails)_ | DiffDetails explains the details about the observed configuration differences.
Fleet might truncate the details as appropriate to control object size.
Note that configuration differences can only occur on a resource if it is not currently owned
by Fleet (i.e., it is a pre-existing resource that needs to be taken over), or if its
corresponding placement is set to use the ReportDiff apply strategy. In other words,
DiffDetails and DriftDetails will not be populated at the same time. | | Optional: \{\}
|
| `backReportedStatus` _[BackReportedStatus](#backreportedstatus)_ | BackReportedStatus is the status reported back from the member cluster (if applicable). | | Optional: \{\}
|
@@ -1167,7 +1167,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `overrideRules` _[OverrideRule](#overriderule) array_ | OverrideRules defines an array of override rules to be applied on the selected resources.
The order of the rules determines the override order.
When there are two rules selecting the same fields on the target cluster, the last one will win.
You can have 1-20 rules. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
+| `overrideRules` _[OverrideRule](#overriderule) array_ | OverrideRules defines an array of override rules to be applied on the selected resources.
The order of the rules determines the override order.
When there are two rules selecting the same fields on the target cluster, the last one will win.
You can have 1-20 rules. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
#### OverrideRule
@@ -1183,9 +1183,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `clusterSelector` _[ClusterSelector](#clusterselector)_ | ClusterSelectors selects the target clusters.
The resources will be overridden before applying to the matching clusters.
An empty clusterSelector selects ALL the member clusters.
A nil clusterSelector selects NO member clusters.
For now, only labelSelector is supported. | | |
-| `overrideType` _[OverrideType](#overridetype)_ | OverrideType defines the type of the override rules. | JSONPatch | Enum: [JSONPatch Delete]
|
-| `jsonPatchOverrides` _[JSONPatchOverride](#jsonpatchoverride) array_ | JSONPatchOverrides defines a list of JSON patch override rules.
This field is only allowed when OverrideType is JSONPatch. | | MaxItems: 20
MinItems: 1
|
+| `clusterSelector` _[ClusterSelector](#clusterselector)_ | ClusterSelectors selects the target clusters.
The resources will be overridden before applying to the matching clusters.
An empty clusterSelector selects ALL the member clusters.
A nil clusterSelector selects NO member clusters.
For now, only labelSelector is supported. | | Optional: \{\}
|
+| `overrideType` _[OverrideType](#overridetype)_ | OverrideType defines the type of the override rules. | JSONPatch | Enum: [JSONPatch Delete]
Optional: \{\}
|
+| `jsonPatchOverrides` _[JSONPatchOverride](#jsonpatchoverride) array_ | JSONPatchOverrides defines a list of JSON patch override rules.
This field is only allowed when OverrideType is JSONPatch. | | MaxItems: 20
MinItems: 1
Optional: \{\}
|
#### OverrideType
@@ -1267,8 +1267,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `maxUnavailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | MaxUnavailable is the maximum number of placements (clusters) that can be down at the
same time due to voluntary disruptions. For example, a setting of 1 would imply that
a voluntary disruption (e.g., an eviction) can only happen if all placements (clusters)
from the linked Placement object are applied and available.
This can be either an absolute value (e.g., 1) or a percentage (e.g., 10%).
If a percentage is specified, Fleet will calculate the corresponding absolute values
as follows:
* if the linked Placement object is of the PickFixed placement type,
we don't perform any calculation because eviction is not allowed for PickFixed CRP.
* if the linked Placement object is of the PickAll placement type, MaxUnavailable cannot
be specified since we cannot derive the total number of clusters selected.
* if the linked Placement object is of the PickN placement type,
the percentage is against the number of clusters specified in the placement (i.e., the
value of the NumberOfClusters fields in the placement policy).
The end result will be rounded up to the nearest integer if applicable.
One may use a value of 0 for this field; in this case, no voluntary disruption would be
allowed.
This field is mutually exclusive with the MinAvailable field in the spec; exactly one
of them can be set at a time. | | XIntOrString: \{\}
|
-| `minAvailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | MinAvailable is the minimum number of placements (clusters) that must be available at any
time despite voluntary disruptions. For example, a setting of 10 would imply that
a voluntary disruption (e.g., an eviction) can only happen if there are at least 11
placements (clusters) from the linked Placement object are applied and available.
This can be either an absolute value (e.g., 1) or a percentage (e.g., 10%).
If a percentage is specified, Fleet will calculate the corresponding absolute values
as follows:
* if the linked Placement object is of the PickFixed placement type,
we don't perform any calculation because eviction is not allowed for PickFixed CRP.
* if the linked Placement object is of the PickAll placement type, MinAvailable can be
specified but only as an integer since we cannot derive the total number of clusters selected.
* if the linked Placement object is of the PickN placement type,
the percentage is against the number of clusters specified in the placement (i.e., the
value of the NumberOfClusters fields in the placement policy).
The end result will be rounded up to the nearest integer if applicable.
One may use a value of 0 for this field; in this case, voluntary disruption would be
allowed at any time.
This field is mutually exclusive with the MaxUnavailable field in the spec; exactly one
of them can be set at a time. | | XIntOrString: \{\}
|
+| `maxUnavailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | MaxUnavailable is the maximum number of placements (clusters) that can be down at the
same time due to voluntary disruptions. For example, a setting of 1 would imply that
a voluntary disruption (e.g., an eviction) can only happen if all placements (clusters)
from the linked Placement object are applied and available.
This can be either an absolute value (e.g., 1) or a percentage (e.g., 10%).
If a percentage is specified, Fleet will calculate the corresponding absolute values
as follows:
* if the linked Placement object is of the PickFixed placement type,
we don't perform any calculation because eviction is not allowed for PickFixed CRP.
* if the linked Placement object is of the PickAll placement type, MaxUnavailable cannot
be specified since we cannot derive the total number of clusters selected.
* if the linked Placement object is of the PickN placement type,
the percentage is against the number of clusters specified in the placement (i.e., the
value of the NumberOfClusters fields in the placement policy).
The end result will be rounded up to the nearest integer if applicable.
One may use a value of 0 for this field; in this case, no voluntary disruption would be
allowed.
This field is mutually exclusive with the MinAvailable field in the spec; exactly one
of them can be set at a time. | | XIntOrString: \{\}
Optional: \{\}
|
+| `minAvailable` _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#intorstring-intstr-util)_ | MinAvailable is the minimum number of placements (clusters) that must be available at any
time despite voluntary disruptions. For example, a setting of 10 would imply that
a voluntary disruption (e.g., an eviction) can only happen if there are at least 11
placements (clusters) from the linked Placement object are applied and available.
This can be either an absolute value (e.g., 1) or a percentage (e.g., 10%).
If a percentage is specified, Fleet will calculate the corresponding absolute values
as follows:
* if the linked Placement object is of the PickFixed placement type,
we don't perform any calculation because eviction is not allowed for PickFixed CRP.
* if the linked Placement object is of the PickAll placement type, MinAvailable can be
specified but only as an integer since we cannot derive the total number of clusters selected.
* if the linked Placement object is of the PickN placement type,
the percentage is against the number of clusters specified in the placement (i.e., the
value of the NumberOfClusters fields in the placement policy).
The end result will be rounded up to the nearest integer if applicable.
One may use a value of 0 for this field; in this case, voluntary disruption would be
allowed at any time.
This field is mutually exclusive with the MaxUnavailable field in the spec; exactly one
of them can be set at a time. | | XIntOrString: \{\}
Optional: \{\}
|
@@ -1303,7 +1303,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is the list of currently observed conditions for the
PlacementEviction object.
Available condition types include:
* Valid: whether the Eviction object is valid, i.e., it targets at a valid placement.
* Executed: whether the Eviction object has been executed. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is the list of currently observed conditions for the
PlacementEviction object.
Available condition types include:
* Valid: whether the Eviction object is valid, i.e., it targets at a valid placement.
* Executed: whether the Eviction object has been executed. | | Optional: \{\}
|
@@ -1353,8 +1353,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `name` _string_ | Name is the reference to the name of placement. | | |
-| `scope` _[ResourceScope](#resourcescope)_ | Scope defines the scope of the placement.
A clusterResourceOverride can only reference a clusterResourcePlacement (cluster-scoped),
and a resourceOverride can reference either a clusterResourcePlacement or resourcePlacement (namespaced).
The referenced resourcePlacement must be in the same namespace as the resourceOverride. | Cluster | Enum: [Cluster Namespaced]
|
+| `name` _string_ | Name is the reference to the name of placement. | | Required: \{\}
|
+| `scope` _[ResourceScope](#resourcescope)_ | Scope defines the scope of the placement.
A clusterResourceOverride can only reference a clusterResourcePlacement (cluster-scoped),
and a resourceOverride can reference either a clusterResourcePlacement or resourcePlacement (namespaced).
The referenced resourcePlacement must be in the same namespace as the resourceOverride. | Cluster | Enum: [Cluster Namespaced]
Optional: \{\}
|
#### PlacementSpec
@@ -1578,8 +1578,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ResourceBinding` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ResourceBinding. | | |
-| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ResourceBinding. | | |
+| `spec` _[ResourceBindingSpec](#resourcebindingspec)_ | The desired state of ResourceBinding. | | Required: \{\}
|
+| `status` _[ResourceBindingStatus](#resourcebindingstatus)_ | The observed status of ResourceBinding. | | Optional: \{\}
|
@@ -1600,14 +1600,14 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `state` _[BindingState](#bindingstate)_ | The desired state of the binding. Possible values: Scheduled, Bound, Unscheduled. | | |
+| `state` _[BindingState](#bindingstate)_ | The desired state of the binding. Possible values: Scheduled, Bound, Unscheduled. | | Required: \{\}
|
| `resourceSnapshotName` _string_ | ResourceSnapshotName is the name of the resource snapshot that this resource binding points to.
If the resources are divided into multiple snapshots because of the resource size limit,
it points to the name of the leading snapshot of the index group. | | |
| `resourceOverrideSnapshots` _[NamespacedName](#namespacedname) array_ | ResourceOverrideSnapshots is a list of ResourceOverride snapshots associated with the selected resources. | | |
| `clusterResourceOverrideSnapshots` _string array_ | ClusterResourceOverrides contains a list of applicable ClusterResourceOverride snapshot names associated with the
selected resources. | | |
| `schedulingPolicySnapshotName` _string_ | SchedulingPolicySnapshotName is the name of the scheduling policy snapshot that this resource binding
points to; more specifically, the scheduler creates this bindings in accordance with this
scheduling policy snapshot. | | |
| `targetCluster` _string_ | TargetCluster is the name of the cluster that the scheduler assigns the resources to. | | |
| `clusterDecision` _[ClusterDecision](#clusterdecision)_ | ClusterDecision explains why the scheduler selected this cluster. | | |
-| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers. | | |
+| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers. | | Optional: \{\}
|
#### ResourceBindingStatus
@@ -1624,10 +1624,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100. | | MaxItems: 100
|
+| `failedPlacements` _[FailedResourcePlacement](#failedresourceplacement) array_ | FailedPlacements is a list of all the resources failed to be placed to the given cluster or the resource is unavailable.
Note that we only include 100 failed resource placements even if there are more than 100. | | MaxItems: 100
Optional: \{\}
|
| `driftedPlacements` _[DriftedResourcePlacement](#driftedresourceplacement) array_ | DriftedPlacements is a list of resources that have drifted from their desired states
kept in the hub cluster, as found by Fleet using the drift detection mechanism.
To control the object size, only the first 100 drifted resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
| `diffedPlacements` _[DiffedResourcePlacement](#diffedresourceplacement) array_ | DiffedPlacements is a list of resources that have configuration differences from their
corresponding hub cluster manifests. Fleet will report such differences when:
* The CRP uses the ReportDiff apply strategy, which instructs Fleet to compare the hub
cluster manifests against the live resources without actually performing any apply op; or
* Fleet finds a pre-existing resource on the member cluster side that does not match its
hub cluster counterpart, and the CRP has been configured to only take over a resource if
no configuration differences are found.
To control the object size, only the first 100 diffed resources will be included.
This field is only meaningful if the `ClusterName` is not empty. | | MaxItems: 100
Optional: \{\}
|
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourceBinding. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ClusterResourceBinding. | | Optional: \{\}
|
#### ResourceContent
@@ -1705,7 +1705,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ResourceOverride` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceOverrideSpec](#resourceoverridespec)_ | The desired state of ResourceOverrideSpec. | | |
+| `spec` _[ResourceOverrideSpec](#resourceoverridespec)_ | The desired state of ResourceOverrideSpec. | | Required: \{\}
|
@@ -1733,7 +1733,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ResourceOverrideSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceOverrideSnapshotSpec](#resourceoverridesnapshotspec)_ | The desired state of ResourceOverrideSnapshot. | | |
+| `spec` _[ResourceOverrideSnapshotSpec](#resourceoverridesnapshotspec)_ | The desired state of ResourceOverrideSnapshot. | | Required: \{\}
|
@@ -1752,7 +1752,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `overrideSpec` _[ResourceOverrideSpec](#resourceoverridespec)_ | OverrideSpec stores the spec of ResourceOverride. | | |
-| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | |
+| `overrideHash` _integer array_ | OverrideHash is the sha-256 hash value of the OverrideSpec field. | | Required: \{\}
|
#### ResourceOverrideSpec
@@ -1772,9 +1772,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | |
-| `resourceSelectors` _[ResourceSelector](#resourceselector) array_ | ResourceSelectors is an array of selectors used to select namespace scoped resources. The selectors are `ORed`.
You can have 1-20 selectors. | | MaxItems: 20
MinItems: 1
Required: \{\}
|
-| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | |
+| `placement` _[PlacementRef](#placementref)_ | Placement defines whether the override is applied to a specific placement or not.
If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
Otherwise, it will be applied to the next rollout.
The recommended way is to set the placement so that the override can be rolled out immediately. | | Optional: \{\}
|
+| `resourceSelectors` _[ResourceSelector](#resourceselector) array_ | ResourceSelectors is an array of selectors used to select namespace scoped resources. The selectors are `ORed`.
You can have 1-20 selectors. | | MaxItems: 20
MinItems: 1
Required: \{\}
Required: \{\}
|
+| `policy` _[OverridePolicy](#overridepolicy)_ | Policy defines how to override the selected resources on the target clusters. | | Required: \{\}
|
#### ResourcePlacement
@@ -1836,10 +1836,10 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `group` _string_ | Group name of the namespace-scoped resource.
Use an empty string to select resources under the core API group (e.g., services). | | |
-| `version` _string_ | Version of the namespace-scoped resource. | | |
-| `kind` _string_ | Kind of the namespace-scoped resource. | | |
-| `name` _string_ | Name of the namespace-scoped resource. | | |
+| `group` _string_ | Group name of the namespace-scoped resource.
Use an empty string to select resources under the core API group (e.g., services). | | Required: \{\}
|
+| `version` _string_ | Version of the namespace-scoped resource. | | Required: \{\}
|
+| `kind` _string_ | Kind of the namespace-scoped resource. | | Required: \{\}
|
+| `name` _string_ | Name of the namespace-scoped resource. | | Required: \{\}
|
#### ResourceSelectorTerm
@@ -1902,8 +1902,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `ResourceSnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | |
-| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | |
+| `spec` _[ResourceSnapshotSpec](#resourcesnapshotspec)_ | The desired state of ResourceSnapshot. | | Required: \{\}
|
+| `status` _[ResourceSnapshotStatus](#resourcesnapshotstatus)_ | The observed status of ResourceSnapshot. | | Optional: \{\}
|
@@ -1928,7 +1928,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `selectedResources` _[ResourceContent](#resourcecontent) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | |
+| `selectedResources` _[ResourceContent](#resourcecontent) array_ | SelectedResources contains a list of resources selected by ResourceSelectors. | | Required: \{\}
|
@@ -1947,7 +1947,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourceSnapshot. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for ResourceSnapshot. | | Optional: \{\}
|
@@ -2030,8 +2030,8 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `SchedulingPolicySnapshot` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | |
-| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | |
+| `spec` _[SchedulingPolicySnapshotSpec](#schedulingpolicysnapshotspec)_ | The desired state of SchedulingPolicySnapshot. | | Required: \{\}
|
+| `status` _[SchedulingPolicySnapshotStatus](#schedulingpolicysnapshotstatus)_ | The observed status of SchedulingPolicySnapshot. | | Optional: \{\}
|
@@ -2052,8 +2052,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | |
-| `policyHash` _integer array_ | PolicyHash is the sha-256 hash value of the Policy field. | | |
+| `policy` _[PlacementPolicy](#placementpolicy)_ | Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected. | | Optional: \{\}
|
+| `policyHash` _integer array_ | PolicyHash is the sha-256 hash value of the Policy field. | | Required: \{\}
|
#### SchedulingPolicySnapshotStatus
@@ -2070,9 +2070,9 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `observedCRPGeneration` _integer_ | ObservedCRPGeneration is the generation of the resource placement which the scheduler uses to perform
the scheduling cycle and prepare the scheduling status. | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for SchedulingPolicySnapshot. | | |
-| `targetClusters` _[ClusterDecision](#clusterdecision) array_ | ClusterDecisions contains a list of names of member clusters considered by the scheduler.
Note that all the selected clusters must present in the list while not all the
member clusters are guaranteed to be listed due to the size limit. We will try to
add the clusters that can provide the most insight to the list first. | | MaxItems: 1000
|
+| `observedCRPGeneration` _integer_ | ObservedCRPGeneration is the generation of the resource placement which the scheduler uses to perform
the scheduling cycle and prepare the scheduling status. | | Required: \{\}
|
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions is an array of current observed conditions for SchedulingPolicySnapshot. | | Optional: \{\}
|
+| `targetClusters` _[ClusterDecision](#clusterdecision) array_ | ClusterDecisions contains a list of names of member clusters considered by the scheduler.
Note that all the selected clusters must present in the list while not all the
member clusters are guaranteed to be listed due to the size limit. We will try to
add the clusters that can provide the most insight to the list first. | | MaxItems: 1000
Optional: \{\}
|
#### SelectionScope
@@ -2488,7 +2488,7 @@ _Appears in:_
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `Work` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[WorkSpec](#workspec)_ | spec defines the workload of a work. | | |
+| `spec` _[WorkSpec](#workspec)_ | spec defines the workload of a work. | | Optional: \{\}
|
| `status` _[WorkStatus](#workstatus)_ | status defines the status of each applied manifest on the spoke cluster. | | |
@@ -2506,7 +2506,7 @@ WorkList contains a list of Work.
| --- | --- | --- | --- |
| `apiVersion` _string_ | `placement.kubernetes-fleet.io/v1beta1` | | |
| `kind` _string_ | `WorkList` | | |
-| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
|
| `items` _[Work](#work) array_ | List of works. | | |
@@ -2548,8 +2548,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `workload` _[WorkloadTemplate](#workloadtemplate)_ | Workload represents the manifest workload to be deployed on spoke cluster | | |
-| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers. | | |
-| `reportBackStrategy` _[ReportBackStrategy](#reportbackstrategy)_ | ReportBackStrategy describes how to report back the status of applied resources on the member cluster. | | |
+| `applyStrategy` _[ApplyStrategy](#applystrategy)_ | ApplyStrategy describes how to resolve the conflict if the resource to be placed already exists in the target cluster
and is owned by other appliers. | | Optional: \{\}
|
+| `reportBackStrategy` _[ReportBackStrategy](#reportbackstrategy)_ | ReportBackStrategy describes how to report back the status of applied resources on the member cluster. | | Optional: \{\}
|
#### WorkStatus
@@ -2566,7 +2566,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Conditions contains the different condition statuses for this work.
Valid condition types are:
1. Applied represents workload in Work is applied successfully on the spoke cluster.
2. Progressing represents workload in Work in the transitioning from one state to another the on the spoke cluster.
3. Available represents workload in Work exists on the spoke cluster.
4. Degraded represents the current state of workload does not match the desired
state for a certain period. | | |
-| `manifestConditions` _[ManifestCondition](#manifestcondition) array_ | ManifestConditions represents the conditions of each resource in work deployed on
spoke cluster. | | |
+| `manifestConditions` _[ManifestCondition](#manifestcondition) array_ | ManifestConditions represents the conditions of each resource in work deployed on
spoke cluster. | | Optional: \{\}
|
#### WorkloadTemplate
@@ -2582,6 +2582,6 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `manifests` _[Manifest](#manifest) array_ | Manifests represents a list of kubernetes resources to be deployed on the spoke cluster. | | |
+| `manifests` _[Manifest](#manifest) array_ | Manifests represents a list of kubernetes resources to be deployed on the spoke cluster. | | Optional: \{\}
|
diff --git a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/crp-availability.yaml b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/crp-availability.yaml
index a7181542..b584a194 100644
--- a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/crp-availability.yaml
+++ b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/crp-availability.yaml
@@ -1,23 +1,23 @@
-apiVersion: placement.kubernetes-fleet.io/v1
-kind: ClusterResourcePlacement
-metadata:
- name: crp-availability
-spec:
- policy:
- affinity:
- clusterAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- clusterSelectorTerms:
- - labelSelector:
- matchLabels:
- fleet.azure.com/location: westus
- numberOfClusters: 2
- placementType: PickN
- resourceSelectors:
- - group: ""
- kind: Namespace
- name: test-app
- version: v1
- revisionHistoryLimit: 10
- strategy:
- type: RollingUpdate
+apiVersion: placement.kubernetes-fleet.io/v1
+kind: ClusterResourcePlacement
+metadata:
+ name: crp-availability
+spec:
+ policy:
+ affinity:
+ clusterAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ clusterSelectorTerms:
+ - labelSelector:
+ matchLabels:
+ fleet.azure.com/location: westus
+ numberOfClusters: 2
+ placementType: PickN
+ resourceSelectors:
+ - group: ""
+ kind: Namespace
+ name: test-app
+ version: v1
+ revisionHistoryLimit: 10
+ strategy:
+ type: RollingUpdate
diff --git a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-deployment.yaml b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-deployment.yaml
index bf649c19..24df9f1a 100644
--- a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-deployment.yaml
+++ b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-deployment.yaml
@@ -1,20 +1,20 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-deployment
- namespace: test-app
-spec:
- selector:
- matchLabels:
- app: nginx
- replicas: 2
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx:1.16.1
- ports:
- - containerPort: 80
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: nginx-deployment
+ namespace: test-app
+spec:
+ selector:
+ matchLabels:
+ app: nginx
+ replicas: 2
+ template:
+ metadata:
+ labels:
+ app: nginx
+ spec:
+ containers:
+ - name: nginx
+ image: nginx:1.16.1
+ ports:
+ - containerPort: 80
diff --git a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-service.yaml b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-service.yaml
index 88503e2f..f0e0ff3d 100644
--- a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-service.yaml
+++ b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/nginx-service.yaml
@@ -1,13 +1,13 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: nginx-service
- namespace: test-app
-spec:
- selector:
- app: nginx
- ports:
- - protocol: TCP
- port: 80
- targetPort: 80
- type: LoadBalancer
+apiVersion: v1
+kind: Service
+metadata:
+ name: nginx-service
+ namespace: test-app
+spec:
+ selector:
+ app: nginx
+ ports:
+ - protocol: TCP
+ port: 80
+ targetPort: 80
+ type: LoadBalancer
diff --git a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/ro-1.yaml b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/ro-1.yaml
index 8cd4a2e2..92e143a0 100644
--- a/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/ro-1.yaml
+++ b/content/en/docs/tutorials/MigrationWithOverrideDR/testfiles/ro-1.yaml
@@ -1,23 +1,23 @@
-apiVersion: placement.kubernetes-fleet.io/v1alpha1
-kind: ResourceOverride
-metadata:
- name: ro-1
- namespace: test-app
-spec:
- resourceSelectors:
- - group: apps
- kind: Deployment
- version: v1
- name: nginx-deployment
- policy:
- overrideRules:
- - clusterSelector:
- clusterSelectorTerms:
- - labelSelector:
- matchLabels:
- fleet.azure.com/location: westeurope
- jsonPatchOverrides:
- - op: replace
- path: /spec/replicas
- value:
- 4
+apiVersion: placement.kubernetes-fleet.io/v1alpha1
+kind: ResourceOverride
+metadata:
+ name: ro-1
+ namespace: test-app
+spec:
+ resourceSelectors:
+ - group: apps
+ kind: Deployment
+ version: v1
+ name: nginx-deployment
+ policy:
+ overrideRules:
+ - clusterSelector:
+ clusterSelectorTerms:
+ - labelSelector:
+ matchLabels:
+ fleet.azure.com/location: westeurope
+ jsonPatchOverrides:
+ - op: replace
+ path: /spec/replicas
+ value:
+ 4