Documentation
¶
Index ¶
- Constants
- Variables
- func NewCloneEndpoint(s Service) goa.Endpoint
- func NewCreateEndpoint(s Service) goa.Endpoint
- func NewCredentialsEndpoint(s Service) goa.Endpoint
- func NewDeleteEndpoint(s Service) goa.Endpoint
- func NewGetEndpoint(s Service) goa.Endpoint
- func NewGpuProfilesEndpoint(s Service) goa.Endpoint
- func NewListEndpoint(s Service) goa.Endpoint
- func NewResetEndpoint(s Service) goa.Endpoint
- func NewSetGpuProfileEndpoint(s Service) goa.Endpoint
- func NewStartEndpoint(s Service) goa.Endpoint
- func NewStopEndpoint(s Service) goa.Endpoint
- func NewViewedWorkspace(res *Workspace, view string) *workspacesviews.Workspace
- type AlreadyExists
- type Client
- func (c *Client) Clone(ctx context.Context, p *ClonePayload) (res *Workspace, err error)
- func (c *Client) Create(ctx context.Context, p *CreateWorkspacePayload) (res *Workspace, err error)
- func (c *Client) Credentials(ctx context.Context, p *CredentialsPayload) (res *WorkspaceInitialCredentials, err error)
- func (c *Client) Delete(ctx context.Context, p *DeletePayload) (err error)
- func (c *Client) Get(ctx context.Context, p *GetPayload) (res *Workspace, err error)
- func (c *Client) GpuProfiles(ctx context.Context) (res []*VMGPUProfile, err error)
- func (c *Client) List(ctx context.Context, p *ListPayload) (res []*Workspace, err error)
- func (c *Client) Reset(ctx context.Context, p *ResetPayload) (res *Workspace, err error)
- func (c *Client) SetGpuProfile(ctx context.Context, p *SetGpuProfilePayload) (res *Workspace, err error)
- func (c *Client) Start(ctx context.Context, p *StartPayload) (res *Workspace, err error)
- func (c *Client) Stop(ctx context.Context, p *StopPayload) (res *Workspace, err error)
- type ClonePayload
- type Conflict
- type ContainerState
- type CreateWorkspacePayload
- type CredentialsPayload
- type DeletePayload
- type Endpoints
- type EnvVar
- type Forbidden
- type GetPayload
- type ImageRemoteDesktop
- type Invalid
- type ListPayload
- type NotFound
- type ResetPayload
- type Service
- type SetGpuProfilePayload
- type StartPayload
- type StopPayload
- type Toleration
- type Unavailable
- type VMGPUProfile
- type VMOptions
- type VolumeMount
- type Workspace
- type WorkspaceCondition
- type WorkspaceContainer
- type WorkspaceInitialCredentials
Constants ¶
const APIName = "kube-workspaces"
APIName is the name of the API as defined in the design.
const APIVersion = "1.0.0"
APIVersion is the version of the API as defined in the design.
const ServiceName = "workspaces"
ServiceName is the name of the service as defined in the design. This is the same value that is set in the endpoint request contexts under the ServiceKey key.
Variables ¶
var MethodNames = [11]string{"gpu_profiles", "set_gpu_profile", "credentials", "list", "get", "create", "delete", "start", "stop", "reset", "clone"}
MethodNames lists the service method names as defined in the design. These are the same values that are set in the endpoint request contexts under the MethodKey key.
Functions ¶
func NewCloneEndpoint ¶ added in v0.5.0
NewCloneEndpoint returns an endpoint function that calls the method "clone" of service "workspaces".
func NewCreateEndpoint ¶
NewCreateEndpoint returns an endpoint function that calls the method "create" of service "workspaces".
func NewCredentialsEndpoint ¶ added in v0.7.0
NewCredentialsEndpoint returns an endpoint function that calls the method "credentials" of service "workspaces".
func NewDeleteEndpoint ¶
NewDeleteEndpoint returns an endpoint function that calls the method "delete" of service "workspaces".
func NewGetEndpoint ¶
NewGetEndpoint returns an endpoint function that calls the method "get" of service "workspaces".
func NewGpuProfilesEndpoint ¶ added in v0.11.0
NewGpuProfilesEndpoint returns an endpoint function that calls the method "gpu_profiles" of service "workspaces".
func NewListEndpoint ¶
NewListEndpoint returns an endpoint function that calls the method "list" of service "workspaces".
func NewResetEndpoint ¶ added in v0.4.0
NewResetEndpoint returns an endpoint function that calls the method "reset" of service "workspaces".
func NewSetGpuProfileEndpoint ¶ added in v0.11.0
NewSetGpuProfileEndpoint returns an endpoint function that calls the method "set_gpu_profile" of service "workspaces".
func NewStartEndpoint ¶
NewStartEndpoint returns an endpoint function that calls the method "start" of service "workspaces".
func NewStopEndpoint ¶
NewStopEndpoint returns an endpoint function that calls the method "stop" of service "workspaces".
func NewViewedWorkspace ¶
func NewViewedWorkspace(res *Workspace, view string) *workspacesviews.Workspace
NewViewedWorkspace initializes viewed result type Workspace from result type Workspace using the given view.
Types ¶
type AlreadyExists ¶
type AlreadyExists string
Workspace already exists
func (AlreadyExists) Error ¶
func (e AlreadyExists) Error() string
Error returns an error description.
func (AlreadyExists) ErrorName
deprecated
func (e AlreadyExists) ErrorName() string
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (AlreadyExists) GoaErrorName ¶
func (e AlreadyExists) GoaErrorName() string
GoaErrorName returns the error name.
type Client ¶
type Client struct {
GpuProfilesEndpoint goa.Endpoint
SetGpuProfileEndpoint goa.Endpoint
CredentialsEndpoint goa.Endpoint
ListEndpoint goa.Endpoint
GetEndpoint goa.Endpoint
CreateEndpoint goa.Endpoint
DeleteEndpoint goa.Endpoint
StartEndpoint goa.Endpoint
StopEndpoint goa.Endpoint
ResetEndpoint goa.Endpoint
CloneEndpoint goa.Endpoint
}
Client is the "workspaces" service client.
func NewClient ¶
func NewClient(gpuProfiles, setGpuProfile, credentials, list, get, create, delete_, start, stop, reset, clone goa.Endpoint) *Client
NewClient initializes a "workspaces" service client given the endpoints.
func (*Client) Clone ¶ added in v0.5.0
Clone calls the "clone" endpoint of the "workspaces" service. Clone may return the following errors:
- "not_found" (type NotFound)
- "already_exists" (type AlreadyExists)
- "invalid" (type Invalid)
- error: internal error
func (*Client) Create ¶
Create calls the "create" endpoint of the "workspaces" service. Create may return the following errors:
- "already_exists" (type AlreadyExists)
- "invalid" (type Invalid)
- error: internal error
func (*Client) Credentials ¶ added in v0.7.0
func (c *Client) Credentials(ctx context.Context, p *CredentialsPayload) (res *WorkspaceInitialCredentials, err error)
Credentials calls the "credentials" endpoint of the "workspaces" service. Credentials may return the following errors:
- "forbidden" (type Forbidden)
- "not_found" (type NotFound)
- "unavailable" (type Unavailable)
- error: internal error
func (*Client) Delete ¶
func (c *Client) Delete(ctx context.Context, p *DeletePayload) (err error)
Delete calls the "delete" endpoint of the "workspaces" service. Delete may return the following errors:
- "not_found" (type NotFound)
- error: internal error
func (*Client) Get ¶
Get calls the "get" endpoint of the "workspaces" service. Get may return the following errors:
- "not_found" (type NotFound)
- error: internal error
func (*Client) GpuProfiles ¶ added in v0.11.0
func (c *Client) GpuProfiles(ctx context.Context) (res []*VMGPUProfile, err error)
GpuProfiles calls the "gpu_profiles" endpoint of the "workspaces" service. GpuProfiles may return the following errors:
- "unavailable" (type Unavailable)
- error: internal error
func (*Client) Reset ¶ added in v0.4.0
Reset calls the "reset" endpoint of the "workspaces" service. Reset may return the following errors:
- "not_found" (type NotFound)
- "invalid" (type Invalid)
- error: internal error
func (*Client) SetGpuProfile ¶ added in v0.11.0
func (c *Client) SetGpuProfile(ctx context.Context, p *SetGpuProfilePayload) (res *Workspace, err error)
SetGpuProfile calls the "set_gpu_profile" endpoint of the "workspaces" service. SetGpuProfile may return the following errors:
- "forbidden" (type Forbidden)
- "not_found" (type NotFound)
- "invalid" (type Invalid)
- "conflict" (type Conflict)
- "unavailable" (type Unavailable)
- error: internal error
type ClonePayload ¶ added in v0.5.0
type ClonePayload struct {
// Namespace
Namespace string
// Source workspace name
Name string
// Name for the cloned workspace
NewName string
// Override the container image on the clone
Image *string
// Override the container port on the clone
Port *int
// Override the CPU request on the clone
CPURequest *string
// Override the memory request on the clone
MemoryRequest *string
// Override the CPU limit on the clone
CPULimit *string
// Override the memory limit on the clone
MemoryLimit *string
}
ClonePayload is the payload type of the workspaces service clone method.
type Conflict ¶ added in v0.11.0
type Conflict string
func (Conflict) ErrorName
deprecated
added in
v0.11.0
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (Conflict) GoaErrorName ¶ added in v0.11.0
GoaErrorName returns the error name.
type ContainerState ¶
type ContainerState struct {
// Current state: running, waiting, terminated
State *string
// Reason for the state
Reason *string
// Details about the state
Message *string
// Time the container started
StartedAt *string
}
State of the workspace container
type CreateWorkspacePayload ¶
type CreateWorkspacePayload struct {
// Workspace name
Name string
// Target namespace
Namespace string
// Workspace type: 'container' (default, runs as a StatefulSet), 'vm' (KubeVirt
// VirtualMachine booting a containerDisk image), or 'scratch' (plain
// Deployment)
Type string
// Main container spec
Container *WorkspaceContainer
// Windows private root import settings
VMOptions *VMOptions
// Volumes to mount
VolumeMounts []*VolumeMount
// Custom environment variables to inject into the workspace container
Env []*EnvVar
// Pod tolerations for scheduling
Tolerations []*Toleration
// Node selector labels for scheduling
NodeSelector map[string]string
// frameworks)
SharedMemory bool
// Image pull policy for the workspace container (Always, IfNotPresent, Never).
// Overrides the image's default. When unset, the image's
// defaultImagePullPolicy applies; if that is also unset the field is omitted
// so Kubernetes applies its own default (Always for :latest or untagged
// references, IfNotPresent otherwise)
ImagePullPolicy *string
}
CreateWorkspacePayload is the payload type of the workspaces service create method.
type CredentialsPayload ¶ added in v0.7.0
CredentialsPayload is the payload type of the workspaces service credentials method.
type DeletePayload ¶
DeletePayload is the payload type of the workspaces service delete method.
type Endpoints ¶
type Endpoints struct {
GpuProfiles goa.Endpoint
SetGpuProfile goa.Endpoint
Credentials goa.Endpoint
List goa.Endpoint
Get goa.Endpoint
Create goa.Endpoint
Delete goa.Endpoint
Start goa.Endpoint
Stop goa.Endpoint
Reset goa.Endpoint
Clone goa.Endpoint
}
Endpoints wraps the "workspaces" service endpoints.
func NewEndpoints ¶
NewEndpoints wraps the methods of the "workspaces" service with endpoints.
type EnvVar ¶
type EnvVar struct {
// Environment variable name
Name string
// Environment variable value
Value string
}
Custom environment variable for a workspace
type Forbidden ¶ added in v0.7.0
type Forbidden string
func (Forbidden) ErrorName
deprecated
added in
v0.7.0
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (Forbidden) GoaErrorName ¶ added in v0.7.0
GoaErrorName returns the error name.
type GetPayload ¶
GetPayload is the payload type of the workspaces service get method.
type ImageRemoteDesktop ¶ added in v0.5.0
type ImageRemoteDesktop struct {
// Protocol name: "selkies" (Linux in-guest agent) or "agent" (cross-platform
// kw-agent)
Protocol string
// Guest port the agent listens on
Port int
// Path relative to the agent's base URL
Path string
}
In-guest remote desktop agent configuration
type Invalid ¶
type Invalid string
func (Invalid) ErrorName
deprecated
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (Invalid) GoaErrorName ¶
GoaErrorName returns the error name.
type ListPayload ¶
type ListPayload struct {
// Filter by namespace
Namespace string
}
ListPayload is the payload type of the workspaces service list method.
type NotFound ¶
type NotFound string
func (NotFound) ErrorName
deprecated
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (NotFound) GoaErrorName ¶
GoaErrorName returns the error name.
type ResetPayload ¶ added in v0.4.0
ResetPayload is the payload type of the workspaces service reset method.
type Service ¶
type Service interface {
// List validated operator-declared Windows VM GPU profiles; device
// availability is determined by scheduling
GpuProfiles(context.Context) (res []*VMGPUProfile, err error)
// Add, change or remove a Windows GPU profile only while its VM is fully
// stopped; preserves root/EFI/TPM/identity. Empty profile_id restores software
// graphics.
SetGpuProfile(context.Context, *SetGpuProfilePayload) (res *Workspace, err error)
// Retrieve this Windows workspace's unique initial credentials; namespace
// editors/admins only
Credentials(context.Context, *CredentialsPayload) (res *WorkspaceInitialCredentials, err error)
// List all workspaces
List(context.Context, *ListPayload) (res []*Workspace, err error)
// Get a workspace by name
Get(context.Context, *GetPayload) (res *Workspace, err error)
// Create a new workspace
Create(context.Context, *CreateWorkspacePayload) (res *Workspace, err error)
// Delete a workspace
Delete(context.Context, *DeletePayload) (err error)
// Start a stopped workspace
Start(context.Context, *StartPayload) (res *Workspace, err error)
// Stop a running workspace
Stop(context.Context, *StopPayload) (res *Workspace, err error)
// Reset a workspace by re-provisioning it from its image
Reset(context.Context, *ResetPayload) (res *Workspace, err error)
// Clone an existing workspace under a new name, copying its spec and volume
// mounts
Clone(context.Context, *ClonePayload) (res *Workspace, err error)
}
Workspace management service
type SetGpuProfilePayload ¶ added in v0.11.0
SetGpuProfilePayload is the payload type of the workspaces service set_gpu_profile method.
type StartPayload ¶
StartPayload is the payload type of the workspaces service start method.
type StopPayload ¶
StopPayload is the payload type of the workspaces service stop method.
type Toleration ¶
type Toleration struct {
// Toleration key
Key string
// Operator: Exists or Equal
Operator string
// Toleration value
Value *string
// Taint effect: NoSchedule, PreferNoSchedule, or NoExecute
Effect *string
}
Kubernetes pod toleration
type Unavailable ¶ added in v0.7.0
type Unavailable string
func (Unavailable) Error ¶ added in v0.7.0
func (e Unavailable) Error() string
Error returns an error description.
func (Unavailable) ErrorName
deprecated
added in
v0.7.0
func (e Unavailable) ErrorName() string
ErrorName returns the error name.
Deprecated: Use GoaErrorName - https://github.com/goadesign/goa/issues/3105
func (Unavailable) GoaErrorName ¶ added in v0.7.0
func (e Unavailable) GoaErrorName() string
GoaErrorName returns the error name.
type VMGPUProfile ¶ added in v0.11.0
type VMGPUProfile struct {
ID string
DisplayName string
ResourceName string
Kind string
Count int
NodeSelector map[string]string
GuestDriverVersion string
Experimental bool
}
Operator-declared render-only Windows GPU contract; driver version is required configuration, not observed guest readiness
type VMOptions ¶ added in v0.7.0
type VMOptions struct {
// Same-namespace CDI accessKeyId/secretKey Secret
ImportSecretName *string
// Same-namespace registry CA ConfigMap
ImportCertConfigMapName *string
// Persistent root StorageClass; empty uses cluster default
StorageClassName *string
// Persistent Windows root capacity, at least 80Gi
RootDiskSize *string
// Versioned operator-approved VM GPU profile ID; omitted/empty keeps software
// graphics
GpuProfile *string
}
Namespaced Windows root import settings; credentials remain in Kubernetes Secrets
type VolumeMount ¶
type VolumeMount struct {
// Volume/PVC name
Name string
// Mount path in container
MountPath string
// Volume mount type for VMs: 'disk' (virtio disk) or 'cdrom' (optical disc).
// Empty/omitted defaults to 'disk' for VM volume mounts.
Type *string
// Disk bus type for VMs when type is 'cdrom' (e.g. 'sata', 'ide'). Ignored for
// 'disk' type.
Bus *string
// Whether the mount is read-only. Omitted defaults to writable for container
// PVCs and VM data disks, and read-only for VM CD-ROMs.
Readonly *bool
}
Container PVC mount, or reusable CDI VM data disk with an absolute guest mount path
type Workspace ¶
type Workspace struct {
// Workspace name
Name string
// Kubernetes namespace
Namespace string
// Workspace type: container, vm, or scratch
Type string
// Container image
Image string
// Container port
Port *int
// CPU request
CPURequest *string
// Memory request
MemoryRequest *string
// CPU limit
CPULimit *string
// Memory limit
MemoryLimit *string
// Number of ready replicas
ReadyReplicas int
// Container state
ContainerState *ContainerState
// Workspace conditions
Conditions []*WorkspaceCondition
// Whether the workspace is stopped
Stopped bool
// Creation timestamp
CreatedAt *string
// Attached volumes
VolumeMounts []*VolumeMount
// Remote desktop agent configuration (Tier 1)
RemoteDesktop *ImageRemoteDesktop
// Resolved guest profile; windows11-amd64-v1 uses display-only native
// provisioning
VMProfile *string
// Configured elevated command identity hint, not live runner readiness;
// admission verifies policy, ownership and installed runner
ExecutionIdentity *string
// Windows native setup and bootstrap removal have completed
Provisioned *bool
// Resolved GPU contract; absent means software rendering, not guest
// driver/capture/encode status
VMGpuProfile *VMGPUProfile
}
Workspace is the result type of the workspaces service set_gpu_profile method.
func NewWorkspace ¶
func NewWorkspace(vres *workspacesviews.Workspace) *Workspace
NewWorkspace initializes result type Workspace from viewed result type Workspace.
type WorkspaceCondition ¶
type WorkspaceCondition struct {
// Condition type
Type *string
// Condition status
Status *string
// Brief reason
Reason *string
// Detailed message
Message *string
// Last transition time
LastTransitionTime *string
}
Condition of a workspace
type WorkspaceContainer ¶
type WorkspaceContainer struct {
// Container entrypoint override, passed verbatim
Command []string
// Container argument override, passed verbatim
Args []string
// Container name
Name string
// Container image
Image string
// Container port
Port int
// CPU request
CPURequest string
// Memory request
MemoryRequest string
// CPU limit
CPULimit string
// Memory limit
MemoryLimit string
// GPU resource request count (e.g. "1")
GpuRequest *string
// GPU vendor resource name (e.g. nvidia.com/gpu, amd.com/gpu)
GpuVendor string
}
Container specification for a workspace
type WorkspaceInitialCredentials ¶ added in v0.7.0
WorkspaceInitialCredentials is the result type of the workspaces service credentials method.