v1alpha1

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: Apache-2.0 Imports: 7 Imported by: 29

Documentation

Overview

+k8s:deepcopy-gen=package,register +groupName=tenancy.kcp.io +k8s:openapi-gen=true

Index

Constants

View Source
const (
	// WorkspaceScheduled represents status of the scheduling process for this workspace.
	WorkspaceScheduled conditionsv1alpha1.ConditionType = "WorkspaceScheduled"
	// WorkspaceReasonUnschedulable reason in WorkspaceScheduled WorkspaceCondition means that the scheduler
	// can't schedule the workspace right now, for example due to insufficient resources in the cluster.
	WorkspaceReasonUnschedulable = "Unschedulable"
	// WorkspaceReasonReasonUnknown reason in WorkspaceScheduled means that scheduler has failed for
	// some unexpected reason.
	WorkspaceReasonReasonUnknown = "Unknown"

	// WorkspaceContentDeleted represents the status that all resources in the workspace are deleted.
	WorkspaceContentDeleted conditionsv1alpha1.ConditionType = "WorkspaceContentDeleted"

	// WorkspaceInitialized represents the status that initialization has finished.
	WorkspaceInitialized conditionsv1alpha1.ConditionType = "WorkspaceInitialized"
	// WorkspaceInitializedInitializerExists reason in WorkspaceInitialized condition means that there is at least
	// one initializer still left.
	WorkspaceInitializedInitializerExists = "InitializerExists"
	// WorkspaceInitializedWorkspaceDisappeared reason in WorkspaceInitialized condition means that the LogicalCluster
	// object has disappeared.
	WorkspaceInitializedWorkspaceDisappeared = "WorkspaceDisappeared"

	// WorkspaceAPIBindingsInitialized represents the status of the initial APIBindings for the workspace.
	WorkspaceAPIBindingsInitialized conditionsv1alpha1.ConditionType = "APIBindingsInitialized"
	// WorkspaceInitializedWaitingOnAPIBindings is a reason for the APIBindingsInitialized condition that indicates
	// at least one APIBinding is not ready.
	WorkspaceInitializedWaitingOnAPIBindings = "WaitingOnAPIBindings"
	// WorkspaceInitializedWorkspaceTypeInvalid is a reason for the APIBindingsInitialized
	// condition that indicates something is invalid with the WorkspaceType (e.g. a cycle trying
	// to resolve all the transitive types).
	WorkspaceInitializedWorkspaceTypeInvalid = "WorkspaceTypesInvalid"
	// WorkspaceInitializedAPIBindingErrors is a reason for the APIBindingsInitialized condition that indicates there
	// were errors trying to initialize APIBindings for the workspace.
	WorkspaceInitializedAPIBindingErrors = "APIBindingErrors"
)

These are valid conditions of workspace.

View Source
const (
	WorkspaceTypeVirtualWorkspaceURLsReady conditionsv1alpha1.ConditionType = "VirtualWorkspaceURLsReady"
	ErrorGeneratingURLsReason                                               = "ErrorGeneratingURLs"
)

These are valid conditions of WorkspaceType.

View Source
const (
	// WorkspacePhaseLabel holds the Workspace.Status.Phase value, and is enforced to match
	// by a mutating admission webhook.
	WorkspacePhaseLabel = "tenancy.kcp.io/phase"
	// WorkspaceInitializerLabelPrefix is the prefix for labels which match Workspace.Status.Initializers,
	// and the set of labels with this prefix is enforced to match the set of initializers by a mutating admission
	// webhook.
	WorkspaceInitializerLabelPrefix = "initializer.internal.kcp.io/"
)
View Source
const ExperimentalWorkspaceOwnerAnnotationKey string = "experimental.tenancy.kcp.io/owner"
View Source
const LogicalClusterTypeAnnotationKey = "internal.tenancy.kcp.io/type"

LogicalClusterTypeAnnotationKey is the annotation key used to indicate the type of the workspace on the corresponding LogicalCluster object. Its format is "root:ws:name".

