v1beta1

package
v0.0.0-...-bc4e445 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=kubeflow.org

Index

Constants

This section is empty.

Variables

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

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ActivityProbe

type ActivityProbe struct {
	// a shell command probe
	//  - if the Workspace had activity in the last 60 seconds this command
	//    should return status 0, otherwise it should return status 1
	//+kubebuilder:validation:Optional
	Exec *ActivityProbeExec `json:"exec,omitempty"`

	// a Jupyter-specific probe
	//  - will poll the `/api/status` endpoint of the Jupyter API, and use the `last_activity` field
	//  - note, users need to be careful that their other probes don't trigger a "last_activity" update
	//    e.g. they should only check the health of Jupyter using the `/api/status` endpoint
	//+kubebuilder:validation:Optional
	Jupyter *ActivityProbeJupyter `json:"jupyter,omitempty"`
}

+kubebuilder:validation:XValidation:message="must specify exactly one of 'exec' or 'jupyter'",rule="!(has(self.exec) && has(self.jupyter)) && (has(self.exec) || has(self.jupyter))"

func (*ActivityProbe) DeepCopy

func (in *ActivityProbe) DeepCopy() *ActivityProbe

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

func (*ActivityProbe) DeepCopyInto

func (in *ActivityProbe) DeepCopyInto(out *ActivityProbe)

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

type ActivityProbeExec

type ActivityProbeExec struct {
	// the command to run
	//+kubebuilder:validation:MinItems:=1
	//+kubebuilder:example={"bash", "-c", "exit 0"}
	Command []string `json:"command"`
}

func (*ActivityProbeExec) DeepCopy

func (in *ActivityProbeExec) DeepCopy() *ActivityProbeExec

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

func (*ActivityProbeExec) DeepCopyInto

func (in *ActivityProbeExec) DeepCopyInto(out *ActivityProbeExec)

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

type ActivityProbeJupyter

type ActivityProbeJupyter struct {
	// if the Jupyter-specific probe is enabled
	//+kubebuilder:example=true
	LastActivity bool `json:"lastActivity"`
}

+kubebuilder:validation:XValidation:message="'lastActivity' must be true",rule="has(self.lastActivity) && self.lastActivity"

func (*ActivityProbeJupyter) DeepCopy

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

func (*ActivityProbeJupyter) DeepCopyInto

func (in *ActivityProbeJupyter) DeepCopyInto(out *ActivityProbeJupyter)

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

type HTTPProxy

type HTTPProxy struct {
	// if the path prefix is stripped from incoming HTTP requests
	//  - if true, the '/workspace/{profile_name}/{workspace_name}/' path prefix
	//    is stripped from incoming requests, the application sees the request
	//    as if it was made to '/...'
	//  - this only works if the application serves RELATIVE URLs for its assets
	//+kubebuilder:validation:Optional
	//+kubebuilder:default:=false
	RemovePathPrefix *bool `json:"removePathPrefix,omitempty"`

	// header manipulation rules for incoming HTTP requests
	//  - sets the `spec.http[].headers.request` of the Istio VirtualService
	//    https://istio.io/latest/docs/reference/config/networking/virtual-service/#Headers-HeaderOperations
	//  - the following string templates are available:
	//     - `.PathPrefix`: the path prefix of the Workspace (e.g. '/workspace/{profile_name}/{workspace_name}/')
	//+kubebuilder:validation:Optional
	RequestHeaders *IstioHeaderOperations `json:"requestHeaders,omitempty"`
}

func (*HTTPProxy) DeepCopy

func (in *HTTPProxy) DeepCopy() *HTTPProxy

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

func (*HTTPProxy) DeepCopyInto

func (in *HTTPProxy) DeepCopyInto(out *HTTPProxy)

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

type ImageConfig

type ImageConfig struct {
	// spawner ui configs
	Spawner OptionsSpawnerConfig `json:"spawner"`

	// the list of image configs that are available
	//+kubebuilder:validation:MinItems:=1
	//+listType:="map"
	//+listMapKey:="id"
	Values []ImageConfigValue `json:"values"`
}

func (*ImageConfig) DeepCopy

func (in *ImageConfig) DeepCopy() *ImageConfig

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

func (*ImageConfig) DeepCopyInto

func (in *ImageConfig) DeepCopyInto(out *ImageConfig)

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

type ImageConfigSpec

