Documentation ¶
Overview ¶
Package v1alpha1 contains Connect resources. +kubebuilder:object:generate=true +groupName=connect.upbound.io +versionName=v1alpha1
Index ¶
- Constants
- Variables
- type APIServiceBinding
- type APIServiceBindingList
- type APIServiceBindingRequest
- type APIServiceBindingRequestList
- type APIServiceBindingRequestRef
- type APIServiceBindingRequestSpec
- type APIServiceBindingRequestStatus
- type APIServiceBindingSpec
- type APIServiceBindingStatus
- type APIServiceExport
- type APIServiceExportCRDSpec
- type APIServiceExportList
- type APIServiceExportRef
- type APIServiceExportSchema
- type APIServiceExportSource
- type APIServiceExportSpec
- type APIServiceExportStatus
- type APIServiceExportVersion
- type ClusterBinding
- type ClusterBindingList
- type ClusterBindingRef
- type ClusterBindingSpec
- type ClusterBindingStatus
- type ControlPlaneNameRef
- type ControlPlaneNamespaceTarget
- type ExportStatus
- type IsolationConfig
- type NamespaceBinding
- type NamespaceBindingList
- type NamespaceBindingSpec
- type NamespaceBindingStatus
- type NamespaceIdentityMode
- type NamespaceRequest
- type ResourceTarget
- type ResourceTargetConfig
Constants ¶
const ( Group = "connect.upbound.io" GroupVersion = "v1alpha1" )
Package type metadata.
Variables ¶
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 )
var ( // APIServiceBindingKind is kind of APIServiceBinding APIServiceBindingKind = reflect.TypeOf(APIServiceBinding{}).Name() )
var ( // APIServiceBindingRequestKind is kind of APIServiceBindingRequest APIServiceBindingRequestKind = reflect.TypeOf(APIServiceBindingRequest{}).Name() )
var ( // APIServiceExportKind is kind of APIServiceExport APIServiceExportKind = reflect.TypeOf(APIServiceExport{}).Name() )
var ( // ClusterBindingKind is kind of ClusterBinding ClusterBindingKind = reflect.TypeOf(ClusterBinding{}).Name() )
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 ¶
func (in *APIServiceBindingList) DeepCopy() *APIServiceBindingList
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 ¶
func (in *APIServiceBindingRequest) DeepCopy() *APIServiceBindingRequest
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 ¶
func (in *APIServiceBindingRequestList) DeepCopy() *APIServiceBindingRequestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestList.
func (*APIServiceBindingRequestList) DeepCopyInto ¶
func (in *APIServiceBindingRequestList) DeepCopyInto(out *APIServiceBindingRequestList)
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 ¶
func (in *APIServiceBindingRequestRef) DeepCopy() *APIServiceBindingRequestRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestRef.
func (*APIServiceBindingRequestRef) DeepCopyInto ¶
func (in *APIServiceBindingRequestRef) DeepCopyInto(out *APIServiceBindingRequestRef)
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 ¶
func (in *APIServiceBindingRequestSpec) DeepCopy() *APIServiceBindingRequestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestSpec.
func (*APIServiceBindingRequestSpec) DeepCopyInto ¶
func (in *APIServiceBindingRequestSpec) DeepCopyInto(out *APIServiceBindingRequestSpec)
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 ¶
func (in *APIServiceBindingRequestStatus) DeepCopy() *APIServiceBindingRequestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServiceBindingRequestStatus.
func (*APIServiceBindingRequestStatus) DeepCopyInto ¶
func (in *APIServiceBindingRequestStatus) DeepCopyInto(out *APIServiceBindingRequestStatus)
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 ¶
func (in *APIServiceBindingSpec) DeepCopy() *APIServiceBindingSpec
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 ¶
func (in *APIServiceBindingStatus) DeepCopy() *APIServiceBindingStatus
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 ¶
func (in *APIServiceExportCRDSpec) DeepCopy() *APIServiceExportCRDSpec
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 ¶
func (in *APIServiceExportList) DeepCopy() *APIServiceExportList
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 ¶
func (in *APIServiceExportSchema) DeepCopy() *APIServiceExportSchema
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 ¶
func (in *APIServiceExportSource) DeepCopy() *APIServiceExportSource
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 ¶
func (in *APIServiceExportSpec) DeepCopy() *APIServiceExportSpec
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 ¶
func (in *APIServiceExportStatus) DeepCopy() *APIServiceExportStatus
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 ¶
func (in *APIServiceExportVersion) DeepCopy() *APIServiceExportVersion
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 ¶
func (in *ClusterBindingStatus) DeepCopy() *ClusterBindingStatus
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 ¶
func (in *ControlPlaneNamespaceTarget) DeepCopy() *ControlPlaneNamespaceTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneNamespaceTarget.
func (*ControlPlaneNamespaceTarget) DeepCopyInto ¶
func (in *ControlPlaneNamespaceTarget) DeepCopyInto(out *ControlPlaneNamespaceTarget)
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 ¶
func (in *NamespaceBindingList) DeepCopy() *NamespaceBindingList
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 ¶
func (in *NamespaceBindingSpec) DeepCopy() *NamespaceBindingSpec
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 ¶
func (in *NamespaceBindingStatus) DeepCopy() *NamespaceBindingStatus
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 ¶
func (in *ResourceTargetConfig) DeepCopy() *ResourceTargetConfig
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.