Workspaces
Chart values: plans, baseImages, defaultBaseImage, workspaces, wake, containers.
charts/harthelm/values.yaml at v1.5.0plans
Plans: limits are the plan, requests are limits times workspaces.sizing. memoryMiB and storageGiB take a number (MiB and GiB) or a size string like the console and hart do: 2Gi, 2GiB, 2048Mi, 2048MiB. storageGiB must be whole GiB; decimal units (2GB) are refused.
| Value | Type | Default | Description |
|---|---|---|---|
plans | list of object | below |
baseImages
Workspace base images: [{id, name, description, image, default}], image a full reference (digest advised). Empty: the chart's own harthelm-ide image is the only one (the registry follows global.imageRegistry).
| Value | Type | Default | Description |
|---|---|---|---|
baseImages | list of object | [] |
defaultBaseImage
Used when baseImages is empty.
| Value | Type | Default | Description |
|---|---|---|---|
defaultBaseImage.registry | string | "" | |
defaultBaseImage.repository | string | "harthelm/harthelm-ide" | |
defaultBaseImage.tag | string | "" | defaults to the chart's appVersion |
defaultBaseImage.digest | string | "" |
workspaces
| Value | Type | Default | Description |
|---|---|---|---|
workspaces.sizing | object | Requests are limits times these factors (IDEs and landscape services; a managed service requests its whole plan and counts in full against the team quota). | |
workspaces.sizing.cpuRequestFactor | number | 0.2 | |
workspaces.sizing.memoryRequestFactor | number | 0.5 | |
workspaces.ide.extensionsGallery | string | "" | an Open VSX mirror for air-gapped installs |
workspaces.ide.reconnectionGraceSeconds | integer | 300 | |
workspaces.ide.keyboardLayout | string | "autodetect" | The editor's keyboard layout where the browser does not report one in the IDE iframe (Safari, Firefox): de, es, fr, ru or us. autodetect, or another id, leaves VS Code's own guess (U.S.). |
workspaces.prepull | object | A small pod on every node workspaces may use (scheduling.workspaces) pulls the IDE (defaultBaseImage), service and agent images and keeps them there, so the first wake after an upgrade does not wait for a cold pull (1.2.1). Each node pulls right after the upgrade, or when it comes back on. 1m CPU and 8 MiB requested per node. | |
workspaces.prepull.enabled | boolean | true | |
workspaces.serviceImage | object | The image of steps services that name no image of their own: harthelm-base or an image built FROM it. An empty repository runs them on the workspace's base image instead. | |
workspaces.serviceImage.registry | string | "" | |
workspaces.serviceImage.repository | string | "harthelm/harthelm-base" | |
workspaces.serviceImage.tag | string | "" | defaults to the chart's appVersion |
workspaces.serviceImage.digest | string | "" | |
workspaces.toolEnv | object | {} | Set in every workspace pod: mirrors and proxies for the tools, e.g. for air-gapped installs. Allowed: NIX_CONFIG, NPM_CONFIG_, PIP_, GOPROXY, GOSUMDB, GOFLAGS, GONOSUMDB, GOPRIVATE, MISE_* (not MISE_DATA_DIR), HTTP(S)_PROXY, NO_PROXY. A service's own env var of the same name wins. With a proxy set, core appends its in-cluster hosts (internal port, API, git proxy) and .svc to NO_PROXY. |
workspaces.upgradePolicy | keep, restart | "keep" | What an upgrade does to running workspaces. keep: they keep their pods (images, agent, tool settings) until they sleep or stop and get the new ones on the next start; what users change (plan, env, Sync) still applies at once. restart: every running workspace restarts with the new pod spec. |
workspaces.idleTimeoutMinutes | integer | 60 | How long an on-demand IDE or service must be idle before core puts it to sleep (replicas 0, volume and settings stay; the next request wakes it). A workspace or service can set its own. 1 to 1440. |
wake
Waking sleeping workspaces.
| Value | Type | Default | Description |
|---|---|---|---|
wake.maxPerMinute | integer | 30 | The kill switch: at most this many wakes start per minute in the whole installation; 0 pauses waking (every request to a sleeping workspace answers 503 "paused"). Keeps a wake storm from overloading the cluster. |
wake.capacityGuard | boolean | true | Check before a wake that the pods fit on a node and answer "no capacity" instead of leaving them Pending. |
containers
Container services: core resolves their images to a digest at Plan and Sync, with the credentials of the team's registries (/teams/{team}/registries), and the pods run the image by digest. Core needs egress to the registries (networkPolicy.egress.registries).
| Value | Type | Default | Description |
|---|---|---|---|
containers.allowedRegistries | list of string | [] | Image address prefixes (host[:port][/path], whole path segments) container services may use; empty: any. |
containers.insecureRegistries | list of string | [] | Registries (host[:port]) core reaches over plain HTTP. The nodes' container runtime must allow them too; the chart does not configure it. |
containers.resolveTimeoutSeconds | integer | 20 | Upper bound of one image resolution, 1 to 300. |
containers.platform | string | "" | The platform an image index resolves to, linux/<arch>[/<variant>]; empty: the platform core runs on, which suits clusters whose nodes share one architecture. |
Long defaults
plans
- id: ide-s
kind: workspace
name: IDE S
cpuMillis: 500
memoryMiB: 1536
storageGiB: 10
- id: ide-m
kind: workspace
name: IDE M
cpuMillis: 1000
memoryMiB: 2048
storageGiB: 20
- id: nano
kind: service
name: Nano
cpuMillis: 100
memoryMiB: 128
maxReplicas: 3
- id: small
kind: service
name: Small
cpuMillis: 250
memoryMiB: 512
maxReplicas: 3
- id: medium
kind: service
name: Medium
cpuMillis: 1000
memoryMiB: 1024
maxReplicas: 3