type ImageConfigSpec struct {
	// the container image to use
	//+kubebuilder:validation:MinLength:=2
	//+kubeflow:example="docker.io/kubeflownotebookswg/jupyter-scipy:v1.7.0"
	Image string `json:"image"`

	// the pull policy for the container image
	//+kubebuilder:validation:Optional
	//+kubebuilder:default:="IfNotPresent"
	//+kubebuilder:validation:Enum:={"Always","IfNotPresent","Never"}
	ImagePullPolicy *v1.PullPolicy `json:"imagePullPolicy"`

	// ports that the container listens on
	//   - if multiple ports are defined, the user will see multiple "Connect" buttons
	//     in a dropdown menu on the Workspace overview page
	//+kubebuilder:validation:MinItems:=1
	//+listType:="map"
	//+listMapKey:="id"
	Ports []ImagePort `json:"ports"`
}

func (*ImageConfigSpec) DeepCopy

func (in *ImageConfigSpec) DeepCopy() *ImageConfigSpec

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

func (*ImageConfigSpec) DeepCopyInto

func (in *ImageConfigSpec) DeepCopyInto(out *ImageConfigSpec)

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

type ImageConfigValue

type ImageConfigValue struct {
	// the id of this image config
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example:="jupyterlab_scipy_190"
	Id string `json:"id"`

	// information for the spawner ui
	Spawner OptionSpawnerInfo `json:"spawner"`

	// redirect configs
	//+kubebuilder:validation:Optional
	Redirect *OptionRedirect `json:"redirect,omitempty"`

	// the spec of the image config
	Spec ImageConfigSpec `json:"spec"`
}

func (*ImageConfigValue) DeepCopy

func (in *ImageConfigValue) DeepCopy() *ImageConfigValue

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

func (*ImageConfigValue) DeepCopyInto

func (in *ImageConfigValue) DeepCopyInto(out *ImageConfigValue)

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

type ImagePort

type ImagePort struct {
	// the id of the port
	//  - this is NOT used as the Container or Service port name, but as part of the HTTP path
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=32
	//+kubebuilder:validation:Pattern:=^[a-z0-9][a-z0-9_-]*[a-z0-9]$
	//+kubebuilder:example="jupyterlab"
	Id string `json:"id"`

	// the port number
	//+kubebuilder:validation:Minimum:=1
	//+kubebuilder:validation:Maximum:=65535
	//+kubebuilder:example:=8888
	Port int32 `json:"port"`

	// the display name of the port
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=64
	//+kubebuilder:example:="JupyterLab"
	DisplayName string `json:"displayName"`

	// the protocol of the port
	//+kubebuilder:example:="HTTP"
	Protocol ImagePortProtocol `json:"protocol"`
}

func (*ImagePort) DeepCopy

func (in *ImagePort) DeepCopy() *ImagePort

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

func (*ImagePort) DeepCopyInto

func (in *ImagePort) DeepCopyInto(out *ImagePort)

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

type ImagePortProtocol

type ImagePortProtocol string

+kubebuilder:validation:Enum:={"HTTP"}

const (
	ImagePortProtocolHTTP ImagePortProtocol = "HTTP"
)

type IstioHeaderOperations

type IstioHeaderOperations struct {
	// overwrite the headers specified by key with the given values
	//+kubebuilder:validation:Optional
	//+kubebuilder:example:={ "X-RStudio-Root-Path": "{{ .PathPrefix }}" }
	Set map[string]string `json:"set,omitempty"`

	// append the given values to the headers specified by keys (will create a comma-separated list of values)
	//+kubebuilder:validation:Optional
	//+kubebuilder:example:={ "My-Header": "value-to-append" }
	Add map[string]string `json:"add,omitempty"`

	// remove the specified headers
	//+kubebuilder:validation:Optional
	//+kubebuilder:example:={"Header-To-Remove"}
	Remove []string `json:"remove,omitempty"`
}

func (*IstioHeaderOperations) DeepCopy

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

func (*IstioHeaderOperations) DeepCopyInto

func (in *IstioHeaderOperations) DeepCopyInto(out *IstioHeaderOperations)

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

type OptionMetric

type OptionMetric struct {
	// the id of the option
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example="big_gpu"
	Id string `json:"id"`

	// the number of Workspaces currently using the option
	//+kubebuilder:example=3
	Workspaces int32 `json:"workspaces"`
}

func (*OptionMetric) DeepCopy

func (in *OptionMetric) DeepCopy() *OptionMetric

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

func (*OptionMetric) DeepCopyInto

func (in *OptionMetric) DeepCopyInto(out *OptionMetric)

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

type OptionRedirect

type OptionRedirect struct {
	// the id of the option to redirect to
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example:="jupyterlab_scipy_190"
	To string `json:"to"`

	// information about the redirect
	//+kubebuilder:validation:Optional
	Message *RedirectMessage `json:"message,omitempty"`
}

func (*OptionRedirect) DeepCopy

func (in *OptionRedirect) DeepCopy() *OptionRedirect

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

func (*OptionRedirect) DeepCopyInto

