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.