Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=kubeflow.org
Index ¶
- Variables
- type ActivityProbe
- type ActivityProbeExec
- type ActivityProbeJupyter
- type HTTPProxy
- type ImageConfig
- type ImageConfigSpec
- type ImageConfigValue
- type ImagePort
- type ImagePortProtocol
- type IstioHeaderOperations
- type OptionMetric
- type OptionRedirect
- type OptionSpawnerInfo
- type OptionSpawnerLabel
- type OptionsSpawnerConfig
- type PodConfig
- type PodConfigSpec
- type PodConfigValue
- type PodTemplateOptionsMetrics
- type PodVolumeMount
- type RedirectMessage
- type RedirectMessageLevel
- type Workspace
- type WorkspaceActivity
- type WorkspaceKind
- type WorkspaceKindConfigMap
- type WorkspaceKindCullingConfig
- type WorkspaceKindIcon
- type WorkspaceKindList
- type WorkspaceKindPodMetadata
- type WorkspaceKindPodOptions
- type WorkspaceKindPodTemplate
- type WorkspaceKindProbes
- type WorkspaceKindServiceAccount
- type WorkspaceKindSpawner
- type WorkspaceKindSpec
- type WorkspaceKindStatus
- type WorkspaceKindVolumeMounts
- type WorkspaceList
- type WorkspacePodMetadata
- type WorkspacePodOptionInfo
- type WorkspacePodOptionRedirectStep
- type WorkspacePodOptions
- type WorkspacePodOptionsStatus
- type WorkspacePodTemplate
- type WorkspacePodVolumes
- type WorkspaceSpec
- type WorkspaceState
- type WorkspaceStatus
Constants ¶
This section is empty.
Variables ¶
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 ¶
func (in *ActivityProbeJupyter) DeepCopy() *ActivityProbeJupyter
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPProxy.
func (*HTTPProxy) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePort.
func (*ImagePort) DeepCopyInto ¶
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 ¶
func (in *IstioHeaderOperations) DeepCopy() *IstioHeaderOperations
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 ¶
func (in *OptionsSpawnerConfig) DeepCopy() *OptionsSpawnerConfig
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodConfig.
func (*PodConfig) DeepCopyInto ¶
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 ¶
func (in *PodTemplateOptionsMetrics) DeepCopy() *PodTemplateOptionsMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateOptionsMetrics.
func (*PodTemplateOptionsMetrics) DeepCopyInto ¶
func (in *PodTemplateOptionsMetrics) DeepCopyInto(out *PodTemplateOptionsMetrics)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workspace.
func (*Workspace) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Workspace) DeepCopyObject ¶
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 ¶
func (in *WorkspaceKindConfigMap) DeepCopy() *WorkspaceKindConfigMap
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 ¶
func (in *WorkspaceKindCullingConfig) DeepCopy() *WorkspaceKindCullingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceKindCullingConfig.
func (*WorkspaceKindCullingConfig) DeepCopyInto ¶
func (in *WorkspaceKindCullingConfig) DeepCopyInto(out *WorkspaceKindCullingConfig)
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 ¶
func (in *WorkspaceKindPodMetadata) DeepCopy() *WorkspaceKindPodMetadata
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 ¶
func (in *WorkspaceKindPodOptions) DeepCopy() *WorkspaceKindPodOptions
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 ¶
func (in *WorkspaceKindPodTemplate) DeepCopy() *WorkspaceKindPodTemplate
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 ¶
func (in *WorkspaceKindServiceAccount) DeepCopy() *WorkspaceKindServiceAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceKindServiceAccount.
func (*WorkspaceKindServiceAccount) DeepCopyInto ¶
func (in *WorkspaceKindServiceAccount) DeepCopyInto(out *WorkspaceKindServiceAccount)
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"` // the logo of the WorkspaceKind // - a 1:1 (card size) logo used in the Workspace Spawner UI Logo WorkspaceKindIcon `json:"logo"` }
func (*WorkspaceKindSpawner) DeepCopy ¶
func (in *WorkspaceKindSpawner) DeepCopy() *WorkspaceKindSpawner
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 ¶
func (in *WorkspaceKindVolumeMounts) DeepCopy() *WorkspaceKindVolumeMounts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceKindVolumeMounts.
func (*WorkspaceKindVolumeMounts) DeepCopyInto ¶
func (in *WorkspaceKindVolumeMounts) DeepCopyInto(out *WorkspaceKindVolumeMounts)
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 ¶
func (in *WorkspacePodMetadata) DeepCopy() *WorkspacePodMetadata
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 ¶
func (in *WorkspacePodOptionInfo) DeepCopy() *WorkspacePodOptionInfo
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 ¶
func (in *WorkspacePodOptionRedirectStep) DeepCopy() *WorkspacePodOptionRedirectStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspacePodOptionRedirectStep.
func (*WorkspacePodOptionRedirectStep) DeepCopyInto ¶
func (in *WorkspacePodOptionRedirectStep) DeepCopyInto(out *WorkspacePodOptionRedirectStep)
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 ¶
func (in *WorkspacePodOptionsStatus) DeepCopy() *WorkspacePodOptionsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspacePodOptionsStatus.
func (*WorkspacePodOptionsStatus) DeepCopyInto ¶
func (in *WorkspacePodOptionsStatus) DeepCopyInto(out *WorkspacePodOptionsStatus)
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 ¶
func (in *WorkspacePodTemplate) DeepCopy() *WorkspacePodTemplate
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.