func (in *OptionRedirect) DeepCopyInto(out *OptionRedirect)

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

type OptionSpawnerInfo

type OptionSpawnerInfo struct {
	// the display name of the option
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=128
	DisplayName string `json:"displayName"`

	// a description of the option
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=1024
	Description *string `json:"description,omitempty"`

	// labels for the option
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:MaxItems:=32
	//+listType:="map"
	//+listMapKey:="key"
	Labels []OptionSpawnerLabel `json:"labels,omitempty"`

	// if this option should be hidden from the Workspace Spawner UI
	//+kubebuilder:validation:Optional
	//+kubebuilder:default:=false
	Hidden *bool `json:"hidden,omitempty"`
}

func (*OptionSpawnerInfo) DeepCopy

func (in *OptionSpawnerInfo) DeepCopy() *OptionSpawnerInfo

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

func (*OptionSpawnerInfo) DeepCopyInto

func (in *OptionSpawnerInfo) DeepCopyInto(out *OptionSpawnerInfo)

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

type OptionSpawnerLabel

type OptionSpawnerLabel struct {
	// the key of the label
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=64
	Key string `json:"key"`

	// the value of the label
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=64
	Value string `json:"value"`
}

func (*OptionSpawnerLabel) DeepCopy

func (in *OptionSpawnerLabel) DeepCopy() *OptionSpawnerLabel

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

func (*OptionSpawnerLabel) DeepCopyInto

func (in *OptionSpawnerLabel) DeepCopyInto(out *OptionSpawnerLabel)

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

type OptionsSpawnerConfig

type OptionsSpawnerConfig struct {
	// the id of the default option
	//  - this will be selected by default in the spawner ui
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example="jupyterlab_scipy_190"
	Default string `json:"default"`
}

func (*OptionsSpawnerConfig) DeepCopy

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

func (*OptionsSpawnerConfig) DeepCopyInto

func (in *OptionsSpawnerConfig) DeepCopyInto(out *OptionsSpawnerConfig)

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

type PodConfig

type PodConfig struct {
	// spawner ui configs
	Spawner OptionsSpawnerConfig `json:"spawner"`

	// the list of pod configs that are available
	//+kubebuilder:validation:MinItems:=1
	//+listType:="map"
	//+listMapKey:="id"
	Values []PodConfigValue `json:"values"`
}

func (*PodConfig) DeepCopy

func (in *PodConfig) DeepCopy() *PodConfig

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

func (*PodConfig) DeepCopyInto

func (in *PodConfig) DeepCopyInto(out *PodConfig)

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

type PodConfigSpec

type PodConfigSpec struct {
	// affinity configs for the pod
	//+kubebuilder:validation:Optional
	Affinity *v1.Affinity `json:"affinity,omitempty"`

	// node selector configs for the pod
	//+kubebuilder:validation:Optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// toleration configs for the pod
	//+kubebuilder:validation:Optional
	Tolerations []v1.Toleration `json:"tolerations,omitempty"`

	// resource configs for the "main" container in the pod
	//+kubebuilder:validation:Optional
	Resources *v1.ResourceRequirements `json:"resources,omitempty"`
}

func (*PodConfigSpec) DeepCopy

func (in *PodConfigSpec) DeepCopy() *PodConfigSpec

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

func (*PodConfigSpec) DeepCopyInto

func (in *PodConfigSpec) DeepCopyInto(out *PodConfigSpec)

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

type PodConfigValue

type PodConfigValue struct {
	// the id of this pod config
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example="big_gpu"
	Id string `json:"id"`

	// information for the spawner ui
	Spawner OptionSpawnerInfo `json:"spawner"`

	// redirect configs
	//+kubebuilder:validation:Optional
	Redirect *OptionRedirect `json:"redirect,omitempty"`

	// the spec of the pod config
	Spec PodConfigSpec `json:"spec"`
}

func (*PodConfigValue) DeepCopy

func (in *PodConfigValue) DeepCopy() *PodConfigValue

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

func (*PodConfigValue) DeepCopyInto

func (in *PodConfigValue) DeepCopyInto(out *PodConfigValue)

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

type PodTemplateOptionsMetrics

type PodTemplateOptionsMetrics struct {
	// metrics about the imageConfig options
	//+listType:="map"
	//+listMapKey:="id"
	ImageConfig []OptionMetric `json:"imageConfig"`

	// metrics about the podConfig options
	//+listType:="map"
	//+listMapKey:="id"
	PodConfig []OptionMetric `json:"podConfig"`
}

func (*PodTemplateOptionsMetrics) DeepCopy

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

func (*PodTemplateOptionsMetrics) DeepCopyInto

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

type PodVolumeMount

