Skip to content

Latest commit

 

History

History
675 lines (472 loc) · 41.6 KB

api-references.md

File metadata and controls

675 lines (472 loc) · 41.6 KB

API Reference

Packages

cluster.kubernetes-fleet.io/v1beta1

Resource Types

AgentStatus

AgentStatus defines the observed status of the member agent of the given type.

Appears in:

Field Description
type AgentType Type of the member agent.
conditions Condition array Conditions is an array of current observed conditions for the member agent.
lastReceivedHeartbeat Time Last time we received a heartbeat from the member agent.

AgentType

Underlying type: string

AgentType defines a type of agent/binary running in a member cluster.

Appears in:

MemberCluster

MemberCluster is a resource created in the hub cluster to represent a member cluster within a fleet.

Appears in:

Field Description
apiVersion string cluster.kubernetes-fleet.io/v1beta1
kind string MemberCluster
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec MemberClusterSpec The desired state of MemberCluster.
status MemberClusterStatus The observed status of MemberCluster.

MemberClusterList

MemberClusterList contains a list of MemberCluster.

Field Description
apiVersion string cluster.kubernetes-fleet.io/v1beta1
kind string MemberClusterList
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items MemberCluster array

MemberClusterSpec

MemberClusterSpec defines the desired state of MemberCluster.

Appears in:

Field Description
identity _Subject 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.
taints array Taint An array of taints where each taint attached to the MemberCluster has that "effect" on any ClusterResourcePlacement that does not tolerate the taint.

MemberClusterStatus

MemberClusterStatus defines the observed status of MemberCluster.

Appears in:

Field Description
conditions Condition array Conditions is an array of current observed conditions for the member cluster.
resourceUsage ResourceUsage The current observed resource usage of the member cluster. It is copied from the corresponding InternalMemberCluster object.
agentStatus AgentStatus array AgentStatus is an array of current observed status, each corresponding to one member agent running in the member cluster.

ResourceUsage

ResourceUsage contains the observed resource usage of a member cluster.

Appears in:

Field Description
capacity ResourceList Capacity represents the total resource capacity of all the nodes on a member cluster.
allocatable ResourceList Allocatable represents the total resources of all the nodes on a member cluster that are available for scheduling.
observationTime Time When the resource usage is observed.

Taint

A taint is a <key, value, effect> triple which when attached to the MemberCluster has that "effect" on any ClusterResourcePlacement that does not tolerate the taint.

Appears in:

Field Description
key string The taint key to be applied to the MemberCluster.
value string The taint value to be applied to the MemberCluster.
effect string Effect is the effect of the taint on any ClusterResourcePlacement that does not tolerate the taint.

Effect

Underlying type: string

Effect is the effect of the taint on any ClusterResourcePlacement.

Appears in:

placement.kubernetes-fleet.io/v1beta1

Resource Types

Affinity

Affinity is a group of cluster affinity scheduling rules. More to be added.

Appears in:

Field Description
clusterAffinity ClusterAffinity ClusterAffinity contains cluster affinity scheduling rules for the selected resources.

BindingState

Underlying type: string

BindingState is the state of the binding.

Appears in:

ClusterDecision

ClusterDecision represents a decision from a placement An empty ClusterDecision indicates it is not scheduled yet.

Appears in:

Field Description
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.
selected boolean Selected indicates if this cluster is selected by the scheduler.
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.

ClusterResourceBinding

ClusterResourceBinding represents a scheduling decision that binds a group of resources to a cluster. It MUST have a label named CRPTrackingLabel that points to the cluster resource policy that creates it.

Appears in:

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string ClusterResourceBinding
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ResourceBindingSpec The desired state of ClusterResourceBinding.
status ResourceBindingStatus The observed status of ClusterResourceBinding.

ClusterResourcePlacement

