Skip to content

SyncTarget

SyncTarget CRD schema reference (group workload.kcp.io)

SyncTarget describes a member cluster capable of running workloads.
Full name:
synctargets.workload.kcp.io
Group:
workload.kcp.io
Singular name:
synctarget
Plural name:
synctargets
Scope:
Cluster
Versions:
v1alpha1

Version v1alpha1

Properties

.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

.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

.metadata

object

.metadata.name

string

.spec

object

Spec holds the desired state.

.spec.cells

object

Cells is a set of labels to identify the cells the SyncTarget belongs to. SyncTargets with the same cells run as they are in the same physical cluster. Each key/value pair in the cells should be added and updated by service providers (i.e. a network provider updates one key/value, while the storage provider updates another.)

.spec.evictAfter

string

EvictAfter controls cluster schedulability of new and existing workloads. After the EvictAfter time, any workload scheduled to the cluster will be unassigned from the cluster. By default, workloads scheduled to the cluster are not evicted.

.spec.supportedAPIExports

array

SupportedAPIExports defines a set of APIExports supposed to be supported by this SyncTarget. The SyncTarget will be selected to deploy the workload only when the resource schema on the SyncTarget is compatible with the resource schema included in the exports. If it is not set, the kubernetes export in the same workspace will be used by default.

.spec.supportedAPIExports[*]

object

APIExportReference provides the fields necessary to resolve an APIExport.

.spec.supportedAPIExports[*].export

string Required

export is the name of the APIExport.

.spec.supportedAPIExports[*].path

string

path is the fully-qualified path to the workspace containing the APIExport. If it is empty, the current workspace is assumed.

.spec.unschedulable

boolean

Unschedulable controls cluster schedulability of new workloads. By default, cluster is schedulable.

.status

object

Status communicates the observed state.

.status.allocatable

object

Allocatable represents the resources that are available for scheduling.

.status.capacity

object

Capacity represents the total resources of the cluster.

.status.conditions

array

Current processing state of the SyncTarget.

.status.conditions[*]

object

Condition defines an observation of a object operational state.

.status.conditions[*].lastTransitionTime

string Required

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

.status.conditions[*].message

string

A human readable message indicating details about the transition. This field may be empty.

.status.conditions[*].reason

string

The reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

.status.conditions[*].severity

string

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

.status.conditions[*].status

string Required

Status of the condition, one of True, False, Unknown.

.status.conditions[*].type

string Required

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

.status.lastSyncerHeartbeatTime

string

A timestamp indicating when the syncer last reported status.

.status.syncedResources

array

SyncedResources represents the resources that the syncer of the SyncTarget can sync. It MUST be updated by kcp server.

.status.syncedResources[*]

object

.status.syncedResources[*].group

string

group is the name of an API group. For core groups this is the empty string ‘“”’.

.status.syncedResources[*].identityHash

string

identityHash is the identity for a given APIExport that the APIResourceSchema belongs to. The hash can be found on APIExport and APIResourceSchema’s status. It will be empty for core types.

.status.syncedResources[*].resource

string Required

resource is the name of the resource. Note: it is worth noting that you can not ask for permissions for resource provided by a CRD not provided by an api export.

.status.syncedResources[*].state

string

state indicate whether the resources schema is compatible to the SyncTarget. It must be updated by syncer after checking the API compatibility on SyncTarget.

.status.syncedResources[*].versions

array Required

versions are the resource versions the syncer can choose to sync depending on availability on the downstream cluster. Conversion to the storage version, if necessary, will be done on the kcp side. The versions are ordered by precedence and the first version compatible is preferred by syncer.

.status.syncedResources[*].versions[*]

string

.status.virtualWorkspaces

array

VirtualWorkspaces contains all virtual workspace URLs.

.status.virtualWorkspaces[*]

object

.status.virtualWorkspaces[*].syncerURL

string Required

SyncerURL is the URL of the syncer virtual workspace.

.status.virtualWorkspaces[*].upsyncerURL

string Required

UpsyncerURL is the URL of the upsyncer virtual workspace.