type PodVolumeMount struct {
	// the name of the PVC to mount
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=63
	//+kubebuilder:validation:Pattern:=^[a-z0-9][-a-z0-9]*[a-z0-9]$
	//+kubebuilder:example="my-data-pvc"
	PVCName string `json:"pvcName"`

	// the mount path for the PVC
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=4096
	//+kubebuilder:validation:Pattern:=^/[^/].*$
	//+kubebuilder:example="/data/my-data"
	MountPath string `json:"mountPath"`

	// if the PVC should be mounted as ReadOnly
	//+kubebuilder:validation:Optional
	//+kubebuilder:default=false
	ReadOnly *bool `json:"readOnly,omitempty"`
}

func (*PodVolumeMount) DeepCopy

func (in *PodVolumeMount) DeepCopy() *PodVolumeMount

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

func (*PodVolumeMount) DeepCopyInto

func (in *PodVolumeMount) DeepCopyInto(out *PodVolumeMount)

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

type RedirectMessage

type RedirectMessage struct {
	// the importance level of the message
	//+kubebuilder:example:="Info"
	Level RedirectMessageLevel `json:"level"`

	// the text of the message to show
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=1024
	//+kubebuilder:example:="This update will increase the version of JupyterLab to v1.7.1"
	Text string `json:"text"`
}

func (*RedirectMessage) DeepCopy

func (in *RedirectMessage) DeepCopy() *RedirectMessage

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

func (*RedirectMessage) DeepCopyInto

func (in *RedirectMessage) DeepCopyInto(out *RedirectMessage)

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

type RedirectMessageLevel

type RedirectMessageLevel string

+kubebuilder:validation:Enum:={"Info","Warning","Danger"}

const (
	RedirectMessageLevelInfo    RedirectMessageLevel = "Info"
	RedirectMessageLevelWarning RedirectMessageLevel = "Warning"
	RedirectMessageLevelDanger  RedirectMessageLevel = "Danger"
)

type Workspace

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

	Spec   WorkspaceSpec   `json:"spec,omitempty"`
	Status WorkspaceStatus `json:"status,omitempty"`
}

Workspace is the Schema for the Workspaces API

func (*Workspace) DeepCopy

func (in *Workspace) DeepCopy() *Workspace

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

func (*Workspace) DeepCopyInto

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

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

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

type WorkspaceActivity

type WorkspaceActivity struct {
	// the last time activity was observed on the Workspace (UNIX epoch)
	//+kubebuilder:default=0
	//+kubebuilder:example=1704067200
	LastActivity int64 `json:"lastActivity"`

	// the last time we checked for activity on the Workspace (UNIX epoch)
	//+kubebuilder:default=0
	//+kubebuilder:example=1704067200
	LastUpdate int64 `json:"lastUpdate"`
}

func (*WorkspaceActivity) DeepCopy

func (in *WorkspaceActivity) DeepCopy() *WorkspaceActivity

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

func (*WorkspaceActivity) DeepCopyInto

func (in *WorkspaceActivity) DeepCopyInto(out *WorkspaceActivity)

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

type WorkspaceKind

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

	Spec   WorkspaceKindSpec   `json:"spec,omitempty"`
	Status WorkspaceKindStatus `json:"status,omitempty"`
}

WorkspaceKind is the Schema for the WorkspaceKinds API

func (*WorkspaceKind) DeepCopy

func (in *WorkspaceKind) DeepCopy() *WorkspaceKind

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

func (*WorkspaceKind) DeepCopyInto

func (in *WorkspaceKind) DeepCopyInto(out *WorkspaceKind)

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

func (*WorkspaceKind) DeepCopyObject

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

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

type WorkspaceKindConfigMap

type WorkspaceKindConfigMap struct {
	//+kubebuilder:example="my-logos"
	Name string `json:"name"`

	//+kubebuilder:example="apple-touch-icon-152x152.png"
	Key string `json:"key"`
}

func (*WorkspaceKindConfigMap) DeepCopy

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

func (*WorkspaceKindConfigMap) DeepCopyInto

func (in *WorkspaceKindConfigMap) DeepCopyInto(out *WorkspaceKindConfigMap)

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

type WorkspaceKindCullingConfig

type WorkspaceKindCullingConfig struct {
	// if the culling feature is enabled
	//+kubebuilder:validation:Optional
	//+kubebuilder:default=true
	Enabled *bool `json:"enabled,omitempty"`

	// the maximum number of seconds a Workspace can be inactive
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=60
	//+kubebuilder:default=86400
	MaxInactiveSeconds *int32 `json:"maxInactiveSeconds,omitempty"`

	// the probe used to determine if the Workspace is active
	ActivityProbe ActivityProbe `json:"activityProbe"`
}

