Skip to content

APIExportEndpointSlice

APIExportEndpointSlice CRD schema reference (group apis.kcp.io)

APIExportEndpointSlice is a sink for the endpoints of an APIExport. These endpoints can be filtered by a Partition. They get consumed by the managers to start controllers and informers for the respective APIExport services.
Full name:
apiexportendpointslices.apis.kcp.io
Group:
apis.kcp.io
Singular name:
apiexportendpointslice
Plural name:
apiexportendpointslices
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

.spec

object

spec holds the desired state: - the targeted APIExport - an optional partition for filtering

.spec.export

object Required

export points to the API export.

.spec.export.name

string Required

name is the name of the APIExport that describes the API.

.spec.export.path

string

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

string

partition (optional) points to a partition that is used for filtering the endpoints of the APIExport part of the slice.

.status

object

status communicates the observed state: the filtered list of endpoints for the APIExport service.

.status.conditions

array

conditions is a list of conditions that apply to the APIExportEndpointSlice.

.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.endpoints

array

endpoints contains all the URLs of the APIExport service.

.status.endpoints[*]

object

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

object

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

boolean

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

object

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: }, and groupings such as a region use whatever labels the installation puts on its shards – the same ones Partition and PartitionSet select by.

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

array

matchExpressions is a list of label selector requirements. The requirements are ANDed.

.status.endpoints[*].shards.selector.matchExpressions[*]

object

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

string Required

key is the label key that the selector applies to.

.status.endpoints[*].shards.selector.matchExpressions[*].operator

string Required

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

array

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[*]

string

.status.endpoints[*].shards.selector.matchLabels

object

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

string Required

url is the virtual workspace URL serving this endpoint.

.status.shardSelector

string

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.