View Source
const (
	// RootWorkspaceTypeName is a reference to the root logical cluster, which has no workspace type
	RootWorkspaceTypeName = WorkspaceTypeName("root")
)
View Source
const WorkspaceAPIBindingsInitializer corev1alpha1.LogicalClusterInitializer = "system:apibindings"

WorkspaceAPIBindingsInitializer is a special-case initializer that waits for APIBindings defined on a WorkspaceType to be created.

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: tenancy.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 ObjectName

func ObjectName(typeName WorkspaceTypeName) string

ObjectName converts the proper name of a type that users interact with to the metadata.name of the WorkspaceType object.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func WorkspaceTypeReservedNames added in v0.11.0

func WorkspaceTypeReservedNames() []string

WorkspaceTypeReservedNames defines the set of names that may not be used on user-supplied WorkspaceTypes. TODO(hasheddan): tie this definition of reserved names to the patches used to apply the same restrictions to the OpenAPISchema.

Types

type APIExportReference added in v0.9.0

type APIExportReference struct {
	// path is the fully-qualified path to the workspace containing the APIExport. If it is
	// empty, the current workspace is assumed.
	//
	// +optional
	// +kubebuilder:validation: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"`

	// export is the name of the APIExport.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kube:validation:MinLength=1
	Export string `json:"export"`
}

APIExportReference provides the fields necessary to resolve an APIExport.

func (*APIExportReference) DeepCopy added in v0.9.0

func (in *APIExportReference) DeepCopy() *APIExportReference

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

func (*APIExportReference) DeepCopyInto added in v0.9.0

func (in *APIExportReference) DeepCopyInto(out *APIExportReference)

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

type VirtualWorkspace

type VirtualWorkspace struct {
	// url is a WorkspaceType initialization virtual workspace URL.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:format:URL
	// +required
	URL string `json:"url"`
}

func (*VirtualWorkspace) DeepCopy

func (in *VirtualWorkspace) DeepCopy() *VirtualWorkspace

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

func (*VirtualWorkspace) DeepCopyInto

func (in *VirtualWorkspace) DeepCopyInto(out *VirtualWorkspace)

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

type Workspace added in v0.11.0

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

	Spec WorkspaceSpec `json:"spec"`

	// +optional
	Status WorkspaceStatus `json:"status,omitempty"`
}

Workspace defines a generic Kubernetes-cluster-like endpoint, with standard Kubernetes discovery APIs, OpenAPI and resource API endpoints.

A workspace can be backed by different concrete types of workspace implementation, depending on access pattern. All workspace implementations share the characteristic that the URL that serves a given workspace can be used with standard Kubernetes API machinery and client libraries and command line tools.