func (*WorkspaceKindCullingConfig) DeepCopy

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

func (*WorkspaceKindCullingConfig) DeepCopyInto

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

type WorkspaceKindIcon

type WorkspaceKindIcon struct {
	//+kubebuilder:validation:Optional
	//+kubebuilder:example="https://jupyter.org/assets/favicons/apple-touch-icon-152x152.png"
	Url *string `json:"url,omitempty"`

	//+kubebuilder:validation:Optional
	ConfigMap *WorkspaceKindConfigMap `json:"configMap,omitempty"`
}

+kubebuilder:validation:XValidation:message="must specify exactly one of 'url' or 'configMap'",rule="!(has(self.url) && has(self.configMap)) && (has(self.url) || has(self.configMap))"

func (*WorkspaceKindIcon) DeepCopy

func (in *WorkspaceKindIcon) DeepCopy() *WorkspaceKindIcon

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

func (*WorkspaceKindIcon) DeepCopyInto

func (in *WorkspaceKindIcon) DeepCopyInto(out *WorkspaceKindIcon)

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

type WorkspaceKindList

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

WorkspaceKindList contains a list of WorkspaceKind

func (*WorkspaceKindList) DeepCopy

func (in *WorkspaceKindList) DeepCopy() *WorkspaceKindList

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

func (*WorkspaceKindList) DeepCopyInto

func (in *WorkspaceKindList) DeepCopyInto(out *WorkspaceKindList)

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

func (*WorkspaceKindList) DeepCopyObject

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

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

type WorkspaceKindPodMetadata

type WorkspaceKindPodMetadata struct {
	// labels to be applied to the Pod resource
	//+kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// annotations to be applied to the Pod resource
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*WorkspaceKindPodMetadata) DeepCopy

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

func (*WorkspaceKindPodMetadata) DeepCopyInto

func (in *WorkspaceKindPodMetadata) DeepCopyInto(out *WorkspaceKindPodMetadata)

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

type WorkspaceKindPodOptions

type WorkspaceKindPodOptions struct {
	// imageConfig options
	ImageConfig ImageConfig `json:"imageConfig"`

	// podConfig options
	PodConfig PodConfig `json:"podConfig"`
}

func (*WorkspaceKindPodOptions) DeepCopy

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

func (*WorkspaceKindPodOptions) DeepCopyInto

func (in *WorkspaceKindPodOptions) DeepCopyInto(out *WorkspaceKindPodOptions)

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

type WorkspaceKindPodTemplate

type WorkspaceKindPodTemplate struct {
	// metadata for Workspace Pods (MUTABLE)
	//+kubebuilder:validation:Optional
	PodMetadata *WorkspaceKindPodMetadata `json:"podMetadata,omitempty"`

	// service account configs for Workspace Pods
	ServiceAccount WorkspaceKindServiceAccount `json:"serviceAccount"`

	// culling configs for pausing inactive Workspaces (MUTABLE)
	//+kubebuilder:validation:Optional
	Culling *WorkspaceKindCullingConfig `json:"culling,omitempty"`

	// standard probes to determine Container health (MUTABLE)
	//+kubebuilder:validation:Optional
	Probes *WorkspaceKindProbes `json:"probes,omitempty"`

	// volume mount paths
	VolumeMounts WorkspaceKindVolumeMounts `json:"volumeMounts"`

	// http proxy configs (MUTABLE)
	//+kubebuilder:validation:Optional
	HTTPProxy *HTTPProxy `json:"httpProxy,omitempty"`

	// environment variables for Workspace Pods (MUTABLE)
	//  - the following go template functions are available:
	//     - `httpPathPrefix(portId string)`: returns the HTTP path prefix of the specified port
	//+kubebuilder:validation:Optional
	//+listType:="map"
	//+listMapKey:="name"
	ExtraEnv []v1.EnvVar `json:"extraEnv,omitempty"`

	// extra volume mounts for Workspace Pods (MUTABLE)
	//+kubebuilder:validation:Optional
	//+listType:="map"
	//+listMapKey:="mountPath"
	ExtraVolumeMounts []v1.VolumeMount `json:"extraVolumeMounts,omitempty"`

	// extra volumes for Workspace Pods (MUTABLE)
	//+kubebuilder:validation:Optional
	//+listType:="map"
	//+listMapKey:="name"
	ExtraVolumes []v1.Volume `json:"extraVolumes,omitempty"`

	// security context for Workspace Pods (MUTABLE)
	//+kubebuilder:validation:Optional
	SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"`

	// container security context for Workspace Pods (MUTABLE)
	//+kubebuilder:validation:Optional
	ContainerSecurityContext *v1.SecurityContext `json:"containerSecurityContext,omitempty"`

	// options are the user-selectable fields, they determine the PodSpec of the Workspace
	Options WorkspaceKindPodOptions `json:"options"`
}