ClusterResourcePlacement is used to select cluster scoped resources, including built-in resources and custom resources, and placement them onto selected member clusters in a fleet. If a namespace is selected, ALL the resources under the namespace are placed to the target clusters unless allowed-propagating-apis flag is configured on hub-agent. Note that you can't select the following resources: - reserved namespaces including: default, kube-* (reserved for Kubernetes system namespaces), fleet-* (reserved for fleet system namespaces). - reserved fleet resource types including: MemberCluster, InternalMemberCluster, ClusterResourcePlacement, ClusterSchedulingPolicySnapshot, ClusterResourceSnapshot, ClusterResourceBinding, etc. ClusterSchedulingPolicySnapshot and ClusterResourceSnapshot objects are created when there are changes in the system to keep the history of the changes affecting a ClusterResourcePlacement.

Appears in:

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string ClusterResourcePlacement
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterResourcePlacementSpec The desired state of ClusterResourcePlacement.
status ClusterResourcePlacementStatus The observed status of ClusterResourcePlacement.

ClusterResourcePlacementSpec

ClusterResourcePlacementSpec defines the desired state of ClusterResourcePlacement.

Appears in:

Field Description
resourceSelectors ClusterResourceSelector array ResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are ORed. You can have 1-100 selectors.
policy PlacementPolicy Policy defines how to select member clusters to place the selected resources. If unspecified, all the joined member clusters are selected.
strategy 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.

ClusterResourcePlacementStatus

ClusterResourcePlacementStatus defines the observed state of the ClusterResourcePlacement object.

Appears in:

Field Description
selectedResources 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 ClusterResourcePlacementSynchronized type is observing the synchronization status of the resource snapshot with the resource index $ObservedResourceIndex.
placementStatuses 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. TODO, For pickAll type, considering providing unselected clusters info.
conditions Condition array Conditions is an array of current observed conditions for ClusterResourcePlacement.

ClusterResourceSelector

ClusterResourceSelector is used to select cluster scoped resources as the target resources to be placed. If a namespace is selected, ALL the resources under the namespace are selected automatically. All the fields are ANDed. In other words, a resource must match all the fields to be selected.

Appears in:

Field Description
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 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.

ClusterResourceSnapshot

ClusterResourceSnapshot is used to store a snapshot of selected resources by a resource placement policy. Its spec is immutable. We may need to produce more than one resourceSnapshot for all the resources a ResourcePlacement selected to get around the 1MB size limit of k8s objects. We assign an ever-increasing index for each such group of resourceSnapshots. The naming convention of a clusterResourceSnapshot is {CRPName}-{resourceIndex}-{subindex} where the name of the first snapshot of a group has no subindex part so its name is {CRPName}-{resourceIndex}-snapshot. resourceIndex will begin with 0. Each snapshot MUST have the following labels: - CRPTrackingLabel which points to its owner CRP. - ResourceIndexLabel which is the index of the snapshot group. - IsLatestSnapshotLabel which indicates whether the snapshot is the latest one. All the snapshots within the same index group must have the same ResourceIndexLabel. The first snapshot of the index group MUST have the following annotations: - NumberOfResourceSnapshotsAnnotation to store the total number of resource snapshots in the index group. - ResourceGroupHashAnnotation whose value is the sha-256 hash of all the snapshots belong to the same snapshot index. Each snapshot (excluding the first snapshot) MUST have the following annotations: - SubindexOfResourceSnapshotAnnotation to store the subindex of resource snapshot in the group.

Appears in:

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string ClusterResourceSnapshot
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ResourceSnapshotSpec The desired state of ResourceSnapshot.
status ResourceSnapshotStatus The observed status of ResourceSnapshot.

ClusterSchedulingPolicySnapshot

ClusterSchedulingPolicySnapshot is used to store a snapshot of cluster placement policy. Its spec is immutable. The naming convention of a ClusterSchedulingPolicySnapshot is {CRPName}-{PolicySnapshotIndex}. PolicySnapshotIndex will begin with 0. Each snapshot must have the following labels: - CRPTrackingLabel which points to its owner CRP. - PolicyIndexLabel which is the index of the policy snapshot. - IsLatestSnapshotLabel which indicates whether the snapshot is the latest one.

