v1alpha1

package
v0.33.1 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2026 License: Apache-2.0 Imports: 7 Imported by: 10

Documentation

Overview

+k8s:deepcopy-gen=package,register +groupName=cache.kcp.io +k8s:openapi-gen=true +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.cache.v1alpha1

Index

Constants

View Source
const (
	// ClusterCachedResourceValid represents status of the scheduling process for this published resource.
	ClusterCachedResourceValid conditionsv1alpha1.ConditionType = "ResourceValid"

	// ReplicationStarted represents status of the replication process for this published resource.
	ReplicationStarted conditionsv1alpha1.ConditionType = "ReplicationStarted"
)

These are valid conditions of published resource.

View Source
const (
	// ClusterCachedResourceIdentityValid represents status of the identity generation process for this published resource.
	ClusterCachedResourceIdentityValid conditionsv1alpha1.ConditionType = "IdentityValid"

	IdentityGenerationFailedReason   = "IdentityGenerationFailed"
	IdentityVerificationFailedReason = "IdentityVerificationFailed"
)
View Source
const (
	// ClusterCachedResourceInvalidReferenceReason is a reason for the ClusterCachedResourceValid condition that the referenced
	// ClusterCachedResource reference is invalid.
	ClusterCachedResourceInvalidReferenceReason = "ClusterCachedResourceInvalidReference"
	// ClusterCachedResourceNotFoundReason is a reason for the ClusterCachedResourceValid condition that the referenced ClusterCachedResource is not found.
	ClusterCachedResourceNotFoundReason = "ClusterCachedResourceNotFound"
	// ResourceNotClusterScoped is a reason for the ClusterCachedResourceValid condition
	// that the resource in ClusterCachedResource is not cluster scoped.
	ResourceNotClusterScoped = "ResourceNotClusterScoped"

	// InternalErrorReason is a reason used by multiple conditions that something went wrong.
	InternalErrorReason = "InternalError"
)
View Source
const (
	ClusterCachedResourceValidNoResources   = "NoResources"
	ClusterCachedResourceValidDeleting      = "Deleting"
	ClusterCachedResourceReplicationStarted = "Started"
)

These are valid reasons of published resource.

View Source
const (
	// PartitionValid is a condition for ClusterCachedResourceEndpointSlice that reflects the validity of the referenced Partition.
	PartitionValid conditionsv1alpha1.ConditionType = "PartitionValid"

	// APIExportValid is a condition for ClusterCachedResourceEndpointSlice that reflects whether the referenced APIExport exists
	// and is accessible.
	APIExportValid conditionsv1alpha1.ConditionType = "APIExportValid"

	// EndpointURLsReady is a condition for ClusterCachedResourceEndpointSlice that reflects the readiness of the URLs.
	//
	// Deprecated: This condition is deprecated and will be removed in a future release.
	ClusterCachedResourceEndpointSliceURLsReady conditionsv1alpha1.ConditionType = "EndpointURLsReady"

	// PartitionInvalidReferenceReason is a reason for the PartitionValid condition of ClusterCachedResourceEndpointSlice that the
	// Partition reference is invalid.
	PartitionInvalidReferenceReason = "PartitionInvalidReference"

	// APIExportInvalidReferenceReason is a reason for the APIExportValid condition that the APIExport either does not
	// exist or does not reference this ClusterCachedResourceEndpointSlice.
	APIExportInvalidReferenceReason = "APIExportInvalidReference"
)

These are valid conditions of ClusterCachedResourceEndpointSlice in addition to ClusterCachedResourceValid and related reasons defined with the APIBinding type.

View Source
const ClusterCachedResourceFinalizer = "cache.kcp.io/clustercachedresource"

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: cache.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects.

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type ClusterCachedResource added in v0.33.0

type ClusterCachedResource struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ClusterCachedResourceSpec   `json:"spec"`
	Status ClusterCachedResourceStatus `json:"status,omitempty"`
}

ClusterCachedResource defines a resource that should be published to other workspaces

+crd +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories=kcp +kubebuilder:printcolumn:name="Resource",type=string,JSONPath=`.spec.resource`,description="Resource type being published" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterCachedResource) DeepCopy added in v0.33.0

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