func (*WorkspaceKindPodTemplate) DeepCopy

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

func (*WorkspaceKindPodTemplate) DeepCopyInto

func (in *WorkspaceKindPodTemplate) DeepCopyInto(out *WorkspaceKindPodTemplate)

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

type WorkspaceKindProbes

type WorkspaceKindProbes struct {
	// the startup probe for the main container
	//+kubebuilder:validation:Optional
	StartupProbe *v1.Probe `json:"startupProbe,omitempty"`

	// the liveness probe for the main container
	//+kubebuilder:validation:Optional
	LivenessProbe *v1.Probe `json:"livenessProbe,omitempty"`

	// the readiness probe for the main container
	//+kubebuilder:validation:Optional
	ReadinessProbe *v1.Probe `json:"readinessProbe,omitempty"`
}

func (*WorkspaceKindProbes) DeepCopy

func (in *WorkspaceKindProbes) DeepCopy() *WorkspaceKindProbes

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

func (*WorkspaceKindProbes) DeepCopyInto

func (in *WorkspaceKindProbes) DeepCopyInto(out *WorkspaceKindProbes)

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

type WorkspaceKindServiceAccount

type WorkspaceKindServiceAccount struct {
	// the name of the ServiceAccount (NOT MUTABLE)
	//  - this Service Account MUST already exist in the Namespace
	//    of the Workspace, the controller will NOT create it
	//  - we will not show this WorkspaceKind in the Spawner UI
	//    if the SA does not exist in the Namespace
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="ServiceAccount 'name' is immutable"
	//+kubebuilder:example="default-editor"
	Name string `json:"name"`
}

func (*WorkspaceKindServiceAccount) DeepCopy

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

func (*WorkspaceKindServiceAccount) DeepCopyInto

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

type WorkspaceKindSpawner

type WorkspaceKindSpawner struct {
	// the display name of the WorkspaceKind
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=128
	//+kubebuilder:example:="JupyterLab Notebook"
	DisplayName string `json:"displayName"`

	// the description of the WorkspaceKind
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=4096
	//+kubebuilder:example:="A Workspace which runs JupyterLab in a Pod"
	Description string `json:"description"`

	// if this WorkspaceKind should be hidden from the Workspace Spawner UI
	//+kubebuilder:validation:Optional
	//+kubebuilder:default:=false
	Hidden *bool `json:"hidden,omitempty"`

	// if this WorkspaceKind is deprecated
	//+kubebuilder:validation:Optional
	//+kubebuilder:default:=false
	Deprecated *bool `json:"deprecated,omitempty"`

	// a message to show in Workspace Spawner UI when the WorkspaceKind is deprecated
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example:="This WorkspaceKind will be removed on 20XX-XX-XX, please use another WorkspaceKind."
	DeprecationMessage *string `json:"deprecationMessage,omitempty"`

	// the icon of the WorkspaceKind
	//  - a small (favicon-sized) icon used in the Workspace Spawner UI
	Icon WorkspaceKindIcon `json:"icon"`

	//  - a 1:1 (card size) logo used in the Workspace Spawner UI
	Logo WorkspaceKindIcon `json:"logo"`
}

func (*WorkspaceKindSpawner) DeepCopy

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

func (*WorkspaceKindSpawner) DeepCopyInto

func (in *WorkspaceKindSpawner) DeepCopyInto(out *WorkspaceKindSpawner)

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

type WorkspaceKindSpec

type WorkspaceKindSpec struct {

	// spawner config determines how the WorkspaceKind is displayed in the Workspace Spawner UI
	Spawner WorkspaceKindSpawner `json:"spawner"`

	// podTemplate is the PodTemplate used to spawn Pods to run Workspaces of this WorkspaceKind
	PodTemplate WorkspaceKindPodTemplate `json:"podTemplate"`
}

WorkspaceKindSpec defines the desired state of WorkspaceKind

func (*WorkspaceKindSpec) DeepCopy

func (in *WorkspaceKindSpec) DeepCopy() *WorkspaceKindSpec

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

func (*WorkspaceKindSpec) DeepCopyInto

func (in *WorkspaceKindSpec) DeepCopyInto(out *WorkspaceKindSpec)

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

type WorkspaceKindStatus

type WorkspaceKindStatus struct {

	// the number of Workspaces that are using this WorkspaceKind
	//+kubebuilder:default=0
	Workspaces int32 `json:"workspaces"`

	// metrics for podTemplate options
	PodTemplateOptions PodTemplateOptionsMetrics `json:"podTemplateOptions"`
}

