v1alpha1

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1alpha1 contains Connect resources. +kubebuilder:object:generate=true +groupName=connect.upbound.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group        = "connect.upbound.io"
	GroupVersion = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: GroupVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// APIServiceBindingKind is kind of APIServiceBinding
	APIServiceBindingKind = reflect.TypeOf(APIServiceBinding{}).Name()
)
View Source
var (
	// APIServiceBindingRequestKind is kind of APIServiceBindingRequest
	APIServiceBindingRequestKind = reflect.TypeOf(APIServiceBindingRequest{}).Name()
)
View Source
var (
	// APIServiceExportKind is kind of APIServiceExport
	APIServiceExportKind = reflect.TypeOf(APIServiceExport{}).Name()
)
View Source
var (
	// ClusterBindingKind is kind of ClusterBinding
	ClusterBindingKind = reflect.TypeOf(ClusterBinding{}).Name()
)
View Source
var (
	// NamespaceBindingKind is kind of NamespaceBinding
	NamespaceBindingKind = reflect.TypeOf(NamespaceBinding{}).Name()
)

Functions

This section is empty.

Types

type APIServiceBinding

type APIServiceBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +required
	Spec   APIServiceBindingSpec   `json:"spec,omitempty"`
	Status APIServiceBindingStatus `json:"status,omitempty"`
}

APIServiceBinding binds an API service represented by an APIServiceExport in an Upbound Space into a consumer cluster. This object lives in the consumer cluster. +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:printcolumn:name="Versions",type="string",JSONPath=`.metadata.annotations.connect\.upbound\.io/versions` +kubebuilder:printcolumn:name="Export",type="string",JSONPath=`.spec.export.name` +kubebuilder:printcolumn:name="Namespace Binding",type="string",JSONPath=`.spec.isolation.namespaceIdentity` +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={connect},shortName={binding,bindings}

func (*APIServiceBinding) DeepCopy

func (in *APIServiceBinding) DeepCopy() *APIServiceBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBinding.

func (*APIServiceBinding) DeepCopyInto

func (in *APIServiceBinding) DeepCopyInto(out *APIServiceBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceBinding) DeepCopyObject

func (in *APIServiceBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceBindingList

type APIServiceBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []APIServiceBinding `json:"items"`
}

APIServiceBindingList contains a list of APIServiceBindings. +kubebuilder:object:root=true

