Documentation
¶
Overview ¶
Package k8s provides Kubernetes client wrappers for the kube-workspaces API server. It includes specialized clients for workspaces, images, CRDs, core resources (pods, services, PVCs), and a metrics buffer for caching pod resource usage data.
Index ¶
- Variables
- func GetClientset() (kubernetes.Interface, error)
- func GetRESTConfig() (*rest.Config, error)
- func NewClient() (*kubernetes.Clientset, error)
- func NewDynamicClient() (dynamic.Interface, error)
- func ValidateCloudImage(ref string, persistent bool, workspaceTypes []string, profile string) error
- func WorkspacePVCNames(workspace *unstructured.Unstructured) map[string]bool
- type CRDClient
- func (c *CRDClient) GetCRD(ctx context.Context, name string) (*unstructured.Unstructured, error)
- func (c *CRDClient) ListCRDInstances(ctx context.Context, group, version, resource, namespace string) (*unstructured.UnstructuredList, error)
- func (c *CRDClient) ListCRDs(ctx context.Context) (*unstructured.UnstructuredList, error)
- func (c *CRDClient) ListCRDsByGroup(ctx context.Context, group string) (*unstructured.UnstructuredList, error)
- type CoreClient
- func (c *CoreClient) AnnotateNamespace(ctx context.Context, name, key, value string) error
- func (c *CoreClient) CreateWorkspaceEvent(ctx context.Context, namespace, workspaceName, action, actor, message string) error
- func (c *CoreClient) GetPod(ctx context.Context, namespace, name string) (*corev1.Pod, error)
- func (c *CoreClient) GetPodLogs(ctx context.Context, namespace, name, container string, tailLines int64) (string, error)
- func (c *CoreClient) GetStatefulSet(ctx context.Context, namespace, name string) (interface{}, error)
- func (c *CoreClient) ListEvents(ctx context.Context, namespace, fieldSelector string) (*corev1.EventList, error)
- func (c *CoreClient) ListNamespaceEvents(ctx context.Context, namespace string) (*corev1.EventList, error)
- func (c *CoreClient) ListNamespaces(ctx context.Context) (*corev1.NamespaceList, error)
- func (c *CoreClient) ListPods(ctx context.Context, namespace, labelSelector string) (*corev1.PodList, error)
- func (c *CoreClient) ListWorkspaceEvents(ctx context.Context, namespace, workspaceName string) (*corev1.EventList, error)
- type Image
- type ImageClient
- func (c *ImageClient) CreateImage(ctx context.Context, name string, spec map[string]interface{}) (*unstructured.Unstructured, error)
- func (c *ImageClient) DeleteImage(ctx context.Context, name string) error
- func (c *ImageClient) GetImage(ctx context.Context, name string) (*Image, error)
- func (c *ImageClient) GetImageByRef(ctx context.Context, imageRef string) (*Image, error)
- func (c *ImageClient) GetImageRaw(ctx context.Context, name string) (*unstructured.Unstructured, error)
- func (c *ImageClient) ListImages(ctx context.Context) ([]Image, error)
- func (c *ImageClient) UpdateImage(ctx context.Context, name string, spec map[string]interface{}) (*unstructured.Unstructured, error)
- type ImageCredentials
- type ImageEnvVar
- type ImageInitContainer
- type ImageLink
- type ImagePort
- type ImageProxyConfig
- type ImageRemoteDesktop
- type ImageRepositoryClient
- func (c *ImageRepositoryClient) CreateImageRepository(ctx context.Context, obj *unstructured.Unstructured) (*unstructured.Unstructured, error)
- func (c *ImageRepositoryClient) DeleteImageRepository(ctx context.Context, name string) error
- func (c *ImageRepositoryClient) GetImageRepositoryRaw(ctx context.Context, name string) (*unstructured.Unstructured, error)
- func (c *ImageRepositoryClient) ListImageRepositories(ctx context.Context) (*unstructured.UnstructuredList, error)
- func (c *ImageRepositoryClient) PatchImageRepository(ctx context.Context, name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error)
- func (c *ImageRepositoryClient) UpdateImageRepository(ctx context.Context, obj *unstructured.Unstructured) (*unstructured.Unstructured, error)
- type ImageVolumeMount
- type MetricPoint
- type MetricsBuffer
- func (b *MetricsBuffer) Client() *MetricsClient
- func (b *MetricsBuffer) EnsurePod(ctx context.Context, namespace, name string, container string)
- func (b *MetricsBuffer) GetMetrics(namespace, name string, window time.Duration) ([]MetricPoint, string)
- func (b *MetricsBuffer) Run(ctx context.Context)
- func (b *MetricsBuffer) Stop()
- type MetricsClient
- type MetricsSnapshot
- type PodDefault
- type PodDefaultClient
- type PodDefaultEnvVar
- type PodDefaultVolumeMount
- type SSHKeyClient
- func (c *SSHKeyClient) CreateSSHKey(ctx context.Context, sshKey *unstructured.Unstructured) (*unstructured.Unstructured, error)
- func (c *SSHKeyClient) DeleteSSHKey(ctx context.Context, namespace, name string) error
- func (c *SSHKeyClient) GetSSHKey(ctx context.Context, namespace, name string) (*unstructured.Unstructured, error)
- func (c *SSHKeyClient) ListSSHKeys(ctx context.Context, namespace string) (*unstructured.UnstructuredList, error)
- type VMConsoleAvailability
- type VMGPUProfile
- type WorkspaceClient
- func (c *WorkspaceClient) CreateWorkspace(ctx context.Context, workspace *unstructured.Unstructured) (*unstructured.Unstructured, error)
- func (c *WorkspaceClient) DeleteWorkspace(ctx context.Context, namespace, name string) error
- func (c *WorkspaceClient) GetInitialCredentialSecret(ctx context.Context, namespace, name string) (*corev1.Secret, error)
- func (c *WorkspaceClient) GetWorkspace(ctx context.Context, namespace, name string) (*unstructured.Unstructured, error)
- func (c *WorkspaceClient) ListWorkspaces(ctx context.Context, namespace string) (*unstructured.UnstructuredList, error)
- func (c *WorkspaceClient) RequireStoppedWindowsVM(ctx context.Context, workspace *unstructured.Unstructured) error
- func (c *WorkspaceClient) ResolveVMGPUProfile(ctx context.Context, id string, selector map[string]string) (*VMGPUProfile, error)
- func (c *WorkspaceClient) UpdateWorkspace(ctx context.Context, workspace *unstructured.Unstructured) (*unstructured.Unstructured, error)
- func (c *WorkspaceClient) VMConsoleAvailability(ctx context.Context, namespace, name string) (VMConsoleAvailability, error)
- func (c *WorkspaceClient) VMGPUProfiles(ctx context.Context) ([]VMGPUProfile, error)
- func (c *WorkspaceClient) WatchWorkspaces(ctx context.Context, namespace string, opts metav1.ListOptions) (watch.Interface, error)
Constants ¶
This section is empty.
Variables ¶
var (
ErrVMGPUNotStopped = errors.New("Windows GPU changes require a fully stopped VM and no VMI")
)
Functions ¶
func GetClientset ¶
func GetClientset() (kubernetes.Interface, error)
GetClientset returns a Kubernetes clientset for use by the exec handler.
func GetRESTConfig ¶
GetRESTConfig returns a Kubernetes REST config for use by the exec handler.
func NewClient ¶
func NewClient() (*kubernetes.Clientset, error)
NewClient creates a Kubernetes clientset (used by volumes and namespaces services).
func NewDynamicClient ¶
NewDynamicClient creates a dynamic Kubernetes client for working with CRDs.
func ValidateCloudImage ¶ added in v0.11.0
ValidateCloudImage leaves OCI references unchanged. URL sources are only meaningful for VM-only catalog images imported into persistent CDI roots.
func WorkspacePVCNames ¶ added in v0.11.0
func WorkspacePVCNames(workspace *unstructured.Unstructured) map[string]bool
WorkspacePVCNames distinguishes user-editable PVC mounts from auxiliary mounts such as memory-backed /dev/shm and projected service-account tokens.
Types ¶
type CRDClient ¶
type CRDClient struct {
// contains filtered or unexported fields
}
CRDClient provides operations on CustomResourceDefinition resources.
func NewCRDClient ¶
NewCRDClient creates a new CRDClient using the same config as other clients.
func (*CRDClient) GetCRD ¶
func (c *CRDClient) GetCRD(ctx context.Context, name string) (*unstructured.Unstructured, error)
GetCRD gets a CustomResourceDefinition by name.
func (*CRDClient) ListCRDInstances ¶
func (c *CRDClient) ListCRDInstances(ctx context.Context, group, version, resource, namespace string) (*unstructured.UnstructuredList, error)
ListCRDInstances lists all instances of a CRD identified by group/version/resource. For namespaced CRDs, pass namespace; for cluster-scoped, pass "".
func (*CRDClient) ListCRDs ¶
func (c *CRDClient) ListCRDs(ctx context.Context) (*unstructured.UnstructuredList, error)
ListCRDs lists all CustomResourceDefinitions in the cluster.
func (*CRDClient) ListCRDsByGroup ¶
func (c *CRDClient) ListCRDsByGroup(ctx context.Context, group string) (*unstructured.UnstructuredList, error)
ListCRDsByGroup lists CustomResourceDefinitions filtered by spec.group.
type CoreClient ¶
type CoreClient struct {
// contains filtered or unexported fields
}
CoreClient provides operations on core Kubernetes resources (pods, events).
func NewCoreClient ¶
func NewCoreClient() (*CoreClient, error)
NewCoreClient creates a new CoreClient using in-cluster config or kubeconfig.
func NewCoreClientFor ¶ added in v0.7.0
func NewCoreClientFor(clientset kubernetes.Interface) *CoreClient
NewCoreClientFor wraps an injected clientset, for tests and embedded use, mirroring NewWorkspaceClientFor.
func (*CoreClient) AnnotateNamespace ¶
func (c *CoreClient) AnnotateNamespace(ctx context.Context, name, key, value string) error
AnnotateNamespace sets or removes an annotation on a namespace. If value is empty, the annotation is removed.
func (*CoreClient) CreateWorkspaceEvent ¶
func (c *CoreClient) CreateWorkspaceEvent(ctx context.Context, namespace, workspaceName, action, actor, message string) error
CreateWorkspaceEvent creates a Kubernetes Event associated with a Workspace CR.
func (*CoreClient) GetPodLogs ¶
func (c *CoreClient) GetPodLogs(ctx context.Context, namespace, name, container string, tailLines int64) (string, error)
GetPodLogs returns the logs of a pod's container as a string.
func (*CoreClient) GetStatefulSet ¶
func (c *CoreClient) GetStatefulSet(ctx context.Context, namespace, name string) (interface{}, error)
GetStatefulSet returns a StatefulSet by name and namespace.
func (*CoreClient) ListEvents ¶
func (c *CoreClient) ListEvents(ctx context.Context, namespace, fieldSelector string) (*corev1.EventList, error)
ListEvents returns events for a specific object (by field selector).
func (*CoreClient) ListNamespaceEvents ¶
func (c *CoreClient) ListNamespaceEvents(ctx context.Context, namespace string) (*corev1.EventList, error)
ListNamespaceEvents returns all events in a namespace, optionally filtered.
func (*CoreClient) ListNamespaces ¶
func (c *CoreClient) ListNamespaces(ctx context.Context) (*corev1.NamespaceList, error)
ListNamespaces returns all namespaces in the cluster.
func (*CoreClient) ListPods ¶
func (c *CoreClient) ListPods(ctx context.Context, namespace, labelSelector string) (*corev1.PodList, error)
ListPods returns pods matching label selector in a namespace.
func (*CoreClient) ListWorkspaceEvents ¶
func (c *CoreClient) ListWorkspaceEvents(ctx context.Context, namespace, workspaceName string) (*corev1.EventList, error)
ListWorkspaceEvents returns events related to a specific workspace.
type Image ¶
type Image struct {
SourceRepository string
SourceRepositoryURL string
SourceRepositoryRef string
SourceRepositoryCommit string
SourceRepositoryPath string
Name string
DisplayName string
Description string
Category string
Tags []string
Image string
DefaultPort int32
DefaultPath string
Icon string
DefaultArgs []string
DefaultEnv []ImageEnvVar
DefaultCredentials *ImageCredentials
Privileged bool
HomepageURL string
SourceURL string
ImageHomepageURL string
DefaultUser string
DefaultPassword string
DefaultCloudInit bool
DefaultUserData string
DefaultHomedir string
DefaultShell string
Links []ImageLink
ProxyConfig *ImageProxyConfig
DefaultUID *int64
DefaultInitContainers []ImageInitContainer
AdditionalPorts []ImagePort
// DefaultImagePullPolicy is the pull policy applied to workspace containers
// created from this image. Empty leaves the container field unset so
// Kubernetes applies its own default.
DefaultImagePullPolicy string
// WorkspaceTypes lists the workspace types this image supports
// (container, vm, scratch). Empty means container-only.
WorkspaceTypes []string
// RemoteDesktop configuration for this image (Tier 1 transport).
RemoteDesktop *ImageRemoteDesktop
VMProfile string
PersistentRootDisk bool
PersistentRootDiskSize string
MemoryLimit string
MemoryRequest string
}
Image represents a parsed Image CR.
type ImageClient ¶
type ImageClient struct {
// contains filtered or unexported fields
}
ImageClient provides operations on Image custom resources.
func NewImageClient ¶
func NewImageClient() (*ImageClient, error)
NewImageClient creates a new ImageClient.
func NewImageClientFor ¶ added in v0.7.0
func NewImageClientFor(client dynamic.Interface) *ImageClient
func (*ImageClient) CreateImage ¶
func (c *ImageClient) CreateImage(ctx context.Context, name string, spec map[string]interface{}) (*unstructured.Unstructured, error)
CreateImage creates a new Image CR.
func (*ImageClient) DeleteImage ¶
func (c *ImageClient) DeleteImage(ctx context.Context, name string) error
DeleteImage deletes an Image CR.
func (*ImageClient) GetImageByRef ¶
GetImageByRef finds an Image CR whose spec.image matches the given reference.
func (*ImageClient) GetImageRaw ¶
func (c *ImageClient) GetImageRaw(ctx context.Context, name string) (*unstructured.Unstructured, error)
GetImageRaw returns the raw unstructured Image CR object.
func (*ImageClient) ListImages ¶
func (c *ImageClient) ListImages(ctx context.Context) ([]Image, error)
ListImages lists all Image CRs (cluster-scoped).
func (*ImageClient) UpdateImage ¶
func (c *ImageClient) UpdateImage(ctx context.Context, name string, spec map[string]interface{}) (*unstructured.Unstructured, error)
UpdateImage updates an existing Image CR.
type ImageCredentials ¶
ImageCredentials represents default login credentials for a workspace image.
type ImageEnvVar ¶
ImageEnvVar is an environment variable with optional placeholder support.
type ImageInitContainer ¶
type ImageInitContainer struct {
Name string
Image string
Command []string
Args []string
Env []ImageEnvVar
VolumeMounts []ImageVolumeMount
}
ImageInitContainer represents a simplified init container spec for Image CR defaults.
type ImageProxyConfig ¶
type ImageProxyConfig struct {
NeedsNoOpSW bool
WebSocketPaths []string
RewriteHostAbsolutePaths bool
CustomRequestHeaders map[string]string
InjectBaseTag bool
TLSInsecure bool
PreservePathPrefix bool
AudioPort int32
}
ImageProxyConfig describes proxy behavior for an image.
type ImageRemoteDesktop ¶ added in v0.5.0
ImageRemoteDesktop describes an in-guest remote desktop agent.
type ImageRepositoryClient ¶ added in v0.11.0
type ImageRepositoryClient struct {
// contains filtered or unexported fields
}
ImageRepositoryClient provides operations on ImageRepository custom resources.
func NewImageRepositoryClient ¶ added in v0.11.0
func NewImageRepositoryClient() (*ImageRepositoryClient, error)
NewImageRepositoryClient creates a new ImageRepositoryClient.
func NewImageRepositoryClientFor ¶ added in v0.11.0
func NewImageRepositoryClientFor(client dynamic.Interface) *ImageRepositoryClient
func (*ImageRepositoryClient) CreateImageRepository ¶ added in v0.11.0
func (c *ImageRepositoryClient) CreateImageRepository(ctx context.Context, obj *unstructured.Unstructured) (*unstructured.Unstructured, error)
CreateImageRepository creates a new ImageRepository CR.
func (*ImageRepositoryClient) DeleteImageRepository ¶ added in v0.11.0
func (c *ImageRepositoryClient) DeleteImageRepository(ctx context.Context, name string) error
DeleteImageRepository deletes an ImageRepository CR.
func (*ImageRepositoryClient) GetImageRepositoryRaw ¶ added in v0.11.0
func (c *ImageRepositoryClient) GetImageRepositoryRaw(ctx context.Context, name string) (*unstructured.Unstructured, error)
GetImageRepositoryRaw returns the raw unstructured ImageRepository CR object.
func (*ImageRepositoryClient) ListImageRepositories ¶ added in v0.11.0
func (c *ImageRepositoryClient) ListImageRepositories(ctx context.Context) (*unstructured.UnstructuredList, error)
ListImageRepositories lists all ImageRepository CRs (cluster-scoped).
func (*ImageRepositoryClient) PatchImageRepository ¶ added in v0.11.0
func (c *ImageRepositoryClient) PatchImageRepository(ctx context.Context, name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error)
PatchImageRepository patches an ImageRepository CR.
func (*ImageRepositoryClient) UpdateImageRepository ¶ added in v0.11.0
func (c *ImageRepositoryClient) UpdateImageRepository(ctx context.Context, obj *unstructured.Unstructured) (*unstructured.Unstructured, error)
UpdateImageRepository updates an existing ImageRepository CR.
type ImageVolumeMount ¶
ImageVolumeMount represents a volume mount for an init container.
type MetricPoint ¶
type MetricsBuffer ¶
type MetricsBuffer struct {
// contains filtered or unexported fields
}
func NewMetricsBuffer ¶
func NewMetricsBuffer(client *MetricsClient, interval, maxAge time.Duration) *MetricsBuffer
func (*MetricsBuffer) Client ¶
func (b *MetricsBuffer) Client() *MetricsClient
func (*MetricsBuffer) EnsurePod ¶
func (b *MetricsBuffer) EnsurePod(ctx context.Context, namespace, name string, container string)
func (*MetricsBuffer) GetMetrics ¶
func (b *MetricsBuffer) GetMetrics(namespace, name string, window time.Duration) ([]MetricPoint, string)
func (*MetricsBuffer) Run ¶
func (b *MetricsBuffer) Run(ctx context.Context)
func (*MetricsBuffer) Stop ¶
func (b *MetricsBuffer) Stop()
type MetricsClient ¶
type MetricsClient struct {
// contains filtered or unexported fields
}
func NewMetricsClient ¶
func NewMetricsClient() (*MetricsClient, error)
func (*MetricsClient) GetPodMetrics ¶
func (c *MetricsClient) GetPodMetrics(ctx context.Context, namespace, name string) (*metricsv1beta1.PodMetrics, error)
func (*MetricsClient) GetPodMetricsSnapshot ¶
func (c *MetricsClient) GetPodMetricsSnapshot(ctx context.Context, namespace, name string) (*MetricsSnapshot, error)
func (*MetricsClient) IsAvailable ¶
func (c *MetricsClient) IsAvailable(ctx context.Context) bool
type MetricsSnapshot ¶
type PodDefault ¶
type PodDefault struct {
Name string
Namespace string
Desc string
Selector *metav1.LabelSelector
Env []PodDefaultEnvVar
VolumeMounts []PodDefaultVolumeMount
Volumes []map[string]interface{}
ServiceAccountName string
Annotations map[string]string
Labels map[string]string
}
PodDefault represents a parsed PodDefault CR.
type PodDefaultClient ¶
type PodDefaultClient struct {
// contains filtered or unexported fields
}
PodDefaultClient provides operations on PodDefault custom resources.
func NewPodDefaultClient ¶
func NewPodDefaultClient() (*PodDefaultClient, error)
NewPodDefaultClient creates a new PodDefaultClient.
func (*PodDefaultClient) GetMatchingPodDefaults ¶
func (c *PodDefaultClient) GetMatchingPodDefaults(ctx context.Context, namespace string, workspaceLabels map[string]string) ([]PodDefault, error)
GetMatchingPodDefaults returns PodDefaults in the given namespace whose selector matches the provided workspace labels. PodDefaults with no selector match all workspaces.
func (*PodDefaultClient) ListPodDefaults ¶
func (c *PodDefaultClient) ListPodDefaults(ctx context.Context, namespace string) ([]PodDefault, error)
ListPodDefaults lists all PodDefault CRs in a namespace.
type PodDefaultEnvVar ¶
PodDefaultEnvVar is an environment variable to inject.
type PodDefaultVolumeMount ¶
PodDefaultVolumeMount is a volume mount to inject.
type SSHKeyClient ¶ added in v0.4.0
type SSHKeyClient struct {
// contains filtered or unexported fields
}
SSHKeyClient provides operations on SshKey custom resources (users' SSH public keys stored in their personal namespace).
func NewSSHKeyClient ¶ added in v0.4.0
func NewSSHKeyClient() (*SSHKeyClient, error)
NewSSHKeyClient creates a new SSHKeyClient.
func (*SSHKeyClient) CreateSSHKey ¶ added in v0.4.0
func (c *SSHKeyClient) CreateSSHKey(ctx context.Context, sshKey *unstructured.Unstructured) (*unstructured.Unstructured, error)
CreateSSHKey creates a new SshKey CR.
func (*SSHKeyClient) DeleteSSHKey ¶ added in v0.4.0
func (c *SSHKeyClient) DeleteSSHKey(ctx context.Context, namespace, name string) error
DeleteSSHKey deletes an SshKey CR.
func (*SSHKeyClient) GetSSHKey ¶ added in v0.4.0
func (c *SSHKeyClient) GetSSHKey(ctx context.Context, namespace, name string) (*unstructured.Unstructured, error)
GetSSHKey gets an SshKey CR by name.
func (*SSHKeyClient) ListSSHKeys ¶ added in v0.4.0
func (c *SSHKeyClient) ListSSHKeys(ctx context.Context, namespace string) (*unstructured.UnstructuredList, error)
ListSSHKeys lists all SshKey CRs in a namespace.
type VMConsoleAvailability ¶ added in v0.11.0
type VMConsoleAvailability struct {
Available bool `json:"available"`
DisplayAvailable bool `json:"displayAvailable"`
}
VMConsoleAvailability describes launched console devices, independently of Workspace readiness or guest provisioning. It does not reserve either seat.
type VMGPUProfile ¶ added in v0.11.0
type VMGPUProfile struct {
ID string `json:"id"`
DisplayName string `json:"displayName"`
ResourceName string `json:"resourceName"`
Kind string `json:"kind"`
Count int32 `json:"count"`
NodeSelector map[string]string `json:"nodeSelector"`
GuestDriverVersion string `json:"guestDriverVersion"`
Experimental bool `json:"experimental"`
}
VMGPUProfile mirrors the controller's operator contract without scheme imports. This is requested configuration, not observed guest driver/encoder readiness.
func (*VMGPUProfile) Validate ¶ added in v0.11.0
func (p *VMGPUProfile) Validate() error
type WorkspaceClient ¶
type WorkspaceClient struct {
// contains filtered or unexported fields
}
WorkspaceClient provides operations on Workspace custom resources.
func NewWorkspaceClient ¶
func NewWorkspaceClient() (*WorkspaceClient, error)
NewWorkspaceClient creates a new WorkspaceClient.
func NewWorkspaceClientFor ¶ added in v0.6.0
func NewWorkspaceClientFor(dynamic dynamic.Interface) *WorkspaceClient
NewWorkspaceClientFor wraps an injected dynamic client, for tests and embedded use.
func (*WorkspaceClient) CreateWorkspace ¶
func (c *WorkspaceClient) CreateWorkspace(ctx context.Context, workspace *unstructured.Unstructured) (*unstructured.Unstructured, error)
CreateWorkspace creates a new workspace CR.
func (*WorkspaceClient) DeleteWorkspace ¶
func (c *WorkspaceClient) DeleteWorkspace(ctx context.Context, namespace, name string) error
DeleteWorkspace deletes a workspace CR.
func (*WorkspaceClient) GetInitialCredentialSecret ¶ added in v0.7.0
func (*WorkspaceClient) GetWorkspace ¶
func (c *WorkspaceClient) GetWorkspace(ctx context.Context, namespace, name string) (*unstructured.Unstructured, error)
GetWorkspace gets a workspace CR by name.
func (*WorkspaceClient) ListWorkspaces ¶
func (c *WorkspaceClient) ListWorkspaces(ctx context.Context, namespace string) (*unstructured.UnstructuredList, error)
ListWorkspaces lists all workspace CRs in a namespace.
func (*WorkspaceClient) RequireStoppedWindowsVM ¶ added in v0.11.0
func (c *WorkspaceClient) RequireStoppedWindowsVM(ctx context.Context, workspace *unstructured.Unstructured) error
func (*WorkspaceClient) ResolveVMGPUProfile ¶ added in v0.11.0
func (c *WorkspaceClient) ResolveVMGPUProfile(ctx context.Context, id string, selector map[string]string) (*VMGPUProfile, error)
func (*WorkspaceClient) UpdateWorkspace ¶
func (c *WorkspaceClient) UpdateWorkspace(ctx context.Context, workspace *unstructured.Unstructured) (*unstructured.Unstructured, error)
UpdateWorkspace updates an existing workspace CR.
func (*WorkspaceClient) VMConsoleAvailability ¶ added in v0.11.0
func (c *WorkspaceClient) VMConsoleAvailability(ctx context.Context, namespace, name string) (VMConsoleAvailability, error)
func (*WorkspaceClient) VMGPUProfiles ¶ added in v0.11.0
func (c *WorkspaceClient) VMGPUProfiles(ctx context.Context) ([]VMGPUProfile, error)
func (*WorkspaceClient) WatchWorkspaces ¶ added in v0.6.0
func (c *WorkspaceClient) WatchWorkspaces(ctx context.Context, namespace string, opts metav1.ListOptions) (watch.Interface, error)
WatchWorkspaces opens a change stream over workspace CRs in a namespace. An empty namespace watches all namespaces (the `?namespace=_all` case). The caller must Stop the returned watcher; it also ends with ctx.