WorkspaceKindStatus defines the observed state of WorkspaceKind

func (*WorkspaceKindStatus) DeepCopy

func (in *WorkspaceKindStatus) DeepCopy() *WorkspaceKindStatus

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

func (*WorkspaceKindStatus) DeepCopyInto

func (in *WorkspaceKindStatus) DeepCopyInto(out *WorkspaceKindStatus)

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

type WorkspaceKindVolumeMounts

type WorkspaceKindVolumeMounts struct {
	// the path to mount the home PVC (NOT MUTABLE)
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=4096
	//+kubebuilder:validation:Pattern:=^/[^/].*$
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="mount path of 'home' is immutable"
	//+kubebuilder:example:="/home/jovyan"
	Home string `json:"home"`
}

func (*WorkspaceKindVolumeMounts) DeepCopy

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

func (*WorkspaceKindVolumeMounts) DeepCopyInto

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

type WorkspaceList

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

WorkspaceList contains a list of Workspace

func (*WorkspaceList) DeepCopy

func (in *WorkspaceList) DeepCopy() *WorkspaceList

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

func (*WorkspaceList) DeepCopyInto

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

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

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

type WorkspacePodMetadata

type WorkspacePodMetadata struct {
	// labels to be applied to the Pod resource
	//+kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// annotations to be applied to the Pod resource
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*WorkspacePodMetadata) DeepCopy

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

func (*WorkspacePodMetadata) DeepCopyInto

func (in *WorkspacePodMetadata) DeepCopyInto(out *WorkspacePodMetadata)

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

type WorkspacePodOptionInfo

type WorkspacePodOptionInfo struct {
	// the option id which will take effect after the next restart
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	Desired string `json:"desired,omitempty"`

	// the chain from the current option to the desired option
	//+kubebuilder:validation:Optional
	RedirectChain []WorkspacePodOptionRedirectStep `json:"redirectChain,omitempty"`
}

func (*WorkspacePodOptionInfo) DeepCopy

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

func (*WorkspacePodOptionInfo) DeepCopyInto

func (in *WorkspacePodOptionInfo) DeepCopyInto(out *WorkspacePodOptionInfo)

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

type WorkspacePodOptionRedirectStep

type WorkspacePodOptionRedirectStep struct {
	// the source option id
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	Source string `json:"source"`

	// the target option id
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	Target string `json:"target"`
}

func (*WorkspacePodOptionRedirectStep) DeepCopy

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

func (*WorkspacePodOptionRedirectStep) DeepCopyInto

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

type WorkspacePodOptions

type WorkspacePodOptions struct {
	// the id of an imageConfig option
	//  - options are defined in WorkspaceKind under
	//    `spec.podTemplate.options.imageConfig.values[]`
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example="jupyterlab_scipy_190"
	ImageConfig string `json:"imageConfig"`

	// the id of a podConfig option
	//  - options are defined in WorkspaceKind under
	//    `spec.podTemplate.options.podConfig.values[]`
	//+kubebuilder:validation:MinLength:=1
	//+kubebuilder:validation:MaxLength:=256
	//+kubebuilder:example="big_gpu"
	PodConfig string `json:"podConfig"`
}

func (*WorkspacePodOptions) DeepCopy

func (in *WorkspacePodOptions) DeepCopy() *WorkspacePodOptions

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

func (*WorkspacePodOptions) DeepCopyInto

func (in *WorkspacePodOptions) DeepCopyInto(out *WorkspacePodOptions)

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

type WorkspacePodOptionsStatus

type WorkspacePodOptionsStatus struct {
	// info about the current imageConfig option
	ImageConfig WorkspacePodOptionInfo `json:"imageConfig"`

	// info about the current podConfig option
	PodConfig WorkspacePodOptionInfo `json:"podConfig"`
}

func (*WorkspacePodOptionsStatus) DeepCopy

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

func (*WorkspacePodOptionsStatus) DeepCopyInto

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

type WorkspacePodTemplate

type WorkspacePodTemplate struct {
	// metadata to be applied to the Pod resource
	//+kubebuilder:validation:Optional
	PodMetadata *WorkspacePodMetadata `json:"podMetadata,omitempty"`

	// volume configs
	Volumes WorkspacePodVolumes `json:"volumes"`

	// the selected podTemplate options
	Options WorkspacePodOptions `json:"options"`
}

func (*WorkspacePodTemplate) DeepCopy

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

func (*WorkspacePodTemplate) DeepCopyInto

func (in *WorkspacePodTemplate) DeepCopyInto(out *WorkspacePodTemplate)

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

type WorkspacePodVolumes