func (*APIServiceBindingList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingList.

func (*APIServiceBindingList) DeepCopyInto

func (in *APIServiceBindingList) DeepCopyInto(out *APIServiceBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceBindingList) DeepCopyObject

func (in *APIServiceBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceBindingRequest

type APIServiceBindingRequest struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +required
	Spec   APIServiceBindingRequestSpec   `json:"spec,omitempty"`
	Status APIServiceBindingRequestStatus `json:"status,omitempty"`
}

APIServiceBindingRequest represents the binding requests of a consumer cluster and provides the bindable exports in a Spaces group and scheduling information for each consumer cluster namespace. This object lives in the service provider Upbound Space cluster, inside a group, alongside the APIServiceExports. Created per consumer cluster in every group it consumes API services from, named the same as the ClusterBinding.

This object lives in the service provider Upbound Space. +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:printcolumn:name="Exports",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Namespaces",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced,categories={connect},shortName={bindingrequest,bindingrequests}

func (*APIServiceBindingRequest) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequest.

func (*APIServiceBindingRequest) DeepCopyInto

func (in *APIServiceBindingRequest) DeepCopyInto(out *APIServiceBindingRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceBindingRequest) DeepCopyObject

func (in *APIServiceBindingRequest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceBindingRequestList

type APIServiceBindingRequestList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []APIServiceBindingRequest `json:"items"`
}

APIServiceBindingRequestList contains a list of APIServiceBindingRequest. +kubebuilder:object:root=true

func (*APIServiceBindingRequestList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestList.

func (*APIServiceBindingRequestList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceBindingRequestList) DeepCopyObject

func (in *APIServiceBindingRequestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceBindingRequestRef

type APIServiceBindingRequestRef struct {
	// uid is the uid of the APIServiceBindingRequest object
	UID types.UID `json:"uid,omitempty"`
	// name is the name of the APIServiceBindingRequest object
	Name string `json:"name,omitempty"`
	// group is the Space group of the APIServiceBindingRequest object
	Group string `json:"group,omitempty"`
}

APIServiceBindingRequestRef identifies an APIServiceBindingRequest in the service provider Upbound Space.

func (*APIServiceBindingRequestRef) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestRef.

func (*APIServiceBindingRequestRef) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceBindingRequestSpec

type APIServiceBindingRequestSpec struct {
	// bindableExports is the list of bindable APIServiceExports for the consumer
	// cluster. A user adding a bindable export needs verb=bind
	// permissions against the APIServiceExport.
	// +listType=map
	// +listMapKey=name
	BindableExports []APIServiceExportRef `json:"bindableExports"`
	// namespaces defines a bound API consumption
	// +listType=map
	// +listMapKey=name
	Namespaces []NamespaceRequest `json:"namespaces"`
}

APIServiceBindingRequestSpec defines the desired state of APIServiceBindingRequest.

func (*APIServiceBindingRequestSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestSpec.

func (*APIServiceBindingRequestSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceBindingRequestStatus

type APIServiceBindingRequestStatus struct {
	xpv1.ResourceStatus `json:",inline"`

	// +listType=map
	// +listMapKey=name
	BoundExports []ExportStatus `json:"boundExports,omitempty"`

	// Message provides human-readable information about the current status of
	// the APIServiceBindingRequest.
	// +optional
	Message string `json:"message,omitempty"`
}

APIServiceBindingRequestStatus defines the observed state of a APIServiceBindingRequest. It reflects the status of the CRD of the consumer cluster.

func (*APIServiceBindingRequestStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestStatus.

func (*APIServiceBindingRequestStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceBindingSpec

type APIServiceBindingSpec struct {
	// kubeconfigSecretRef is a reference to a secret containing the kubeconfig
	// to access the APIServiceExports in the Upbound Space. The user setting this
	// field needs verb=get permissions to the referenced secret.
	// Secrets should be named with the UID of the ClusterBinding
	// that was created at the Upbound Space for the particular
	// app cluster.
	// +required
	KubeconfigSecretRef xpv1.SecretReference `json:"kubeconfigSecretRef,omitempty"`
	// export is a reference of a target APIServiceExport to bind to.
	// +required
	Export APIServiceExportRef `json:"export,omitempty"`
	// request is a reference to an APIServiceBindingRequest at the service
	// provider Upbound Space. It is unset first, then set by the agent
	// afterward.
	Request APIServiceBindingRequestRef `json:"request,omitempty"`
	// clusterBinding is a reference to a ClusterBinding at the service
	// provider Upbound Space. This must match the name of the ClusterBinding
	// provisioned for the consumer cluster, at the service provider Upbound Space.
	// +required
	ClusterBinding ClusterBindingRef `json:"clusterBinding,omitempty"`
	// isolation controls how the bound API will be consumed identity-wise
	// +kubebuilder:default={}
	Isolation IsolationConfig `json:"isolation,omitempty"`
}

APIServiceBindingSpec defines the configuration for an APIServiceBinding.

func (*APIServiceBindingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingSpec.

func (*APIServiceBindingSpec) DeepCopyInto

func (in *APIServiceBindingSpec) DeepCopyInto(out *APIServiceBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceBindingStatus

type APIServiceBindingStatus struct {
	xpv1.ResourceStatus `json:",inline"`

	// Message provides human-readable information about the current status of
	// the APIServiceBinding.
	// +optional
	Message string `json:"message,omitempty"`
}

APIServiceBindingStatus defines the status of a APIServiceBinding. Reports the APIServiceExport that was bound to, and the success status.

func (*APIServiceBindingStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingStatus.

func (*APIServiceBindingStatus) DeepCopyInto

func (in *APIServiceBindingStatus) DeepCopyInto(out *APIServiceBindingStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExport

type APIServiceExport struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +required
	Spec   APIServiceExportSpec   `json:"spec,omitempty"`
	Status APIServiceExportStatus `json:"status,omitempty"`
}

APIServiceExport specifies the resource to be exported. Its spec is that of a CRD without webhooks. This resource lives in a service provider group of a Space. The CRD can be sourced from a control plane in the same Spaces group that the export lives.

+kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:printcolumn:name="Description",type="string",JSONPath=".spec.description" +kubebuilder:printcolumn:name="Group",type="string",JSONPath=".status.apiGroup" +kubebuilder:printcolumn:name="Resource",type="string",JSONPath=".status.names.plural" +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced,categories={connect},shortName={export,exports}

func (*APIServiceExport) DeepCopy

func (in *APIServiceExport) DeepCopy() *APIServiceExport

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExport.

func (*APIServiceExport) DeepCopyInto

func (in *APIServiceExport) DeepCopyInto(out *APIServiceExport)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceExport) DeepCopyObject

func (in *APIServiceExport) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceExportCRDSpec

type APIServiceExportCRDSpec struct {
	// group is the API group of the defined custom resource.
	// k8s core API is not supported.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern="^[a-z0-9]+(.[a-z0-9-]+)*$"
	APIGroup string `json:"apiGroup"`

	// names specify the resource and kind names for the custom resource.
	//
	// +required
	Names apiextensionsv1.CustomResourceDefinitionNames `json:"names"`

	// scope indicates whether the defined custom resource is cluster- or namespace-scoped.
	// Allowed values are `Cluster` and `Namespaced`.
	//
	// +optional
	// +kubebuilder:validation:Enum=Cluster;Namespaced
	// +kubebuilder:default=Namespaced
	Scope apiextensionsv1.ResourceScope `json:"scope"`

	// versions is the API version of the defined custom resource.
	//
	// +required
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MinItems=1
	Versions []APIServiceExportVersion `json:"versions"`
}

APIServiceExportCRDSpec is an apiextensionsv1.CustomResourceDefinitionSpec equivalent, that represents the CRD to export.

func (*APIServiceExportCRDSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportCRDSpec.

func (*APIServiceExportCRDSpec) DeepCopyInto

func (in *APIServiceExportCRDSpec) DeepCopyInto(out *APIServiceExportCRDSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportList

type APIServiceExportList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []APIServiceExport `json:"items"`
}

APIServiceExportList contains a list of APIServiceExports.

+kubebuilder:object:root=true

func (*APIServiceExportList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportList.

func (*APIServiceExportList) DeepCopyInto

func (in *APIServiceExportList) DeepCopyInto(out *APIServiceExportList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIServiceExportList) DeepCopyObject

func (in *APIServiceExportList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIServiceExportRef

type APIServiceExportRef struct {
	// name is the name of the APIServiceExport
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// versions is the versions of the exported API
	// Only one version is allowed for now. More might be allowed in the future.
	// +required
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=1
	Versions []string `json:"versions"`
}

APIServiceExportRef identifies an APIServiceExport

func (*APIServiceExportRef) DeepCopy

func (in *APIServiceExportRef) DeepCopy() *APIServiceExportRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportRef.

func (*APIServiceExportRef) DeepCopyInto

func (in *APIServiceExportRef) DeepCopyInto(out *APIServiceExportRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportSchema

type APIServiceExportSchema struct {
	// openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.
	//
	// +kubebuilder:pruning:PreserveUnknownFields
	// +structType=atomic
	// +required
	// +kubebuilder:validation:Required
	OpenAPIV3Schema runtime.RawExtension `json:"openAPIV3Schema"`
}

APIServiceExportSchema describes the validation schema of an API

func (*APIServiceExportSchema) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportSchema.

func (*APIServiceExportSchema) DeepCopyInto

func (in *APIServiceExportSchema) DeepCopyInto(out *APIServiceExportSchema)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportSource

type APIServiceExportSource struct {
	// ControlPlane is a reference to a control plane in the same Spaces group
	// +required
	ControlPlane ControlPlaneNameRef `json:"controlPlane"`
}

APIServiceExportSource defines the source of the exported API. It must refer to a control plane in the same Spaces group with the APIServiceExport.

func (*APIServiceExportSource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportSource.

func (*APIServiceExportSource) DeepCopyInto

func (in *APIServiceExportSource) DeepCopyInto(out *APIServiceExportSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportSpec

type APIServiceExportSpec struct {
	// apiGroup is the group name for the exported API
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern="^[a-z0-9]+(.[a-z0-9-]+)*$"
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="apiGroup is immutable"
	APIGroup string `json:"apiGroup"`

	// resource is the name of the exported API resource
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="resource is immutable"
	Resource string `json:"resource"`

	// description is a human-readable description of the exported API.
	// It should be a short one-liner, with a maximum length of 48 chars.
	// +optional
	// +kubebuilder:validation:items:MaxLength=48
	Description string `json:"description,omitempty"`
	// apiSource is a reference to control plane that is the
	// source of truth of the CRD schema.
	// It can only be a control plane in the same Spaces group
	//
	// +required
	APISource APIServiceExportSource `json:"apiSource"`

	// enableLocatorsAtClaims controls whether to set locator annotations
	// on claims, that provides information about the control plane
	// that manages the claim.
	//
	// When true, sets the following annotations on the claim:
	//   connect.upbound.io/namespace
	//   connect.upbound.io/controlplane
	//   connect.upbound.io/group
	//   connect.upbound.io/space
	//
	// +kubebuilder:default=false
	EnableLocatorsAtClaims bool `json:"enableLocatorsAtClaims"`
}

APIServiceExportSpec defines the desired state of a APIServiceExport.

func (*APIServiceExportSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportSpec.

func (*APIServiceExportSpec) DeepCopyInto

func (in *APIServiceExportSpec) DeepCopyInto(out *APIServiceExportSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportStatus

type APIServiceExportStatus struct {
	xpv1.ResourceStatus `json:",inline"`

	APIServiceExportCRDSpec `json:",inline"`
	// Message provides human-readable information about the current status of
	// the APIServiceExport.
	//
	// +optional
	Message string `json:"message,omitempty"`
}

APIServiceExportStatus defines the observed state of a APIServiceExport.

func (*APIServiceExportStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportStatus.

func (*APIServiceExportStatus) DeepCopyInto

func (in *APIServiceExportStatus) DeepCopyInto(out *APIServiceExportStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServiceExportVersion

type APIServiceExportVersion struct {
	// name is the version name, e.g. “v1”, “v2beta1”, etc.
	// The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern=^v[1-9][0-9]*([a-z]+[1-9][0-9]*)?$
	Name string `json:"name"`
	// storage indicates this version should be used when persisting custom resources to storage.
	// There must be exactly one version with storage=true.
	//
	// +required
	// +kubebuilder:validation:Required
	Storage bool `json:"storage"`
	//nolint:gocritic // linter thinks below is a deprecation comment, it is a field
	// deprecated indicates this version of the custom resource API is deprecated.
	// When set to true, API requests to this version receive a warning header in the server response.
	// Defaults to false.
	//
	// +optional
	Deprecated bool `json:"deprecated,omitempty"`
	// deprecationWarning overrides the default warning returned to API clients.
	// May only be set when `deprecated` is true.
	// The default warning indicates this version is deprecated and recommends use
	// of the newest served version of equal or greater stability, if one exists.
	//
	// +optional
	DeprecationWarning *string `json:"deprecationWarning,omitempty"`
	// schema describes the structural schema used for validation, pruning, and defaulting
	// of this version of the custom resource.
	//
	// +required
	// +kubebuilder:validation:Required
	Schema APIServiceExportSchema `json:"schema"`
	// subresources specify what subresources this version of the defined custom resource have.
	//
	// +optional
	Subresources apiextensionsv1.CustomResourceSubresources `json:"subresources,omitempty"`
	// additionalPrinterColumns specifies additional columns returned in Table output.
	// See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details.
	// If no columns are specified, a single column displaying the age of the custom resource is used.
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	AdditionalPrinterColumns []apiextensionsv1.CustomResourceColumnDefinition `json:"additionalPrinterColumns,omitempty"`
}

APIServiceExportVersion describes one API version of a resource.

func (*APIServiceExportVersion) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceExportVersion.

func (*APIServiceExportVersion) DeepCopyInto

func (in *APIServiceExportVersion) DeepCopyInto(out *APIServiceExportVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterBinding

type ClusterBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +required
	Spec   ClusterBindingSpec   `json:"spec,omitempty"`
	Status ClusterBindingStatus `json:"status,omitempty"`
}

ClusterBinding represents a bound consumer cluster. It lives in the Upbound Spaces that provides the APIServiceExports.

+kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:printcolumn:name="Description",type="string",JSONPath=`.status.description` +kubebuilder:printcolumn:name="Agent",type="string",JSONPath=`.status.agentVersion` +kubebuilder:printcolumn:name="Heartbeat",type="date",JSONPath=`.status.lastHeartbeatTime` +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={connect}

func (*ClusterBinding) DeepCopy

func (in *ClusterBinding) DeepCopy() *ClusterBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBinding.

func (*ClusterBinding) DeepCopyInto

func (in *ClusterBinding) DeepCopyInto(out *ClusterBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterBinding) DeepCopyObject

func (in *ClusterBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterBindingList

type ClusterBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClusterBinding `json:"items"`
}

ClusterBindingList contains a list of ClusterBindings. +kubebuilder:object:root=true

func (*ClusterBindingList) DeepCopy

func (in *ClusterBindingList) DeepCopy() *ClusterBindingList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBindingList.

func (*ClusterBindingList) DeepCopyInto

func (in *ClusterBindingList) DeepCopyInto(out *ClusterBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterBindingList) DeepCopyObject

func (in *ClusterBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterBindingRef

type ClusterBindingRef struct {
	// name is the name of the ClusterBinding object to reference
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name,omitempty"`
}

ClusterBindingRef identifies a ClusterBinding in the service provider Upbound Space.

func (*ClusterBindingRef) DeepCopy

func (in *ClusterBindingRef) DeepCopy() *ClusterBindingRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBindingRef.

func (*ClusterBindingRef) DeepCopyInto

func (in *ClusterBindingRef) DeepCopyInto(out *ClusterBindingRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterBindingSpec

type ClusterBindingSpec struct{}

ClusterBindingSpec defines the desired state of a ClusterBinding.

func (*ClusterBindingSpec) DeepCopy

func (in *ClusterBindingSpec) DeepCopy() *ClusterBindingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBindingSpec.

func (*ClusterBindingSpec) DeepCopyInto

func (in *ClusterBindingSpec) DeepCopyInto(out *ClusterBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterBindingStatus

type ClusterBindingStatus struct {
	// conditions is a list of conditions that apply to the ClusterBinding. It is
	// updated by the konnector agent and the service provider.
	xpv1.ResourceStatus `json:",inline"`
	// description is the human-readable description of the consumer cluster.
	// +optional
	Description string `json:"description,omitempty"`
	// lastHeartbeatTime is the last time the konnector updated the status.
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime,omitempty"`
	// heartbeatInterval is the maximal interval between heartbeats that the
	// konnector promises to send. The service provider can assume that the
	// konnector is not unhealthy if it does not receive a heartbeat within
	// this time.
	HeartbeatInterval metav1.Duration `json:"heartbeatInterval,omitempty"`
	// konnectorVersion is the version of the konnector that is running on the
	// consumer cluster.
	AgentVersion string `json:"agentVersion,omitempty"`

	// Message provides human-readable information about the current status of
	// the ClusterBinding.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterBindingStatus stores status information about a service binding. It is updated by both the konnector and the service provider.

func (*ClusterBindingStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBindingStatus.

func (*ClusterBindingStatus) DeepCopyInto

func (in *ClusterBindingStatus) DeepCopyInto(out *ClusterBindingStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControlPlaneNameRef

type ControlPlaneNameRef struct {
	// Name is the name of the control plane
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

ControlPlaneNameRef identifies a control plane with its name.

func (*ControlPlaneNameRef) DeepCopy

func (in *ControlPlaneNameRef) DeepCopy() *ControlPlaneNameRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneNameRef.

func (*ControlPlaneNameRef) DeepCopyInto

func (in *ControlPlaneNameRef) DeepCopyInto(out *ControlPlaneNameRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControlPlaneNamespaceTarget

type ControlPlaneNamespaceTarget struct {
	// group is the Spaces group that the control plane belongs to
	// +required
	// +kubebuilder:validation:MinLength=1
	Group string `json:"group"`
	// name is the name of the control plane
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// namespace is the namespace name in the control plane
	// +required
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`
}

ControlPlaneNamespaceTarget is a reference to a namespace in a control plane

func (*ControlPlaneNamespaceTarget) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneNamespaceTarget.

func (*ControlPlaneNamespaceTarget) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExportStatus

type ExportStatus struct {
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// +required
	// +kubebuilder:validation:MinLength=1
	Resource string `json:"resource"`
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern="^[a-z0-9]+(.[a-z0-9-]+)*$"
	APIGroup string `json:"apiGroup"`
	// conditions indicate state for particular aspects of a CustomResourceDefinition
	// +optional
	// +listType=map
	// +listMapKey=type
	Conditions []apiextensionsv1.CustomResourceDefinitionCondition `json:"conditions" protobuf:"bytes,1,opt,name=conditions"`
	// acceptedNames are the names that are actually being used to serve discovery.
	// They may be different from the names in spec.
	// +optional
	AcceptedNames apiextensionsv1.CustomResourceDefinitionNames `json:"acceptedNames"`
	// storedVersions lists all versions of CustomResources that were ever persisted. Tracking these
	// versions allows a migration path for stored versions in etcd. The field is mutable
	// so a migration controller can finish a migration to another version (ensuring
	// no old objects are left in storage), and then remove the rest of the
	// versions from this list.
	// Versions may not be removed from `spec.versions` while they exist in this list.
	// +optional
	BoundVersions []string `json:"boundVersions"`
	// versions are the exported versions
	// +listType=set
	Versions []string `json:"versions"`
}

ExportStatus defines the status of an exported API and corresponding CRD

func (*ExportStatus) DeepCopy

func (in *ExportStatus) DeepCopy() *ExportStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportStatus.

func (*ExportStatus) DeepCopyInto

func (in *ExportStatus) DeepCopyInto(out *ExportStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IsolationConfig

type IsolationConfig struct {
	// namespaceIdentity configures whether per-namespace
	// identities via NamespaceBinding objects are required.
	// when consuming bound APIs.
	// Valid values are: Required, Allowed, Disallowed
	// +optional
	// +kubebuilder:validation:Enum=Allowed;Disallowed;Required
	// +kubebuilder:default=Allowed
	NamespaceIdentity NamespaceIdentityMode `json:"namespaceIdentity,omitempty"`
}

IsolationConfig configures the identity restrictions for the consumption of the bound API

func (*IsolationConfig) DeepCopy

func (in *IsolationConfig) DeepCopy() *IsolationConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IsolationConfig.

func (*IsolationConfig) DeepCopyInto

func (in *IsolationConfig) DeepCopyInto(out *IsolationConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceBinding

type NamespaceBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +required
	Spec   NamespaceBindingSpec   `json:"spec,omitempty"`
	Status NamespaceBindingStatus `json:"status,omitempty"`
}

NamespaceBinding defines the specific credentials to be used when consuming an API bound via APIServiceBinding, for claims to be created in a consumer cluster namespace. Name of this object must match to the name of APIServiceBinding for the desired API. This object lives in the consumer cluster. +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:printcolumn:name="Identity Secret",type="string",JSONPath=`.spec.kubeconfigSecretRef.name` +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="Message",type="string",JSONPath=`.status.message` +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Namespaced,categories={connect}

func (*NamespaceBinding) DeepCopy

func (in *NamespaceBinding) DeepCopy() *NamespaceBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceBinding.

func (*NamespaceBinding) DeepCopyInto

func (in *NamespaceBinding) DeepCopyInto(out *NamespaceBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NamespaceBinding) DeepCopyObject

func (in *NamespaceBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NamespaceBindingList

type NamespaceBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NamespaceBinding `json:"items"`
}

NamespaceBindingList contains a list of NamespaceBinding. +kubebuilder:object:root=true

func (*NamespaceBindingList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceBindingList.

func (*NamespaceBindingList) DeepCopyInto

func (in *NamespaceBindingList) DeepCopyInto(out *NamespaceBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NamespaceBindingList) DeepCopyObject

func (in *NamespaceBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NamespaceBindingSpec

type NamespaceBindingSpec struct {
	// kubeconfigSecretRef is a reference to a secret that contains a
	// kubeconfig. The user setting this field needs verb=get permissions
	// to the referenced secret.
	KubeconfigSecretRef xpv1.SecretReference `json:"kubeconfigSecretRef,omitempty"`
}

NamespaceBindingSpec defines the configuration for NamespaceBinding.

func (*NamespaceBindingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceBindingSpec.

func (*NamespaceBindingSpec) DeepCopyInto

func (in *NamespaceBindingSpec) DeepCopyInto(out *NamespaceBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceBindingStatus

type NamespaceBindingStatus struct {
	xpv1.ResourceStatus `json:",inline"`

	// Message provides human-readable information about the current status of
	// the NamespaceBinding.
	// +optional
	Message string `json:"message,omitempty"`
}

NamespaceBindingStatus defines the observed state of a NamespaceBinding.

func (*NamespaceBindingStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceBindingStatus.

func (*NamespaceBindingStatus) DeepCopyInto

func (in *NamespaceBindingStatus) DeepCopyInto(out *NamespaceBindingStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceIdentityMode

type NamespaceIdentityMode string

NamespaceIdentityMode describes the NamespaceBinding requirement mode.

const (
	// NamespaceIdentityAllowed allows per-namespace identities in consumer clusters
	// but does not enforce
	NamespaceIdentityAllowed NamespaceIdentityMode = "Allowed"
	// NamespaceIdentityDisallowed prohibits the usage of per-namespace identities.
	// all claims of a particular bound API in the consumer cluster is consumed
	// via the common agent credentials of the consumer cluster.
	NamespaceIdentityDisallowed NamespaceIdentityMode = "Disallowed"
	// NamespaceIdentityRequired enforces per-namespace identity to be present,
	// via the existence of NamespaceBinding
	NamespaceIdentityRequired NamespaceIdentityMode = "Required"
)

type NamespaceRequest

type NamespaceRequest struct {
	// name is the name of the namespace in the consumer cluster
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// resources is a list of export name and target namespace pairs,
	// that represents the exported API consumption in the consumer cluster
	// namespace and their corresponding target controlplane and namespace.
	// targets are owned and set by the scheduler according to the
	// scheduling logic.
	// +listType=map
	// +listMapKey=exportName
	// +kubebuilder:validation:items:MinLength=1
	Resources []ResourceTargetConfig `json:"resources"`
}

NamespaceRequest represents a binding request of a consumer cluster namespace, and provides scheduling information for each resource

func (*NamespaceRequest) DeepCopy

func (in *NamespaceRequest) DeepCopy() *NamespaceRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRequest.

func (*NamespaceRequest) DeepCopyInto

func (in *NamespaceRequest) DeepCopyInto(out *NamespaceRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceTarget

type ResourceTarget struct {
	// controlPlane defines the target control plane and a namespace
	// +required
	ControlPlane ControlPlaneNamespaceTarget `json:"controlPlane"`
}

ResourceTarget defines a target control plane

func (*ResourceTarget) DeepCopy

func (in *ResourceTarget) DeepCopy() *ResourceTarget

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceTarget.

func (*ResourceTarget) DeepCopyInto

func (in *ResourceTarget) DeepCopyInto(out *ResourceTarget)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceTargetConfig

type ResourceTargetConfig struct {
	// exportName is a reference to an APIServiceExport to configure a
	// target control plane for.
	// +required
	// +kubebuilder:validation:MinLength=1
	ExportName string `json:"exportName"`
	// target is the location that the claim will be scheduled to.
	// Points to a namespace of a control plane that can satisfy the claim.
	// This is owned by the scheduler at the service provider cluster
	// immutable after it is set
	//
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="target is immutable"
	Target *ResourceTarget `json:"target,omitempty"`
}

ResourceTargetConfig represents a mapping between exports and target service implementor controlplane namespaces

func (*ResourceTargetConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceTargetConfig.

func (*ResourceTargetConfig) DeepCopyInto

func (in *ResourceTargetConfig) DeepCopyInto(out *ResourceTargetConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL