Skip to content

Commit 3d67620

Browse files
committed
feat(supervisor): expose org placement overrides in helm and docs
1 parent dfb1e42 commit 3d67620

4 files changed

Lines changed: 12 additions & 0 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
area: supervisor
3+
type: feature
4+
---
5+
6+
Self-hosted Kubernetes deployments can now pin an organization's runs to specific nodes, with per-organization node selectors and tolerations for run pods.

docs/self-hosting/env/supervisor.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ mode: "wide"
4848
| `KUBERNETES_NAMESPACE` | No | default | The namespace that runs should be in. |
4949
| `KUBERNETES_WORKER_NODETYPE_LABEL` | No | v4-worker | Nodes for runs need `nodetype=<this>`. Empty: any node. |
5050
| `KUBERNETES_RUNNER_TOLERATIONS` | No || Run pod tolerations. CSV: `key=value:effect`/`key:effect`. |
51+
| `KUBERNETES_ORG_PLACEMENT_OVERRIDES` | No || Per-org node selector and tolerations. JSON keyed by org ID.|
5152
| `KUBERNETES_IMAGE_PULL_SECRETS` | No || Image pull secrets (CSV). |
5253
| `KUBERNETES_EPHEMERAL_STORAGE_SIZE_LIMIT` | No | 10Gi | Ephemeral storage size limit. Applies to all runs. |
5354
| `KUBERNETES_EPHEMERAL_STORAGE_SIZE_REQUEST` | No | 2Gi | Ephemeral storage size request. Applies to all runs. |

hosting/k8s/helm/templates/supervisor.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,10 @@ spec:
174174
- name: KUBERNETES_RUNNER_TOLERATIONS
175175
value: {{ join "," . | quote }}
176176
{{- end }}
177+
{{- with .Values.supervisor.config.kubernetes.orgPlacementOverrides }}
178+
- name: KUBERNETES_ORG_PLACEMENT_OVERRIDES
179+
value: {{ toJson . | quote }}
180+
{{- end }}
177181
{{- $registryAuthEnabled := false }}
178182
{{- if .Values.registry.deploy }}
179183
{{- $registryAuthEnabled = .Values.registry.auth.enabled }}

hosting/k8s/helm/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ supervisor:
297297
namespace: "" # Default: uses release namespace
298298
workerNodetypeLabel: "" # When set, runs will only be scheduled on nodes with "nodetype=<label>"
299299
runnerTolerations: [] # Run pod tolerations, e.g. ["dedicated=runs:NoSchedule"]
300+
orgPlacementOverrides: {} # Per-org run pod placement, e.g. {"<orgId>": {"nodeSelector": {"pool": "dedicated"}, "tolerations": "dedicated=runs:NoSchedule"}}
300301
ephemeralStorageSizeLimit: "" # Default: 10Gi
301302
ephemeralStorageSizeRequest: "" # Default: 2Gi´
302303
podCleaner:

0 commit comments

Comments
 (0)