Documentation
¶
Overview ¶
+k8s:deepcopy-gen=package,register +groupName=core.kcp.io +k8s:openapi-gen=true +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.core.v1alpha1
Index ¶
- Constants
- Variables
- func IsLogicalClusterInactive(annotations map[string]string) bool
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type Endpoint
- type EndpointSelector
- type LogicalCluster
- func (in *LogicalCluster) DeepCopy() *LogicalCluster
- func (in *LogicalCluster) DeepCopyInto(out *LogicalCluster)
- func (in *LogicalCluster) DeepCopyObject() runtime.Object
- func (in *LogicalCluster) GetConditions() conditionsv1alpha1.Conditions
- func (in LogicalCluster) OpenAPIModelName() string
- func (in *LogicalCluster) SetConditions(c conditionsv1alpha1.Conditions)
- type LogicalClusterInitializer
- type LogicalClusterList
- type LogicalClusterOwner
- type LogicalClusterPhaseType
- type LogicalClusterSpec
- type LogicalClusterStatus
- type LogicalClusterTerminator
- type OwnerUserInfo
- type Shard
- type ShardList
- type ShardSpec
- type ShardStatus
Constants ¶
const ( // LogicalClusterName is the name of the LogicalCluster singleton. LogicalClusterName = "cluster" // LogicalClusterFinalizerName attached to the owner of the LogicalCluster resource (usually a Workspace) so that we can control // deletion of LogicalCluster resources. LogicalClusterFinalizerName = "core.kcp.io/logicalcluster" // LogicalClusterInactiveAnnotationKey is the annotation denoting a logical // cluster should be deemed unreachable. When set to "true" the // active connections for the logical cluster will be cancelled and // requests will be rejected. // The phase of a logical cluster with this annotation is set to // LogicalClusterPhaseInactive. LogicalClusterInactiveAnnotationKey = "core.kcp.io/inactive" // LogicalClusterInactiveAnnotationKeyLegacy is the previous // inactive annotation key and honoured for backwards compatibility. // // Deprecated: use LogicalClusterInactiveAnnotationKey. LogicalClusterInactiveAnnotationKeyLegacy = "internal.kcp.io/inactive" // LogicalClusterShardAnnotationKey is the shard name the LogicalCluster is scheduled on. // This annotation is set on both the LogicalCluster and its owner, if the owner is set. LogicalClusterShardAnnotationKey = "core.kcp.io/shard" // LogicalClusterMaxTotalObjectsAnnotationKey overrides the shard-wide default // limit on the total number of objects in this logical cluster. A value <= 0 // disables the limit for this logical cluster. The annotation is protected by // the ReservedMetadata admission plugin, i.e. only system users may set it. LogicalClusterMaxTotalObjectsAnnotationKey = "core.kcp.io/max-total-objects" )
const ShardReasonCordoned = "Cordoned"
ShardReasonCordoned is the reason for ShardSchedulable=False when the owning shard observed the unschedulable annotation on its Shard object.
const ShardSchedulable v1alpha1.ConditionType = "Schedulable"
ShardSchedulable is a condition on the Shard object reflecting the shard's scheduling state, similar to a Kubernetes node: True when new workspaces may be scheduled onto the shard, False with reason ShardReasonCordoned when the unschedulable annotation is set on the Shard object. Seeing it change acknowledges that the cordon/uncordon signal was received and applied.
const ShardUnschedulableAnnotationKey = "experimental.core.kcp.io/unschedulable"
ShardUnschedulableAnnotationKey marks a single shard as unschedulable: the workspace scheduler will not place new workspaces on it (cordoning). It only affects the shard whose Shard object carries it.
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var RootShard = "root"
RootShard holds a name of the root shard.
var SchemeGroupVersion = schema.GroupVersion{Group: core.GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects.
Functions ¶
func IsLogicalClusterInactive ¶ added in v0.32.0
IsLogicalClusterInactive reports whether the given annotations mark a LogicalCluster as inactive. It accepts both the canonical LogicalClusterInactiveAnnotationKey and the deprecated LogicalClusterInactiveAnnotationKeyLegacy.
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource.
Types ¶
type Endpoint ¶ added in v0.33.0
type Endpoint struct {
// url is the virtual workspace URL serving this endpoint.
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:format:URL
// +required
URL string `json:"url"`
// shards says which shards this URL serves.
//
// Saying nothing -- the zero value -- means the URL was composed for one
// specific shard and is matched by URL prefix instead, which is what kcp's
// own controllers publish. A status should not mix the two: either every
// endpoint says which shards it is for, or none does.
//
// +optional
Shards EndpointSelector `json:"shards,omitempty"`
}
Endpoint is one URL an endpoint slice advertises, and the shards it is meant for.
Endpoint slices are read unstructured where the kind is only known at runtime -- an APIExport may point at any kind that follows this shape -- so this is the contract those readers rely on: status.endpoints[] with a url, and optionally a shards selector saying which shards that url serves.
func (*Endpoint) DeepCopy ¶ added in v0.33.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.
func (*Endpoint) DeepCopyInto ¶ added in v0.33.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Endpoint) OpenAPIModelName ¶ added in v0.33.0
OpenAPIModelName returns the OpenAPI model name for this type.
type EndpointSelector ¶ added in v0.33.0
type EndpointSelector struct {
// matchAll says this URL serves every shard: one virtual workspace for the
// whole installation, which is what a provider running a single virtual
// workspace publishes.
//
// +optional
MatchAll bool `json:"matchAll,omitempty"`
// selector picks the shards this URL serves by matching against shard
// labels. Every shard labels itself with its own name, so a single shard is
// selected with matchLabels: {name: <shard>}, and groupings such as a region
// use whatever labels the installation puts on its shards -- the same ones
// Partition and PartitionSet select by.
//
// The most specific selector that matches a shard wins, so a URL for a
// region overrides one for the whole installation where the region applies.
//
// +optional
Selector *v1.LabelSelector `json:"selector,omitempty"`
}
EndpointSelector says which shards an endpoint URL serves.
It offers two ways of saying it, and saying both is an error: matchAll is the whole installation, and selector is a subset of it. Saying neither says nothing about shards at all, and leaves the URL to be matched by prefix.
+kubebuilder:validation:XValidation:rule="!(has(self.matchAll) && self.matchAll && has(self.selector))",message="matchAll and selector are mutually exclusive"
func (*EndpointSelector) DeepCopy ¶ added in v0.33.0
func (in *EndpointSelector) DeepCopy() *EndpointSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSelector.
func (*EndpointSelector) DeepCopyInto ¶ added in v0.33.0
func (in *EndpointSelector) DeepCopyInto(out *EndpointSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (EndpointSelector) OpenAPIModelName ¶ added in v0.33.0
func (in EndpointSelector) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type LogicalCluster ¶
type LogicalCluster struct {
v1.TypeMeta `json:",inline"`
// +optional
v1.ObjectMeta `json:"metadata,omitempty"`
// +optional
Spec LogicalClusterSpec `json:"spec,omitempty"`
// +optional
Status LogicalClusterStatus `json:"status,omitempty"`
}
LogicalCluster describes the current logical cluster. It is used to authorize requests to the logical cluster and to track state.
A LogicalCluster is always named "cluster".
+crd +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories=kcp +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`,description="The current phase (e.g. Scheduling, Initializing, Ready, Deleting)" +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.status.URL`,description="URL to access the logical cluster" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*LogicalCluster) DeepCopy ¶
func (in *LogicalCluster) DeepCopy() *LogicalCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogicalCluster.
func (*LogicalCluster) DeepCopyInto ¶
func (in *LogicalCluster) DeepCopyInto(out *LogicalCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LogicalCluster) DeepCopyObject ¶
func (in *LogicalCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*LogicalCluster) GetConditions ¶
func (in *LogicalCluster) GetConditions() conditionsv1alpha1.Conditions
func (LogicalCluster) OpenAPIModelName ¶ added in v0.31.0
func (in LogicalCluster) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
func (*LogicalCluster) SetConditions ¶
func (in *LogicalCluster) SetConditions(c conditionsv1alpha1.Conditions)
type LogicalClusterInitializer ¶
type LogicalClusterInitializer string
LogicalClusterInitializer is a unique string corresponding to a logical cluster initialization controller.
+kubebuilder:validation:Pattern:="^([a-z0-9]([-a-z0-9]*[a-z0-9])?(:[a-z0-9]([-a-z0-9]*[a-z0-9])?)*(:[a-z0-9][a-z0-9]([-a-z0-9]*[a-z0-9])?))|(system:.+)$"
type LogicalClusterList ¶
type LogicalClusterList struct {
v1.TypeMeta `json:",inline"`
v1.ListMeta `json:"metadata"`
Items []LogicalCluster `json:"items"`
}
LogicalClusterList is a list of LogicalCluster
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*LogicalClusterList) DeepCopy ¶
func (in *LogicalClusterList) DeepCopy() *LogicalClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogicalClusterList.
func (*LogicalClusterList) DeepCopyInto ¶
func (in *LogicalClusterList) DeepCopyInto(out *LogicalClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LogicalClusterList) DeepCopyObject ¶
func (in *LogicalClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (LogicalClusterList) OpenAPIModelName ¶ added in v0.31.0
func (in LogicalClusterList) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type LogicalClusterOwner ¶
type LogicalClusterOwner struct {
// apiVersion is the group and API version of the owner.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^([^/]+/)?[^/]+$`
APIVersion string `json:"apiVersion"`
// resource is API resource to access the owner.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Resource string `json:"resource"`
// name is the name of the owner.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// namespace is the optional namespace of the owner.
//
// +optional
Namespace string `json:"namespace,omitempty"`
// cluster is the logical cluster in which the owner is located.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Cluster string `json:"cluster"`
// UID is the UID of the owner.
//
// +required
// +kubebuilder:validation:Required
UID types.UID `json:"uid"`
}
LogicalClusterOwner is a reference to a resource controlling the life-cycle of a LogicalCluster.
func (*LogicalClusterOwner) DeepCopy ¶
func (in *LogicalClusterOwner) DeepCopy() *LogicalClusterOwner
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogicalClusterOwner.
func (*LogicalClusterOwner) DeepCopyInto ¶
func (in *LogicalClusterOwner) DeepCopyInto(out *LogicalClusterOwner)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LogicalClusterOwner) OpenAPIModelName ¶ added in v0.31.0
func (in LogicalClusterOwner) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type LogicalClusterPhaseType ¶
type LogicalClusterPhaseType string
LogicalClusterPhaseType is the type of the current phase of the logical cluster.
+kubebuilder:validation:Enum=Scheduling;Initializing;Ready;Unavailable;Inactive;Terminating;Deleting
const ( LogicalClusterPhaseScheduling LogicalClusterPhaseType = "Scheduling" LogicalClusterPhaseInitializing LogicalClusterPhaseType = "Initializing" LogicalClusterPhaseReady LogicalClusterPhaseType = "Ready" // It will not be served via front-proxy when in this state. // Possible state transitions are from Ready to Unavailable and from Unavailable to Ready. // This should be used when we really can't serve the logical cluster content and not some // temporary flakes, like readiness probe failing. LogicalClusterPhaseUnavailable LogicalClusterPhaseType = "Unavailable" // LogicalClusterPhaseInactive phase indicates that the logical cluster has been // intentionally taken offline (for example, during maintenance). // This phase is driven by the LogicalClusterInactiveAnnotationKey annotation. // This is distinct from Unavailable in so far that Inactive is an // intentional admin decision, while Unavailable is caused by an error. LogicalClusterPhaseInactive LogicalClusterPhaseType = "Inactive" // LogicalClusterPhaseTerminating phase is used to indicate that the logical cluster has a // DeletionTimestamp set and is waiting on terminator controllers to clean up workspace // content. The cluster is still served (the workspace content authorizer permits access) // so that terminator controllers can act on resources before deletion. LogicalClusterPhaseTerminating LogicalClusterPhaseType = "Terminating" // LogicalClusterPhaseDeleting phase is used to indicate that all terminators have completed // and the logical cluster is being deleted. No content access is permitted in this phase. LogicalClusterPhaseDeleting LogicalClusterPhaseType = "Deleting" )
type LogicalClusterSpec ¶
type LogicalClusterSpec struct {
// DirectlyDeletable indicates that this logical cluster can be directly deleted by the user
// from within by deleting the LogicalCluster object.
//
// +optional
// +kubebuilder:default=false
DirectlyDeletable bool `json:"directlyDeletable,omitempty"`
// owner is a reference to a resource controlling the life-cycle of this logical cluster.
// On deletion of the LogicalCluster, the finalizer core.kcp.io/logicalcluster is
// removed from the owner.
//
// When this object is deleted, but the owner is not deleted, the owner is deleted
// too.
//
// +optional
Owner *LogicalClusterOwner `json:"owner,omitempty"`
// createdBy is the user who owns this logical cluster. This is the user who
// created the workspace.
//
// +optional
CreatedBy *OwnerUserInfo `json:"createdBy,omitempty"`
// initializers are set on creation by the system and copied to status when
// initialization starts.
//
// +optional
Initializers []LogicalClusterInitializer `json:"initializers,omitempty"`
// Terminators are set on creation by the system and copied to status when
// termination starts.
//
// +optional
Terminators []LogicalClusterTerminator `json:"terminators,omitempty"`
}
LogicalClusterSpec is the specification of the LogicalCluster resource.
func (*LogicalClusterSpec) DeepCopy ¶
func (in *LogicalClusterSpec) DeepCopy() *LogicalClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogicalClusterSpec.
func (*LogicalClusterSpec) DeepCopyInto ¶
func (in *LogicalClusterSpec) DeepCopyInto(out *LogicalClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LogicalClusterSpec) OpenAPIModelName ¶ added in v0.31.0
func (in LogicalClusterSpec) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type LogicalClusterStatus ¶
type LogicalClusterStatus struct {
// url is the address under which the Kubernetes-cluster-like endpoint
// can be found. This URL can be used to access the logical cluster with standard Kubernetes
// client libraries and command line tools.
//
// +kubebuilder:format:uri
URL string `json:"URL,omitempty"`
// Phase of the logical cluster (Initializing, Ready).
//
// +kubebuilder:default=Scheduling
Phase LogicalClusterPhaseType `json:"phase,omitempty"`
// Current processing state of the LogicalCluster.
// +optional
Conditions conditionsv1alpha1.Conditions `json:"conditions,omitempty"`
// initializers are set on creation by the system and must be cleared
// by a controller before the logical cluster can be used. The LogicalCluster object
// will stay in the phase "Initializing" state until all initializers are cleared.
//
// +optional
Initializers []LogicalClusterInitializer `json:"initializers,omitempty"`
// Terminators are set on creation by the system and must be cleared
// by a controller before the logical cluster can be deleted. The LogicalCluster object
// will stay in the phase "Terminating" until all terminator are cleared.
//
// +optional
Terminators []LogicalClusterTerminator `json:"terminators,omitempty"`
}
LogicalClusterStatus communicates the observed state of the Workspace.
func (*LogicalClusterStatus) DeepCopy ¶
func (in *LogicalClusterStatus) DeepCopy() *LogicalClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogicalClusterStatus.
func (*LogicalClusterStatus) DeepCopyInto ¶
func (in *LogicalClusterStatus) DeepCopyInto(out *LogicalClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LogicalClusterStatus) OpenAPIModelName ¶ added in v0.31.0
func (in LogicalClusterStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type LogicalClusterTerminator ¶
type LogicalClusterTerminator string
LogicalClusterTerminator is a unique string corresponding to a logical cluster terminator controller.
+kubebuilder:validation:Pattern:="^([a-z0-9]([-a-z0-9]*[a-z0-9])?(:[a-z0-9]([-a-z0-9]*[a-z0-9])?)*(:[a-z0-9][a-z0-9]([-a-z0-9]*[a-z0-9])?))|(system:.+)$"
type OwnerUserInfo ¶ added in v0.32.0
type OwnerUserInfo struct {
// username is the name of the user.
//
// +optional
Username string `json:"username,omitempty"`
// groups is the list of groups the user belongs to.
//
// +optional
Groups []string `json:"groups,omitempty"`
// uid is a unique identifier for the user.
//
// +optional
UID string `json:"uid,omitempty"`
// extra contains additional information provided by the authenticator.
//
// +optional
Extra map[string]authenticationv1.ExtraValue `json:"extra,omitempty"`
}
OwnerUserInfo is the user who owns a LogicalCluster.
func (*OwnerUserInfo) DeepCopy ¶ added in v0.32.0
func (in *OwnerUserInfo) DeepCopy() *OwnerUserInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OwnerUserInfo.
func (*OwnerUserInfo) DeepCopyInto ¶ added in v0.32.0
func (in *OwnerUserInfo) DeepCopyInto(out *OwnerUserInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OwnerUserInfo) OpenAPIModelName ¶ added in v0.32.0
func (in OwnerUserInfo) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.
type Shard ¶
type Shard struct {
v1.TypeMeta `json:",inline"`
// +optional
v1.ObjectMeta `json:"metadata,omitempty"`
// +optional
Spec ShardSpec `json:"spec,omitempty"`
// +optional
Status ShardStatus `json:"status,omitempty"`
}
Shard describes a kcp instance on which a number of logical clusters will live
+crd +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories=kcp +kubebuilder:printcolumn:name="Region",type=string,JSONPath=`.metadata.labels['region']`,description="The region this workspace is in" +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.spec.baseURL`,description="Type URL to directly connect to the shard" +kubebuilder:printcolumn:name="External URL",type=string,JSONPath=`.spec.externalURL`,description="The URL exposed in logical clusters created on that shard" +kubebuilder:printcolumn:name="Schedulable",type=string,JSONPath=`.status.conditions[?(@.type=="Schedulable")].status`,description="Shard scheduling status" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*Shard) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Shard.
func (*Shard) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Shard) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Shard) GetConditions ¶
func (in *Shard) GetConditions() v1alpha1.Conditions
func (Shard) OpenAPIModelName ¶ added in v0.31.0
OpenAPIModelName returns the OpenAPI model name for this type.
func (*Shard) SetConditions ¶
func (in *Shard) SetConditions(c v1alpha1.Conditions)
type ShardList ¶
type ShardList struct {
v1.TypeMeta `json:",inline"`
v1.ListMeta `json:"metadata"`
Items []Shard `json:"items"`
}
ShardList is a list of shard instances
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ShardList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardList.
func (*ShardList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ShardList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (ShardList) OpenAPIModelName ¶ added in v0.31.0
OpenAPIModelName returns the OpenAPI model name for this type.
type ShardSpec ¶
type ShardSpec struct {
// baseURL is the address of the kcp shard for direct connections, e.g. by some
// front-proxy doing the fan-out to the shards.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation:MinLength=1
BaseURL string `json:"baseURL"`
// externalURL is the externally visible address presented to users in Workspace URLs.
// Changing this will break all existing logical clusters on that shard, i.e. existing
// kubeconfigs of clients will be invalid. Hence, when changing this value, the old
// URL used by clients must keep working.
//
// The external address will not be unique if a front-proxy does a fan-out to
// shards, but all logical cluster clients will talk to the front-proxy. In that case,
// put the address of the front-proxy here.
//
// Note that movement of shards is only possible (in the future) between shards
// that share a common external URL.
//
// This will be defaulted to the value of the baseURL.
//
// +optional
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation:MinLength=1
ExternalURL string `json:"externalURL,omitempty"`
// virtualWorkspaceURL is the address of the virtual workspace apiserver associated with this shard.
// It can be a direct address, an address of a front-proxy or even an address of an LB.
// As of today this address is assigned to APIExports.
//
// This will be defaulted to the value of the baseURL.
//
// +optional
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation:MinLength=1
VirtualWorkspaceURL string `json:"virtualWorkspaceURL,omitempty"`
}
ShardSpec holds the desired state of the Shard.
func (*ShardSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardSpec.
func (*ShardSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ShardSpec) OpenAPIModelName ¶ added in v0.31.0
OpenAPIModelName returns the OpenAPI model name for this type.
type ShardStatus ¶
type ShardStatus struct {
// Set of integer resources that logical clusters can be scheduled into
// +optional
Capacity corev1.ResourceList `json:"capacity,omitempty"`
// Current processing state of the Shard.
// +optional
Conditions v1alpha1.Conditions `json:"conditions,omitempty"`
}
ShardStatus communicates the observed state of the Shard.
func (*ShardStatus) DeepCopy ¶
func (in *ShardStatus) DeepCopy() *ShardStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardStatus.
func (*ShardStatus) DeepCopyInto ¶
func (in *ShardStatus) DeepCopyInto(out *ShardStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ShardStatus) OpenAPIModelName ¶ added in v0.31.0
func (in ShardStatus) OpenAPIModelName() string
OpenAPIModelName returns the OpenAPI model name for this type.