+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,shortName=ws +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.spec.type.name`,description="Type of the workspace" +kubebuilder:printcolumn:name="Region",type=string,JSONPath=`.metadata.labels['region']`,description="The region this workspace is in" +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.metadata.labels['tenancy\.kcp\.io/phase']`,description="The current phase (e.g. Scheduling, Initializing, Ready, Deleting)" +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.spec.URL`,description="URL to access the workspace" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*Workspace) DeepCopy added in v0.11.0

func (in *Workspace) DeepCopy() *Workspace

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

func (*Workspace) DeepCopyInto added in v0.11.0

func (in *Workspace) DeepCopyInto(out *Workspace)

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

func (*Workspace) DeepCopyObject added in v0.11.0

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

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

func (*Workspace) GetConditions added in v0.11.0

func (in *Workspace) GetConditions() conditionsv1alpha1.Conditions

func (*Workspace) SetConditions added in v0.11.0

func (in *Workspace) SetConditions(c conditionsv1alpha1.Conditions)

type WorkspaceList added in v0.11.0

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

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

WorkspaceList is a list of Workspaces

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

func (*WorkspaceList) DeepCopy added in v0.11.0

func (in *WorkspaceList) DeepCopy() *WorkspaceList

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

func (*WorkspaceList) DeepCopyInto added in v0.11.0

func (in *WorkspaceList) DeepCopyInto(out *WorkspaceList)

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

func (*WorkspaceList) DeepCopyObject added in v0.11.0

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

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

type WorkspaceLocation added in v0.11.0

type WorkspaceLocation struct {

	// selector is a label selector that filters workspace scheduling targets.
	//
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

func (*WorkspaceLocation) DeepCopy added in v0.11.0

func (in *WorkspaceLocation) DeepCopy() *WorkspaceLocation

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

func (*WorkspaceLocation) DeepCopyInto added in v0.11.0

func (in *WorkspaceLocation) DeepCopyInto(out *WorkspaceLocation)

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

type WorkspaceSpec added in v0.11.0

type WorkspaceSpec struct {
	// type defines properties of the workspace both on creation (e.g. initial
	// resources and initially installed APIs) and during runtime (e.g. permissions).
	// If no type is provided, the default type for the workspace in which this workspace
	// is nesting will be used.
	//
	// The type is a reference to a WorkspaceType in the listed workspace, but
	// lower-cased. The WorkspaceType existence is validated at admission during
	// creation. The type is immutable after creation. The use of a type is gated via
	// the RBAC workspacetypes/use resource permission.
	//
	// +optional
	// +kubebuilder:validation:XValidation:rule="self.name == oldSelf.name",message="name is immutable"
	// +kubebuilder:validation:XValidation:rule="has(oldSelf.path) == has(self.path)",message="path is immutable"
	// +kubebuilder:validation:XValidation:rule="!has(oldSelf.path) || !has(self.path) || self.path == oldSelf.path",message="path is immutable"
	Type WorkspaceTypeReference `json:"type,omitempty"`

	// location constraints where this workspace can be scheduled to.
	//
	// If the no location is specified, an arbitrary location is chosen.
	//
	// +optional
	Location *WorkspaceLocation `json:"location,omitempty"`

	// cluster is the name of the logical cluster this workspace is stored under.
	//
	// Set by the system.
	//
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="cluster is immutable"
	Cluster string `json:"cluster,omitempty"`

	// URL is the address under which the Kubernetes-cluster-like endpoint
	// can be found. This URL can be used to access the workspace with standard Kubernetes
	// client libraries and command line tools.
	//
	// Set by the system.
	//
	// +kubebuilder:format:uri
	URL string `json:"URL,omitempty"`
}

WorkspaceSpec holds the desired state of the Workspace. +kubebuilder:validation:XValidation:rule="!has(oldSelf.URL) || has(self.URL)",message="URL cannot be unset" +kubebuilder:validation:XValidation:rule="!has(oldSelf.cluster) || has(self.cluster)",message="cluster cannot be unset"

func (*WorkspaceSpec) DeepCopy added in v0.11.0

func (in *WorkspaceSpec) DeepCopy() *WorkspaceSpec

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

func (*WorkspaceSpec) DeepCopyInto added in v0.11.0

func (in *WorkspaceSpec) DeepCopyInto(out *WorkspaceSpec)

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

type WorkspaceStatus added in v0.11.0

type WorkspaceStatus struct {
	// Phase of the workspace (Scheduling, Initializing, Ready).
	//
	// +kubebuilder:default=Scheduling
	Phase corev1alpha1.LogicalClusterPhaseType `json:"phase,omitempty"`

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

	// initializers must be cleared by a controller before the workspace is ready
	// and can be used.
	//
	// +optional
	Initializers []corev1alpha1.LogicalClusterInitializer `json:"initializers,omitempty"`
}

WorkspaceStatus communicates the observed state of the Workspace.

func (*WorkspaceStatus) DeepCopy added in v0.11.0

func (in *WorkspaceStatus) DeepCopy() *WorkspaceStatus

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

func (*WorkspaceStatus) DeepCopyInto added in v0.11.0

func (in *WorkspaceStatus) DeepCopyInto(out *WorkspaceStatus)

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

type WorkspaceType added in v0.11.0

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

	// +optional
	Spec WorkspaceTypeSpec `json:"spec,omitempty"`

	// +optional
	Status WorkspaceTypeStatus `json:"status,omitempty"`
}

WorkspaceType specifies behaviour of workspaces of this type.

+crd +genclient +genclient:nonNamespaced +kubebuilder:subresource:status +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Cluster,categories=kcp

func (*WorkspaceType) DeepCopy added in v0.11.0

func (in *WorkspaceType) DeepCopy() *WorkspaceType

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

func (*WorkspaceType) DeepCopyInto added in v0.11.0

func (in *WorkspaceType) DeepCopyInto(out *WorkspaceType)

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

func (*WorkspaceType) DeepCopyObject added in v0.11.0

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

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

func (*WorkspaceType) GetConditions added in v0.11.0

func (in *WorkspaceType) GetConditions() conditionsv1alpha1.Conditions

func (*WorkspaceType) SetConditions added in v0.11.0

func (in *WorkspaceType) SetConditions(conditions conditionsv1alpha1.Conditions)

type WorkspaceTypeExtension added in v0.11.0

type WorkspaceTypeExtension struct {
	// with are WorkspaceTypes whose initializers are added to the list
	// for the owning type, and for whom the owning type becomes an alias, as long
	// as all of their required types are not mentioned in without.
	//
	// +optional
	With []WorkspaceTypeReference `json:"with,omitempty"`
}

WorkspaceTypeExtension defines how other WorkspaceTypes are composed together to add functionality to the owning WorkspaceType.

func (*WorkspaceTypeExtension) DeepCopy added in v0.11.0

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

func (*WorkspaceTypeExtension) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeExtension) DeepCopyInto(out *WorkspaceTypeExtension)

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

type WorkspaceTypeList added in v0.11.0

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

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

WorkspaceTypeList is a list of workspace types

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

func (*WorkspaceTypeList) DeepCopy added in v0.11.0

func (in *WorkspaceTypeList) DeepCopy() *WorkspaceTypeList

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

func (*WorkspaceTypeList) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeList) DeepCopyInto(out *WorkspaceTypeList)

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

func (*WorkspaceTypeList) DeepCopyObject added in v0.11.0

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

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

type WorkspaceTypeName added in v0.11.0

type WorkspaceTypeName string

WorkspaceTypeName is a name of a WorkspaceType

+kubebuilder:validation:Pattern=`^[a-z]([a-z0-9-]{0,61}[a-z0-9])?`

func TypeName

func TypeName(objectName string) WorkspaceTypeName

TypeName converts the metadata.name of a WorkspaceType to the proper name of a type, as users interact with it.

type WorkspaceTypeReference added in v0.11.0

type WorkspaceTypeReference struct {
	// name is the name of the WorkspaceType
	//
	// +required
	// +kubebuilder:validation:Required
	Name WorkspaceTypeName `json:"name"`

	// path is an absolute reference to the workspace that owns this type, e.g. root:org:ws.
	//
	// +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"`
}

