APIExportEndpointSlice
APIExportEndpointSlice CRD schema reference (group apis.kcp.io)¶
Version v1alpha1
Properties
.apiVersion
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
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
.spec
spec holds the desired state: - the targeted APIExport - an optional partition for filtering
.spec.export
export points to the API export.
.spec.export.name
name is the name of the APIExport that describes the API.
.spec.export.path
path is a logical cluster path where the APIExport is defined. If the path is unset, the logical cluster of the APIBinding is used.
.spec.partition
partition (optional) points to a partition that is used for filtering the endpoints of the APIExport part of the slice.
.status
status communicates the observed state: the filtered list of endpoints for the APIExport service.
.status.conditions
conditions is a list of conditions that apply to the APIExportEndpointSlice.
.status.conditions[*]
Condition defines an observation of a object operational state.
.status.conditions[*].lastTransitionTime
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
A human readable message indicating details about the transition. This field may be empty.
.status.conditions[*].reason
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
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
Status of the condition, one of True, False, Unknown.
.status.conditions[*].type
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.endpoints
endpoints contains all the URLs of the APIExport service.
.status.endpoints[*]
Endpoint is one URL an endpoint slice advertises, and the shards it is meant for.
Endpoint slices are read unstructured where the kind is only known at runtime – an APIExport may point at any kind that follows this shape – so this is the contract those readers rely on: status.endpoints[] with a url, and optionally a shards selector saying which shards that url serves.
.status.endpoints[*].shards
shards says which shards this URL serves.
Saying nothing – the zero value – means the URL was composed for one specific shard and is matched by URL prefix instead, which is what kcp’s own controllers publish. A status should not mix the two: either every endpoint says which shards it is for, or none does.
.status.endpoints[*].shards.matchAll
matchAll says this URL serves every shard: one virtual workspace for the whole installation, which is what a provider running a single virtual workspace publishes.
.status.endpoints[*].shards.selector
selector picks the shards this URL serves by matching against shard
labels. Every shard labels itself with its own name, so a single shard is
selected with matchLabels: {name:
The most specific selector that matches a shard wins, so a URL for a region overrides one for the whole installation where the region applies.
.status.endpoints[*].shards.selector.matchExpressions
matchExpressions is a list of label selector requirements. The requirements are ANDed.
.status.endpoints[*].shards.selector.matchExpressions[*]
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
.status.endpoints[*].shards.selector.matchExpressions[*].key
key is the label key that the selector applies to.
.status.endpoints[*].shards.selector.matchExpressions[*].operator
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
.status.endpoints[*].shards.selector.matchExpressions[*].values
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
.status.endpoints[*].shards.selector.matchExpressions[*].values[*]
.status.endpoints[*].shards.selector.matchLabels
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
.status.endpoints[*].url
url is the virtual workspace URL serving this endpoint.
.status.shardSelector
shardSelector is the selector used to filter the shards. It is used to filter the shards when determining partition scope when deriving the endpoints. This is set by owning shard, and is used by follower shards to determine if its inscope or not.