Skip to content

APIServiceExportTemplate

APIServiceExportTemplate CRD schema reference (group kube-bind.io)

APIServiceExportTemplate groups multiple CRDs with related resources (permissionClaims) as a Service definition. It is used by a web UI or CLI to allow users to select a set of resources to export from provider cluster to consumer cluster. This object is considered a static asset on the provider side and is not expected to change frequently.
Full name:
apiserviceexporttemplates.kube-bind.io
Group:
kube-bind.io
Singular name:
apiserviceexporttemplate
Plural name:
apiserviceexporttemplates
Scope:
Cluster
Versions:
v1alpha2

Version v1alpha2

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 Required

spec specifies the template.

.spec.description

string

description is an optional description of the template.

.spec.namespaces

array

Namespaces specifies the namespaces that should be bootstrapped as part of this template. When objects originate from provider side, consumer does not always know the necessary details This field allows provider to pre-heat the necessary namespaces on provider side by creating APIServiceNamespace objects attached to the APIServiceExport. More namespaces can be created later by the consumer.

.spec.namespaces[*]

object

.spec.namespaces[*].name

string Required

name is the name of the namespace to create on provider side.

.spec.permissionClaims

array

permissionClaims defines the permission claims required by this template.

.spec.permissionClaims[*]

object

PermissionClaim selects objects of a GVR that a service provider may request and that a consumer may accept and allow the service provider access to.

.spec.permissionClaims[*].group

string

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

.spec.permissionClaims[*].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 service binding export.

.spec.permissionClaims[*].selector

object Required

Selector is a resource selector that selects objects of a GVR.

.spec.permissionClaims[*].selector.labelSelector

object

LabelSelector is a label selector that selects objects of a GVR.

.spec.permissionClaims[*].selector.labelSelector.matchExpressions

array

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

.spec.permissionClaims[*].selector.labelSelector.matchExpressions[*]

object

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

.spec.permissionClaims[*].selector.labelSelector.matchExpressions[*].key

string Required

key is the label key that the selector applies to.

.spec.permissionClaims[*].selector.labelSelector.matchExpressions[*].operator

string Required

operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

.spec.permissionClaims[*].selector.labelSelector.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.

.spec.permissionClaims[*].selector.labelSelector.matchExpressions[*].values[*]

string

.spec.permissionClaims[*].selector.labelSelector.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.

.spec.permissionClaims[*].selector.namedResources

array

NamedResource is a shorthand for selecting a single resource by name and namespace.

.spec.permissionClaims[*].selector.namedResources[*]

object

NamedResource selects a specific resource by name and namespace.

.spec.permissionClaims[*].selector.namedResources[*].name

string Required

Name is the name of the resource. Name matches the metadata.name field of the underlying object.

.spec.permissionClaims[*].selector.namedResources[*].namespace

string

Namespace represents namespace where an object of the given group/resource may be managed. Namespaces matches against the metadata.namespace field. If not provided, the object is assumed to be cluster-scoped. Namespaces field is ignored for namespaced isolation mode.

.spec.permissionClaims[*].selector.references

array

Reference is a reference to the object that contains jsonPath to select objects of a GVR.

.spec.permissionClaims[*].selector.references[*]

object

SelectorReference selects objects of a GVR via a reference to another object.

.spec.permissionClaims[*].selector.references[*].group

string

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

.spec.permissionClaims[*].selector.references[*].jsonPath

object Required

JSONPath is a JSONPath expression that selects the name and namespace of the resource from the referenced object.

.spec.permissionClaims[*].selector.references[*].jsonPath.name

string

.spec.permissionClaims[*].selector.references[*].jsonPath.namespace

string

.spec.permissionClaims[*].selector.references[*].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 service binding export.

.spec.permissionClaims[*].selector.references[*].versions

array

versions is a list of versions that should be used to fetch the referenced object. If not specified and apiserviceexport contains versions for the same group/resource, those versions are used. Otherwise, references is considered invalid.

.spec.permissionClaims[*].selector.references[*].versions[*]

string

.spec.resources

array Required

resources defines the CRDs that are part of this template.

.spec.resources[*]

object

.spec.resources[*].group

string

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

.spec.resources[*].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 service binding export.

.spec.resources[*].versions

array

versions is a list of versions that should be exported. If this is empty a sensible default is chosen by the service provider.

.spec.resources[*].versions[*]

string

.spec.scope

string Required

scope defines the scope of the resources in this template.

.status

object

status contains reconciliation information for the template.

.status.conditions

array

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

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