Appears in:

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string ClusterSchedulingPolicySnapshot
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SchedulingPolicySnapshotSpec The desired state of SchedulingPolicySnapshot.
status SchedulingPolicySnapshotStatus The observed status of SchedulingPolicySnapshot.

ClusterScore

ClusterScore represents the score of the cluster calculated by the scheduler.

Appears in:

Field Description
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.

ClusterSelector

Appears in:

Field Description
clusterSelectorTerms ClusterSelectorTerm array ClusterSelectorTerms is a list of cluster selector terms. The terms are ORed.

ClusterSelectorTerm

ClusterSelectorTerm contains the requirements to select clusters.

Appears in:

Field Description
labelSelector LabelSelector LabelSelector is a label query over all the joined member clusters. Clusters matching the query are selected.

EnvelopeIdentifier

EnvelopeIdentifier identifies the envelope object that contains the selected resource.

Appears in:

Field Description
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 Type of the envelope object.

EnvelopeType

Underlying type: string

EnvelopeType defines the type of the envelope object.

Appears in:

FailedResourcePlacement

FailedResourcePlacement contains the failure details of a failed resource placement.

Appears in:

Field Description
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 Envelope identifies the envelope object that contains this resource.
condition Condition The failed condition status.

Manifest

Manifest represents a resource to be deployed on spoke cluster.

Appears in:

ManifestCondition

ManifestCondition represents the conditions of the resources deployed on spoke cluster.

Appears in:

Field Description
identifier WorkResourceIdentifier resourceId represents a identity of a resource linking to manifests in spec.
conditions Condition array Conditions represents the conditions of this resource on spoke cluster

PlacementPolicy

PlacementPolicy contains the rules to select target member clusters to place the selected resources. Note that only clusters that are both joined and satisfying the rules will be selected. You can only specify at most one of the two fields: ClusterNames and Affinity. If none is specified, all the joined clusters are selected.

Appears in:

Field Description
placementType PlacementType Type of placement. Can be "PickAll", "PickN" or "PickFixed". Default is PickAll.
clusterNames string array ClusterNames contains a list of names of MemberCluster to place the selected resources. Only valid if the placement type is "PickFixed"
numberOfClusters integer NumberOfClusters of placement. Only valid if the placement type is "PickN".
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 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 array An array of tolerations where each toleration is used to tolerate one or more taints on the MemberCluster based on key, value, effect and operator.

PlacementType

Underlying type: string

PlacementType identifies the type of placement.

Appears in:

PreferredClusterSelector

Appears in:

Field Description
weight integer Weight associated with matching the corresponding clusterSelectorTerm, in the range [-100, 100].
preference ClusterSelectorTerm A cluster selector term, associated with the corresponding weight.

ResourceBindingSpec

ResourceBindingSpec defines the desired state of ClusterResourceBinding.

Appears in:

Field Description
state BindingState The desired state of the binding. Possible values: Scheduled, Bound, Unscheduled.
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.
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 explains why the scheduler selected this cluster.

ResourceBindingStatus

ResourceBindingStatus represents the current status of a ClusterResourceBinding.

Appears in:

Field Description
conditions Condition array Conditions is an array of current observed conditions for ClusterResourceBinding.

ResourceContent

ResourceContent contains the content of a resource

Appears in:

ResourceIdentifier

ResourceIdentifier identifies one Kubernetes resource.

Appears in:

Field Description
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 Envelope identifies the envelope object that contains this resource.

ResourcePlacementStatus

ResourcePlacementStatus represents the placement status of selected resources for one target cluster.

Appears in:

Field Description
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.
failedPlacements FailedResourcePlacement array FailedResourcePlacements is a list of all the resources failed to be placed to the given cluster. 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.
conditions Condition array Conditions is an array of current observed conditions for ResourcePlacementStatus.

ResourceSnapshotSpec

ResourceSnapshotSpec defines the desired state of ResourceSnapshot.

Appears in:

Field Description
selectedResources ResourceContent array SelectedResources contains a list of resources selected by ResourceSelectors.

ResourceSnapshotStatus

Appears in:

Field Description
conditions Condition array Conditions is an array of current observed conditions for ResourceSnapshot.

RollingUpdateConfig

RollingUpdateConfig contains the config to control the desired behavior of rolling update.

Appears in:

Field Description
maxUnavailable IntOrString 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. This can not be 0 if MaxSurge is 0. Defaults to 25%.
maxSurge IntOrString 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 upgrade of resources on the same cluster. This can not be 0 if MaxUnavailable is 0. Defaults to 25%.
unavailablePeriodSeconds integer UnavailablePeriodSeconds is used to config the time to wait between rolling out phases. A resource placement is considered available after UnavailablePeriodSeconds seconds has passed after the resources are applied to the target cluster successfully. Default is 60.

RolloutStrategy

RolloutStrategy describes how to roll out a new change in selected resources to target clusters.

Appears in:

Field Description
type RolloutStrategyType Type of rollout. The only supported type is "RollingUpdate". Default is "RollingUpdate".
rollingUpdate RollingUpdateConfig Rolling update config params. Present only if RolloutStrategyType = RollingUpdate.

RolloutStrategyType

Underlying type: string

Appears in:

SchedulingPolicySnapshotSpec

SchedulingPolicySnapshotSpec defines the desired state of SchedulingPolicySnapshot.

Appears in:

Field Description
policy PlacementPolicy Policy defines how to select member clusters to place the selected resources. If unspecified, all the joined member clusters are selected.
policyHash byte array PolicyHash is the sha-256 hash value of the Policy field.

SchedulingPolicySnapshotStatus

SchedulingPolicySnapshotStatus defines the observed state of SchedulingPolicySnapshot.

Appears in:

Field Description
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 array Conditions is an array of current observed conditions for SchedulingPolicySnapshot.
targetClusters 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.

TopologySpreadConstraint

TopologySpreadConstraint specifies how to spread resources among the given cluster topology.

Appears in:

Field Description
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.
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 <key, value> 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 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.

UnsatisfiableConstraintAction

Underlying type: string

UnsatisfiableConstraintAction defines the type of actions that can be taken if a constraint is not satisfied.

Appears in:

Toleration

Toleration is used by ClusterResourcePlacement to tolerate any taint that matches the triple <key,value,effect> using the matching operator .

Appears in:

Field Description
key string The key refers to the taint key that the toleration applies to.
operator string Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal.
value string The value refers to the taint value that the toleration applies to. If the operator is Exists, the value should be empty.
effect string Effect is the effect of the taint on any ClusterResourcePlacement that does not tolerate the taint.

Work

Work is the Schema for the works API.

Appears in:

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string Work
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec WorkSpec spec defines the workload of a work.
status WorkStatus status defines the status of each applied manifest on the spoke cluster.

WorkList

WorkList contains a list of Work.

Field Description
apiVersion string placement.kubernetes-fleet.io/v1beta1
kind string WorkList
kind string Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items Work array List of works.

WorkResourceIdentifier

WorkResourceIdentifier provides the identifiers needed to interact with any arbitrary object. Renamed original "ResourceIdentifier" so that it won't conflict with ResourceIdentifier defined in the clusterresourceplacement_types.go.

Appears in:

Field Description
ordinal integer Ordinal represents an index in manifests list, so the condition can still be linked to a manifest even thougth manifest cannot be parsed successfully.
group string Group is the group of the resource.
version string Version is the version of the resource.
kind string Kind is the kind of the resource.
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

WorkSpec

WorkSpec defines the desired state of Work.

Appears in:

Field Description
workload WorkloadTemplate Workload represents the manifest workload to be deployed on spoke cluster

WorkStatus

WorkStatus defines the observed state of Work.

Appears in:

Field Description
conditions Condition 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 trasitioning 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 array ManifestConditions represents the conditions of each resource in work deployed on spoke cluster.

WorkloadTemplate

WorkloadTemplate represents the manifest workload to be deployed on spoke cluster

Appears in:

Field Description
manifests Manifest array Manifests represents a list of kuberenetes resources to be deployed on the spoke cluster.