Skip to content

Commit 4b58c88

Browse files
committed
[ws-manager] use workspace class description
1 parent 56b3dd5 commit 4b58c88

File tree

4 files changed

+24
-12
lines changed

4 files changed

+24
-12
lines changed

components/ws-manager-api/go/config/config.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,10 @@ type Configuration struct {
140140
}
141141

142142
type WorkspaceClass struct {
143-
Name string `json:"name"`
144-
Container ContainerConfiguration `json:"container"`
145-
Templates WorkspacePodTemplateConfiguration `json:"templates"`
143+
Name string `json:"name"`
144+
Description string `json:"description"`
145+
Container ContainerConfiguration `json:"container"`
146+
Templates WorkspacePodTemplateConfiguration `json:"templates"`
146147

147148
// CreditsPerMinute is the cost per minute for this workspace class in credits
148149
CreditsPerMinute float32 `json:"creditsPerMinute"`

components/ws-manager-mk2/service/manager.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -765,12 +765,21 @@ func (wsm *WorkspaceManagerServer) DescribeCluster(ctx context.Context, req *wsm
765765
classes := make([]*wsmanapi.WorkspaceClass, 0, len(wsm.Config.WorkspaceClasses))
766766
for id, class := range wsm.Config.WorkspaceClasses {
767767
var cpu, ram, disk resource.Quantity
768-
if class.Container.Limits != nil {
769-
cpu, _ = resource.ParseQuantity(class.Container.Limits.CPU.BurstLimit)
770-
ram, _ = resource.ParseQuantity(class.Container.Limits.Memory)
771-
disk, _ = resource.ParseQuantity(class.Container.Limits.Storage)
768+
desc := class.Description
769+
if desc == "" {
770+
if class.Container.Limits != nil {
771+
cpu, _ = resource.ParseQuantity(class.Container.Limits.CPU.BurstLimit)
772+
ram, _ = resource.ParseQuantity(class.Container.Limits.Memory)
773+
disk, _ = resource.ParseQuantity(class.Container.Limits.Storage)
774+
}
775+
if cpu.Value() == 0 && class.Container.Requests != nil {
776+
cpu, _ = resource.ParseQuantity(class.Container.Requests.CPU)
777+
}
778+
if ram.Value() == 0 && class.Container.Requests != nil {
779+
ram, _ = resource.ParseQuantity(class.Container.Requests.Memory)
780+
}
781+
desc = fmt.Sprintf("%d vCPU, %dGB memory, %dGB disk", cpu.Value(), ram.ScaledValue(resource.Giga), disk.ScaledValue(resource.Giga))
772782
}
773-
desc := fmt.Sprintf("%d vCPU, %dGB memory, %dGB disk", cpu.Value(), ram.ScaledValue(resource.Giga), disk.ScaledValue(resource.Giga))
774783
classes = append(classes, &wsmanapi.WorkspaceClass{
775784
Id: id,
776785
DisplayName: class.Name,

install/installer/pkg/components/ws-manager-mk2/configmap.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
101101
return err
102102
}
103103
classes[k] = &config.WorkspaceClass{
104-
Name: c.Name,
104+
Name: c.Name,
105+
Description: c.Description,
105106
Container: config.ContainerConfiguration{
106107
Requests: &config.ResourceRequestConfiguration{
107108
CPU: quantityString(c.Resources.Requests, corev1.ResourceCPU),

install/installer/pkg/config/v1/experimental/experimental.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,10 @@ type WorkspaceConfig struct {
127127
}
128128

129129
type WorkspaceClass struct {
130-
Name string `json:"name" validate:"required"`
131-
Resources WorkspaceResources `json:"resources" validate:"required"`
132-
Templates WorkspaceTemplates `json:"templates,omitempty"`
130+
Name string `json:"name" validate:"required"`
131+
Description string `json:"description"`
132+
Resources WorkspaceResources `json:"resources" validate:"required"`
133+
Templates WorkspaceTemplates `json:"templates,omitempty"`
133134
}
134135

135136
type WorkspaceResources struct {

0 commit comments

Comments
 (0)