func (*ClusterCachedResource) DeepCopyInto added in v0.33.0

func (in *ClusterCachedResource) DeepCopyInto(out *ClusterCachedResource)

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

func (*ClusterCachedResource) DeepCopyObject added in v0.33.0

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

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

func (*ClusterCachedResource) GetConditions added in v0.33.0

func (ClusterCachedResource) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResource) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

func (*ClusterCachedResource) SetConditions added in v0.33.0

type ClusterCachedResourceEndpoint added in v0.33.0

type ClusterCachedResourceEndpoint = corev1alpha1.Endpoint

ClusterCachedResourceEndpoint contains the endpoint information of a Replication service for a specific shard.

It is an alias of the shared endpoint shape, so that the readers which resolve an endpoint slice by kind at runtime -- and therefore cannot know whether they hold an APIExportEndpointSlice, a ClusterCachedResourceEndpointSlice or a third-party kind following the same convention -- have a single type to decode into.

type ClusterCachedResourceEndpointSlice added in v0.33.0

type ClusterCachedResourceEndpointSlice struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec holds the desired state:
	// - the targeted ClusterCachedResource
	Spec ClusterCachedResourceEndpointSliceSpec `json:"spec,omitempty"`

	// status communicates the observed state:
	// the filtered list of endpoints for the Replication service.
	// +optional
	Status ClusterCachedResourceEndpointSliceStatus `json:"status,omitempty"`
}

ClusterCachedResourceEndpointSlice is a sink for the endpoints of ClusterCachedResource virtual workspaces.

func (*ClusterCachedResourceEndpointSlice) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceEndpointSlice) DeepCopyInto added in v0.33.0

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

func (*ClusterCachedResourceEndpointSlice) DeepCopyObject added in v0.33.0

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

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

func (*ClusterCachedResourceEndpointSlice) GetConditions added in v0.33.0

func (ClusterCachedResourceEndpointSlice) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceEndpointSlice) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

func (*ClusterCachedResourceEndpointSlice) SetConditions added in v0.33.0

type ClusterCachedResourceEndpointSliceList added in v0.33.0

type ClusterCachedResourceEndpointSliceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []ClusterCachedResourceEndpointSlice `json:"items"`
}

ClusterCachedResourceEndpointSliceList is a list of ClusterCachedResourceEndpointSlice resources.

func (*ClusterCachedResourceEndpointSliceList) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceEndpointSliceList) DeepCopyInto added in v0.33.0

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

func (*ClusterCachedResourceEndpointSliceList) DeepCopyObject added in v0.33.0

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

func (ClusterCachedResourceEndpointSliceList) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceEndpointSliceList) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourceEndpointSliceSpec added in v0.33.0

type ClusterCachedResourceEndpointSliceSpec struct {
	// ClusterCachedResource points to the real ClusterCachedResource the slice is created for.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ClusterCachedResource reference must not be changed"
	ClusterCachedResource ClusterCachedResourceReference `json:"clusterCachedResource"`

	// export points to the APIExport that exports this ClusterCachedResourceEndpointSlice.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="APIExport reference must not be changed"
	APIExport ExportBindingReference `json:"export"`

	// partition points to a partition that is used for filtering the endpoints
	// of the ClusterCachedResource part of the slice.
	//
	// +optional
	Partition string `json:"partition,omitempty"`
}

ClusterCachedResourceEndpointSliceSpec defines the desired state of the ClusterCachedResourceEndpointSlice.

func (*ClusterCachedResourceEndpointSliceSpec) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceEndpointSliceSpec) DeepCopyInto added in v0.33.0

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

func (ClusterCachedResourceEndpointSliceSpec) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceEndpointSliceSpec) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourceEndpointSliceStatus added in v0.33.0

type ClusterCachedResourceEndpointSliceStatus struct {
	// conditions is a list of conditions that apply to the ClusterCachedResourceEndpointSlice.
	Conditions conditionsv1alpha1.Conditions `json:"conditions,omitempty"`

	// endpoints contains all the URLs of the Replication service.
	//
	// +optional
	// +listType=map
	// +listMapKey=url
	ClusterCachedResourceEndpoints []ClusterCachedResourceEndpoint `json:"endpoints,omitempty"`

	// shardSelector is the selector used to filter the shards. It is used to filter the shards
	// when determining partition scope when deriving the endpoints. This is set by owning shard,
	// and is used by follower shards to determine if its inscope or not.
	//
	// +optional
	ShardSelector string `json:"shardSelector,omitempty"`
}

ClusterCachedResourceEndpointSliceStatus defines the observed state of ClusterCachedResourceEndpointSlice.

func (*ClusterCachedResourceEndpointSliceStatus) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceEndpointSliceStatus) DeepCopyInto added in v0.33.0

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

func (ClusterCachedResourceEndpointSliceStatus) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceEndpointSliceStatus) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourceList added in v0.33.0

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

ClusterCachedResourceList contains a list of ClusterCachedResource

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ClusterCachedResourceList) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceList) DeepCopyInto added in v0.33.0

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

func (*ClusterCachedResourceList) DeepCopyObject added in v0.33.0

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

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

func (ClusterCachedResourceList) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceList) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourcePhaseType added in v0.33.0

type ClusterCachedResourcePhaseType string

ClusterCachedResourcePhaseType is the type of the current phase of the published resource.

+kubebuilder:validation:Enum=Scheduling;Initializing;Ready;Deleting;Deleted

const (
	ClusterCachedResourcePhaseInitializing ClusterCachedResourcePhaseType = "Initializing"
	ClusterCachedResourcePhaseReady        ClusterCachedResourcePhaseType = "Ready"
	ClusterCachedResourcePhaseDeleting     ClusterCachedResourcePhaseType = "Deleting"
	ClusterCachedResourcePhaseDeleted      ClusterCachedResourcePhaseType = "Deleted"
)

type ClusterCachedResourceReference added in v0.33.0

type ClusterCachedResourceReference struct {
	// path is a logical cluster path where the ClusterCachedResource is defined. If empty,
	// the ClusterCachedResource is assumed to be co-located with the referencing resource.
	//
	// +optional
	// +kubebuilder:validation:Pattern:="^[a-z0-9]([-a-z0-9]*[a-z0-9])?(:[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
	Path string `json:"path,omitempty"`

	// name is the name of the ClusterCachedResource the reference points to.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kube:validation:MinLength=1
	Name string `json:"name"`
}

ClusterCachedResourceReference is a reference to a ClusterCachedResource.

func (*ClusterCachedResourceReference) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceReference) DeepCopyInto added in v0.33.0

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

func (ClusterCachedResourceReference) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceReference) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourceSpec added in v0.33.0