type WorkspacePodVolumes struct {
	// the name of the PVC to mount as the home volume
	//  - this PVC must already exist in the Namespace
	//  - this PVC must be RWX (ReadWriteMany, ReadWriteOnce)
	//  - the mount path is defined in the WorkspaceKind under
	//    `spec.podTemplate.volumeMounts.home`
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=63
	//+kubebuilder:validation:Pattern:=^[a-z0-9][-a-z0-9]*[a-z0-9]$
	//+kubebuilder:example="my-home-pvc"
	Home *string `json:"home,omitempty"`

	// additional PVCs to mount
	//  - these PVC must already exist in the Namespace
	//  - the same PVC can be mounted multiple times with different `mountPaths`
	//  - if `readOnly` is false, the PVC must be RWX (ReadWriteMany, ReadWriteOnce)
	//  - if `readOnly` is true, the PVC must be ReadOnlyMany
	//+kubebuilder:validation:Optional
	//+listType:="map"
	//+listMapKey:="mountPath"
	Data []PodVolumeMount `json:"data,omitempty"`
}

func (*WorkspacePodVolumes) DeepCopy

func (in *WorkspacePodVolumes) DeepCopy() *WorkspacePodVolumes

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

func (*WorkspacePodVolumes) DeepCopyInto

func (in *WorkspacePodVolumes) DeepCopyInto(out *WorkspacePodVolumes)

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

type WorkspaceSpec

type WorkspaceSpec struct {

	// if the workspace is paused (no pods running)
	//+kubebuilder:validation:Optional
	//+kubebuilder:default=false
	Paused *bool `json:"paused,omitempty"`

	// if true, pending updates are NOT applied when the Workspace is paused
	// if false, pending updates are applied when the Workspace is paused
	//+kubebuilder:validation:Optional
	//+kubebuilder:default=false
	DeferUpdates *bool `json:"deferUpdates,omitempty"`

	// the WorkspaceKind to use
	//+kubebuilder:validation:MinLength:=2
	//+kubebuilder:validation:MaxLength:=63
	//+kubebuilder:validation:Pattern:=^[a-z0-9][-a-z0-9]*[a-z0-9]$
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Workspace 'kind' is immutable"
	//+kubebuilder:example="jupyterlab"
	Kind string `json:"kind"`

	// options for "podTemplate"-type WorkspaceKinds
	PodTemplate WorkspacePodTemplate `json:"podTemplate"`
}

WorkspaceSpec defines the desired state of Workspace

func (*WorkspaceSpec) DeepCopy

func (in *WorkspaceSpec) DeepCopy() *WorkspaceSpec

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

func (*WorkspaceSpec) DeepCopyInto

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

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

type WorkspaceState

type WorkspaceState string

+kubebuilder:validation:Enum:={"Running","Terminating","Paused","Pending","Error","Unknown"}

const (
	WorkspaceStateRunning     WorkspaceState = "Running"
	WorkspaceStateTerminating WorkspaceState = "Terminating"
	WorkspaceStatePaused      WorkspaceState = "Paused"
	WorkspaceStatePending     WorkspaceState = "Pending"
	WorkspaceStateError       WorkspaceState = "Error"
	WorkspaceStateUnknown     WorkspaceState = "Unknown"
)

type WorkspaceStatus

type WorkspaceStatus struct {
	// activity information for the Workspace, used to determine when to cull
	Activity WorkspaceActivity `json:"activity"`

	// the time when the Workspace was paused (UNIX epoch)
	//  - set to 0 when the Workspace is NOT paused
	//+kubebuilder:default=0
	//+kubebuilder:example=1704067200
	PauseTime int64 `json:"pauseTime"`

	// if the current Pod does not reflect the current "desired" state
	//  - true if any `spec.podTemplate.options` have a redirect
	//    and so will be patched on the next restart
	//  - true if the WorkspaceKind has changed one of its common `podTemplate` fields
	//    like `podMetadata`, `probes`, `extraEnv`, or `containerSecurityContext`
	//+kubebuilder:default=false
	PendingRestart bool `json:"pendingRestart"`

	// information about the current podTemplate options
	PodTemplateOptions WorkspacePodOptionsStatus `json:"podTemplateOptions"`

	// the current state of the Workspace
	//+kubebuilder:default="Unknown"
	State WorkspaceState `json:"state"`

	// a human-readable message about the state of the Workspace
	//  - WARNING: this field is NOT FOR MACHINE USE, subject to change without notice
	//+kubebuilder:default=""
	StateMessage string `json:"stateMessage"`
}

WorkspaceStatus defines the observed state of Workspace

func (*WorkspaceStatus) DeepCopy

func (in *WorkspaceStatus) DeepCopy() *WorkspaceStatus

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

func (*WorkspaceStatus) DeepCopyInto

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

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

Jump to

Keyboard shortcuts

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