WorkspaceTypeReference is a globally unique, fully qualified reference to a workspace type.

func (*WorkspaceTypeReference) DeepCopy added in v0.11.0

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

func (*WorkspaceTypeReference) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeReference) DeepCopyInto(out *WorkspaceTypeReference)

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

func (WorkspaceTypeReference) String added in v0.11.0

func (r WorkspaceTypeReference) String() string

type WorkspaceTypeSelector added in v0.11.0

type WorkspaceTypeSelector struct {
	// none means that no type matches.
	//
	// +kuberbuilders:Enum=true
	None bool `json:"none,omitempty"`

	// types is a list of WorkspaceTypes that match. A workspace type extending
	// another workspace type automatically is considered as that extended type as well
	// (even transitively).
	//
	// An empty list matches all types.
	//
	// +optional
	// +kubebuilder:validation:MinItems=1
	Types []WorkspaceTypeReference `json:"types,omitempty"`
}

WorkspaceTypeSelector describes a set of types.

func (*WorkspaceTypeSelector) DeepCopy added in v0.11.0

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

func (*WorkspaceTypeSelector) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeSelector) DeepCopyInto(out *WorkspaceTypeSelector)

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

type WorkspaceTypeSpec added in v0.11.0

type WorkspaceTypeSpec struct {
	// initializer determines if this WorkspaceType has an associated initializing
	// controller. These controllers are used to add functionality to a ClusterWorkspace;
	// all controllers must finish their work before the ClusterWorkspace becomes ready
	// for use.
	//
	// One initializing controller is supported per WorkspaceType; the identifier
	// for this initializer will be a colon-delimited string using the workspace in which
	// the WorkspaceType is defined, and the type's name. For example, if a
	// WorkspaceType `example` is created in the `root:org` workspace, the implicit
	// initializer name is `root:org:Example`.
	//
	// +optional
	Initializer bool `json:"initializer,omitempty"`

	// extend is a list of other WorkspaceTypes whose initializers and limitAllowedChildren
	// and limitAllowedParents this WorkspaceType is inheriting. By (transitively) extending
	// another WorkspaceType, this WorkspaceType will be considered as that
	// other type in evaluation of limitAllowedChildren and limitAllowedParents constraints.
	//
	// A dependency cycle stop this WorkspaceType from being admitted as the type
	// of a ClusterWorkspace.
	//
	// A non-existing dependency stop this WorkspaceType from being admitted as the type
	// of a ClusterWorkspace.
	//
	// +optional
	Extend WorkspaceTypeExtension `json:"extend,omitempty"`

	// additionalWorkspaceLabels are a set of labels that will be added to a
	// ClusterWorkspace on creation.
	//
	// +optional
	AdditionalWorkspaceLabels map[string]string `json:"additionalWorkspaceLabels,omitempty"`

	// defaultChildWorkspaceType is the WorkspaceType that will be used
	// by default if another, nested ClusterWorkspace is created in a workspace
	// of this type. When this field is unset, the user must specify a type when
	// creating nested workspaces. Extending another WorkspaceType does
	// not inherit its defaultChildWorkspaceType.
	//
	// +optional
	DefaultChildWorkspaceType *WorkspaceTypeReference `json:"defaultChildWorkspaceType,omitempty"`

	// limitAllowedChildren specifies constraints for sub-workspaces created in workspaces
	// of this type. These are in addition to child constraints of types this one extends.
	//
	// +optional
	LimitAllowedChildren *WorkspaceTypeSelector `json:"limitAllowedChildren,omitempty"`

	// limitAllowedParents specifies constraints for the parent workspace that workspaces
	// of this type are created in. These are in addition to parent constraints of types this one
	// extends.
	//
	// +optional
	LimitAllowedParents *WorkspaceTypeSelector `json:"limitAllowedParents,omitempty"`

	// defaultAPIBindings are the APIs to bind during initialization of workspaces created from this type.
	// The APIBinding names will be generated dynamically.
	//
	// +optional
	DefaultAPIBindings []APIExportReference `json:"defaultAPIBindings,omitempty"`
}

func (*WorkspaceTypeSpec) DeepCopy added in v0.11.0

func (in *WorkspaceTypeSpec) DeepCopy() *WorkspaceTypeSpec

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

func (*WorkspaceTypeSpec) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeSpec) DeepCopyInto(out *WorkspaceTypeSpec)

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

type WorkspaceTypeStatus added in v0.11.0

type WorkspaceTypeStatus struct {
	// conditions is a list of conditions that apply to the APIExport.
	//
	// +optional
	Conditions conditionsv1alpha1.Conditions `json:"conditions,omitempty"`

	// virtualWorkspaces contains all APIExport virtual workspace URLs.
	// +optional
	VirtualWorkspaces []VirtualWorkspace `json:"virtualWorkspaces,omitempty"`
}

WorkspaceTypeStatus defines the observed state of WorkspaceType.

func (*WorkspaceTypeStatus) DeepCopy added in v0.11.0

func (in *WorkspaceTypeStatus) DeepCopy() *WorkspaceTypeStatus

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

func (*WorkspaceTypeStatus) DeepCopyInto added in v0.11.0

func (in *WorkspaceTypeStatus) DeepCopyInto(out *WorkspaceTypeStatus)

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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