Skip to content

Commit de4e346

Browse files
sagor999roboquat
authored andcommitted
[installer] improve ws-manager config
1 parent 0fe39e8 commit de4e346

File tree

2 files changed

+47
-12
lines changed

2 files changed

+47
-12
lines changed

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

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
6666
CPU: quantityString(ctx.Config.Workspace.Resources.Limits, corev1.ResourceCPU),
6767
Memory: quantityString(ctx.Config.Workspace.Resources.Limits, corev1.ResourceMemory),
6868
EphemeralStorage: quantityString(ctx.Config.Workspace.Resources.Limits, corev1.ResourceEphemeralStorage),
69+
Storage: quantityString(ctx.Config.Workspace.Resources.Limits, corev1.ResourceStorage),
6970
},
7071
},
7172
Templates: templatesCfg,
@@ -76,6 +77,20 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
7677
},
7778
},
7879
}
80+
81+
installationShortNameSuffix := ""
82+
if ctx.Config.Metadata.InstallationShortname != "" && ctx.Config.Metadata.InstallationShortname != configv1.InstallationShortNameOldDefault {
83+
installationShortNameSuffix = "-" + ctx.Config.Metadata.InstallationShortname
84+
}
85+
86+
var schedulerName string
87+
gitpodHostURL := "https://" + ctx.Config.Domain
88+
workspaceClusterHost := fmt.Sprintf("ws.%s", ctx.Config.Domain)
89+
workspaceURLTemplate := fmt.Sprintf("https://{{ .Prefix }}.ws%s.%s", installationShortNameSuffix, ctx.Config.Domain)
90+
workspacePortURLTemplate := fmt.Sprintf("https://{{ .WorkspacePort }}-{{ .Prefix }}.ws%s.%s", installationShortNameSuffix, ctx.Config.Domain)
91+
92+
rateLimits := map[string]grpc.RateLimit{}
93+
7994
err = ctx.WithExperimental(func(ucfg *experimental.Config) error {
8095
if ucfg.Workspace == nil {
8196
return nil
@@ -102,6 +117,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
102117
CPU: quantityString(c.Resources.Limits, corev1.ResourceCPU),
103118
Memory: quantityString(c.Resources.Limits, corev1.ResourceMemory),
104119
EphemeralStorage: quantityString(c.Resources.Limits, corev1.ResourceEphemeralStorage),
120+
Storage: quantityString(c.Resources.Limits, corev1.ResourceStorage),
105121
},
106122
},
107123
Templates: tplsCfg,
@@ -114,20 +130,31 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
114130
tpls[tmpl_n] = tmpl_v
115131
}
116132
}
133+
schedulerName = ucfg.Workspace.SchedulerName
134+
if ucfg.Workspace.HostURL != "" {
135+
gitpodHostURL = ucfg.Workspace.HostURL
136+
}
137+
if ucfg.Workspace.WorkspaceClusterHost != "" {
138+
workspaceClusterHost = ucfg.Workspace.WorkspaceClusterHost
139+
}
140+
if ucfg.Workspace.WorkspaceURLTemplate != "" {
141+
workspaceURLTemplate = ucfg.Workspace.WorkspaceURLTemplate
142+
}
143+
if ucfg.Workspace.WorkspacePortURLTemplate != "" {
144+
workspacePortURLTemplate = ucfg.Workspace.WorkspacePortURLTemplate
145+
}
146+
rateLimits = ucfg.Workspace.WSManagerRateLimits
147+
117148
return nil
118149
})
119150
if err != nil {
120151
return nil, err
121152
}
122153

123-
installationShortNameSuffix := ""
124-
if ctx.Config.Metadata.InstallationShortname != "" && ctx.Config.Metadata.InstallationShortname != configv1.InstallationShortNameOldDefault {
125-
installationShortNameSuffix = "-" + ctx.Config.Metadata.InstallationShortname
126-
}
127-
128154
wsmcfg := config.ServiceConfiguration{
129155
Manager: config.Configuration{
130156
Namespace: ctx.Namespace,
157+
SchedulerName: schedulerName,
131158
SeccompProfile: fmt.Sprintf("localhost/workspace_default_%s.json", ctx.VersionManifest.Version),
132159
DryRun: false,
133160
WorkspaceDaemon: config.WorkspaceDaemonConfiguration{
@@ -144,13 +171,13 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
144171
},
145172
WorkspaceClasses: classes,
146173
HeartbeatInterval: util.Duration(30 * time.Second),
147-
GitpodHostURL: "https://" + ctx.Config.Domain,
148-
WorkspaceClusterHost: fmt.Sprintf("ws.%s", ctx.Config.Domain),
174+
GitpodHostURL: gitpodHostURL,
175+
WorkspaceClusterHost: workspaceClusterHost,
149176
InitProbe: config.InitProbeConfiguration{
150177
Timeout: (1 * time.Second).String(),
151178
},
152-
WorkspaceURLTemplate: fmt.Sprintf("https://{{ .Prefix }}.ws%s.%s", installationShortNameSuffix, ctx.Config.Domain),
153-
WorkspacePortURLTemplate: fmt.Sprintf("https://{{ .WorkspacePort }}-{{ .Prefix }}.ws%s.%s", installationShortNameSuffix, ctx.Config.Domain),
179+
WorkspaceURLTemplate: workspaceURLTemplate,
180+
WorkspacePortURLTemplate: workspacePortURLTemplate,
154181
WorkspaceHostPath: wsdaemon.HostWorkingArea,
155182
Timeouts: config.WorkspaceTimeoutConfiguration{
156183
AfterClose: timeoutAfterClose,
@@ -190,7 +217,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
190217
Certificate: "/certs/tls.crt",
191218
PrivateKey: "/certs/tls.key",
192219
},
193-
RateLimits: map[string]grpc.RateLimit{}, // todo(sje) add values
220+
RateLimits: rateLimits,
194221
},
195222
ImageBuilderProxy: struct {
196223
TargetAddr string "json:\"targetAddr\""

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package experimental
1212

1313
import (
1414
agentSmith "github.com/gitpod-io/gitpod/agent-smith/pkg/config"
15+
"github.com/gitpod-io/gitpod/common-go/grpc"
1516
corev1 "k8s.io/api/core/v1"
1617
"k8s.io/apimachinery/pkg/api/resource"
1718
)
@@ -48,8 +49,13 @@ type NodeToContainerMappingValues struct {
4849
}
4950

5051
type WorkspaceConfig struct {
51-
Tracing *Tracing `json:"tracing,omitempty"`
52-
Stage string `json:"stage"`
52+
Tracing *Tracing `json:"tracing,omitempty"`
53+
Stage string `json:"stage,omitempty"`
54+
SchedulerName string `json:"schedulerName,omitempty"`
55+
HostURL string `json:"hostURL,omitempty"`
56+
WorkspaceClusterHost string `json:"workspaceClusterHost,omitempty"`
57+
WorkspaceURLTemplate string `json:"workspaceURLTemplate,omitempty"`
58+
WorkspacePortURLTemplate string `json:"workspacePortURLTemplate,omitempty"`
5359

5460
CPULimits struct {
5561
Enabled bool `json:"enabled"`
@@ -64,6 +70,8 @@ type WorkspaceConfig struct {
6470
ReadIOPS int64 `json:"readIOPS"`
6571
} `json:"ioLimits"`
6672

73+
WSManagerRateLimits map[string]grpc.RateLimit `json:"wsManagerRateLimits,omitempty"`
74+
6775
RegistryFacade struct {
6876
IPFSCache struct {
6977
Enabled bool `json:"enabled"`

0 commit comments

Comments
 (0)