type ClusterCachedResourceSpec struct {
	// GroupVersionResource is the fully qualified name of the resource to be published.
	GroupVersionResource `json:",inline"`

	// identity points to a secret that contains the API identity in the 'key' file.
	// The API identity allows access to ClusterCachedResource's resources via the APIExport.
	//
	// Different  ClusterCachedResource in a workspace can share a common identity, or have different
	// ones. The identity (the secret) can also be transferred to another workspace
	// when the  ublishedResource is moved.
	//
	// The identity is defaulted. A secret with the name of the ClusterCachedResource is automatically
	// created.
	//
	// +optional
	Identity *Identity `json:"identity,omitempty"`

	// LabelSelector is used to filter which resources should be published
	// +optional
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`

	// names narrows publishing to resources called exactly these.
	//
	// Leaving it empty publishes every resource the label selector allows,
	// which is the usual case: a ClusterCachedResource normally stands for a
	// whole kind. Naming resources is for the case where something points at
	// one object in particular and only that object is worth caching.
	//
	// Names and labelSelector both apply -- a resource has to satisfy each of
	// the ones that is set.
	//
	// +optional
	// +listType=set
	Names []string `json:"names,omitempty"`
}

ClusterCachedResourceSpec defines the desired state of ClusterCachedResource.

func (*ClusterCachedResourceSpec) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceSpec) DeepCopyInto added in v0.33.0

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

func (ClusterCachedResourceSpec) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceSpec) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ClusterCachedResourceStatus added in v0.33.0

type ClusterCachedResourceStatus struct {
	// IdentityHash is a hash of the identity configuration
	// +optional
	IdentityHash string `json:"identityHash,omitempty"`

	// ResourceCount is the number of resources that match the label selector
	// +optional
	ResourceCounts *ResourceCount `json:"resourceCounts,omitempty"`

	// Phase of the workspace (Initializing, Ready, Unavailable).
	//
	// +kubebuilder:default=Initializing
	Phase ClusterCachedResourcePhaseType `json:"phase,omitempty"`

	// Current processing state of the Workspace.
	// +optional
	Conditions conditionsv1alpha1.Conditions `json:"conditions,omitempty"`
}

ClusterCachedResourceStatus defines the observed state of ClusterCachedResource.

func (*ClusterCachedResourceStatus) DeepCopy added in v0.33.0

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

func (*ClusterCachedResourceStatus) DeepCopyInto added in v0.33.0

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

func (ClusterCachedResourceStatus) OpenAPIModelName added in v0.33.0

func (in ClusterCachedResourceStatus) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ExportBindingReference added in v0.32.0

type ExportBindingReference struct {
	// path is a logical cluster path where the APIExport is defined.
	// If the path is unset, the logical cluster of the referencing object is used.
	//
	// +optional
	// +kubebuilder:validation:Pattern:="^[a-z0-9]([-a-z0-9]*[a-z0-9])?(:[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
	Path string `json:"path,omitempty"`

	// name is the name of the APIExport that describes the API.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kube:validation:MinLength=1
	Name string `json:"name"`
}

ExportBindingReference is a reference to an APIExport by cluster and name.

func (*ExportBindingReference) DeepCopy added in v0.32.0

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

func (*ExportBindingReference) DeepCopyInto added in v0.32.0

func (in *ExportBindingReference) DeepCopyInto(out *ExportBindingReference)

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

func (ExportBindingReference) OpenAPIModelName added in v0.32.0

func (in ExportBindingReference) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type GroupVersionResource

type GroupVersionResource struct {
	// group is the name of an API group.
	// For core groups this is the empty string '""'.
	//
	// +kubebuilder:validation:Pattern=`^(|[a-z0-9]([-a-z0-9]*[a-z0-9](\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)?)$`
	// +optional
	Group string `json:"group,omitempty"`

	// version is the version of the resource.
	// +optional
	Version string `json:"version,omitempty"`

	// 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 api export.
	// +kubebuilder:validation:Pattern=`^[a-z][-a-z0-9]*[a-z0-9]$`
	// +required
	// +kubebuilder:validation:Required
	Resource string `json:"resource"`
}

GroupVersionResource identifies a resource.

func (*GroupVersionResource) DeepCopy

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

func (*GroupVersionResource) DeepCopyInto

func (in *GroupVersionResource) DeepCopyInto(out *GroupVersionResource)

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

func (GroupVersionResource) GetGroup

func (in GroupVersionResource) GetGroup() string

func (GroupVersionResource) GetResource

func (in GroupVersionResource) GetResource() string

func (GroupVersionResource) OpenAPIModelName added in v0.31.0

func (in GroupVersionResource) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Identity

type Identity struct {
	// secretRef is a reference to a secret that contains the API identity in the 'key' file.
	//
	// +optional
	SecretRef *corev1.SecretReference `json:"secretRef,omitempty"`
}

Identity defines the identity of a ClusterCachedResource, i.e. determines the cached resource access of the resources, that are published by this ClusterCachedResource.

func (*Identity) DeepCopy

func (in *Identity) DeepCopy() *Identity

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

func (*Identity) DeepCopyInto

func (in *Identity) DeepCopyInto(out *Identity)

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

func (Identity) OpenAPIModelName added in v0.31.0

func (in Identity) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ResourceCount

type ResourceCount struct {
	Cache int `json:"cache"`
	Local int `json:"local"`
}

ResourceCount is the number of resources that match the label selector and are cached in the cache.

func (*ResourceCount) DeepCopy

func (in *ResourceCount) DeepCopy() *ResourceCount

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

func (*ResourceCount) DeepCopyInto

func (in *ResourceCount) DeepCopyInto(out *ResourceCount)

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

func (ResourceCount) OpenAPIModelName added in v0.31.0

func (in ResourceCount) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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