Skip to content

Commit 5ae12a9

Browse files
authored
Merge pull request #13 from amitai-devops/main
🎨 improve helm values, add configurable options
2 parents 14d7115 + b9dae7e commit 5ae12a9

File tree

8 files changed

+233
-51
lines changed

8 files changed

+233
-51
lines changed

.github/workflows/helm_test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- main
7+
pull_request:
78
# Allows you to run this workflow manually from the Actions tab
89
workflow_dispatch:
910

README.md

Lines changed: 66 additions & 42 deletions
Large diffs are not rendered by default.

charts/windmill/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 1.1.2
18+
version: 1.1.3
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to
2222
# follow Semantic Versioning. They should reflect the version the application is using.
2323
# It is recommended to use it with quotes.
24-
appVersion: 1.87.0
24+
appVersion: 1.87.1

charts/windmill/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# windmill
2+
3+
![Version: 1.1.3](https://img.shields.io/badge/Version-1.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.87.1](https://img.shields.io/badge/AppVersion-1.87.1-informational?style=flat-square)
4+
5+
A Helm chart for Kubernetes
6+
7+
## Values
8+
9+
| Key | Type | Default | Description |
10+
|-----|------|---------|-------------|
11+
| enterprise.enabled | bool | `false` | enable Windmill Enterprise , requires license key. |
12+
| enterprise.licenseKey | string | `"123456F"` | Windmill provided Enterprise license key. Sets LICENSE_KEY environment variable in frontend and worker container. |
13+
| enterprise.s3CacheBucket | string | `"mybucketname"` | S3 bucket to use for dependency cache. Sets S3_CACHE_BUCKET environment variable in worker container |
14+
| lsp | string | `"latest"` | |
15+
| postgres.dbName | string | `"windmill"` | database name for postgres demo container |
16+
| postgres.enabled | bool | `true` | enabled included Postgres container for demo purposes only |
17+
| postgres.password | string | `"changeme"` | password for postgres demo container |
18+
| windmill.baseInternalUrl | string | `"http://windmill-app:8000"` | used internally by the app, should match the service for the frontend deployment, sets BASE_INTERNAL_URL environment variable in frontend and worker container |
19+
| windmill.baseUrl | string | `"http://localhost"` | domain as shown in browser, change to https etc based on your endpoint/ingress configuration, sets BASE_URL environment variable in frontend and worker container |
20+
| windmill.databaseUrl | string | `"postgres://postgres:changeme@postgres/windmill?sslmode=disable"` | Postgres URI, pods will crashloop if database is unreachable, sets DATABASE_URL environment variable in frontend and worker container |
21+
| windmill.denoPath | string | `"/usr/bin/deno"` | deno binary built into Windmill image, should not be changed. Sets DENO_PATH environment variable in frontend and worker container |
22+
| windmill.disableNsjail | bool | `true` | enables/disables nsjail which provide isolation in untrusted environment is disabled by default. Sets DISABLE_NJSAIL environment variable in worker container |
23+
| windmill.disableNuser | bool | `true` | nsjail user . Sets DISABLE_NUSER environment variable in worker container |
24+
| windmill.frontend | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | frontend configuration |
25+
| windmill.frontend.affinity | object | `{}` | Affinity rules to apply to the pods |
26+
| windmill.frontend.annotations | object | `{}` | Annotations to apply to the pods |
27+
| windmill.frontend.nodeSelector | object | `{}` | Node selector to use for scheduling the pods |
28+
| windmill.frontend.resources | object | `{}` | Resource limits and requests for the pods |
29+
| windmill.frontend.tolerations | list | `[]` | Tolerations to apply to the pods |
30+
| windmill.frontendReplicas | int | `2` | replica for the application frontend |
31+
| windmill.image | string | `"main"` | |
32+
| windmill.lsp | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | lsp configuration |
33+
| windmill.lsp.affinity | object | `{}` | Affinity rules to apply to the pods |
34+
| windmill.lsp.annotations | object | `{}` | Annotations to apply to the pods |
35+
| windmill.lsp.nodeSelector | object | `{}` | Node selector to use for scheduling the pods |
36+
| windmill.lsp.resources | object | `{}` | Resource limits and requests for the pods |
37+
| windmill.lsp.tolerations | list | `[]` | Tolerations to apply to the pods |
38+
| windmill.lspReplicas | int | `2` | replicas for the lsp containers used by the frontend |
39+
| windmill.nsjailPath | string | `"nsjail"` | nsjail binary. Sets NSJAIL_PATH environment variable in worker container |
40+
| windmill.numWorkers | int | `1` | workers per worker container, default and recommended is 1 to isolate one process per container, sets NUM_WORKER environment variable for worker container. Frontend container has 0 NUM_WORKERS by default |
41+
| windmill.oauthConfig | string | `"{}\n"` | Oauth configuration for logins and connections. e.g of values "github": { "id": "asdfasdf", "secret": "asdfasdfasdf" } |
42+
| windmill.pythonPath | string | `"/usr/local/bin/python3"` | python binary built into Windmill image, should not be changed. Sets PYTHON_PATH environment variable in frontend and worker container |
43+
| windmill.rustBacktrace | int | `1` | rust back trace information enabled, sets RUST_BACKTRACE environment variable in frontend and worker container |
44+
| windmill.rustLog | string | `"info"` | rust log level, set to debug for more information etc, sets RUST_LOG environment variable in frontend and worker container |
45+
| windmill.workerReplicas | int | `4` | replicas for the workers, jobs are executed on the workers |
46+
| windmill.workers | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | workers configuration |
47+
48+
----------------------------------------------
49+
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

charts/windmill/templates/deploy_lsp.yaml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@ apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: lsp
5+
labels:
6+
app: lsp
7+
chart: {{ template "windmill.chart" . }}
8+
release: {{ .Release.Name }}
9+
heritage: {{ .Release.Service }}
510
spec:
6-
replicas: 2
11+
replicas: {{ .Values.windmill.lspReplicas }}
712
strategy:
813
type: RollingUpdate
914
rollingUpdate:
@@ -24,6 +29,20 @@ spec:
2429
imagePullPolicy: Always
2530
ports:
2631
- containerPort: 3001
32+
resources:
33+
{{ toYaml .Values.windmill.lsp.resources | indent 12 }}
34+
{{- with .Values.windmill.lsp.nodeSelector }}
35+
nodeSelector:
36+
{{ toYaml . | indent 8 }}
37+
{{- end }}
38+
{{- with .Values.windmill.lsp.affinity }}
39+
affinity:
40+
{{ toYaml . | indent 8 }}
41+
{{- end }}
42+
{{- with .Values.windmill.lsp.tolerations }}
43+
tolerations:
44+
{{ toYaml . | indent 8 }}
45+
{{- end }}
2746
securityContext:
2847
runAsUser: 0
2948
# ---

charts/windmill/templates/deploy_windmill.yaml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: windmill
5-
5+
labels:
6+
app: windmill
7+
chart: {{ template "windmill.chart" . }}
8+
release: {{ .Release.Name }}
9+
heritage: {{ .Release.Service }}
610
spec:
711
replicas: {{ .Values.windmill.frontendReplicas }}
812
strategy:
@@ -14,13 +18,14 @@ spec:
1418
matchLabels:
1519
app: windmill-app
1620
template:
17-
1821
metadata:
19-
annotations:
20-
timestamp: {{ now | quote }}
21-
labels:
22+
labels:
2223
app: windmill-app
23-
container: windmill-app
24+
release: {{ .Release.Name }}
25+
{{- with .Values.server.annotations }}
26+
annotations:
27+
{{ toYaml . | indent 8 }}
28+
{{- end }}
2429
spec:
2530
terminationGracePeriodSeconds: 40
2631
containers:
@@ -79,6 +84,20 @@ spec:
7984
value: "{{ .Values.windmill.pythonPath }}"
8085
- name: "NSJAIL_PATH"
8186
value: "{{ .Values.windmill.nsjailPath }}"
87+
resources:
88+
{{ toYaml .Values.windmill.frontend.resources | indent 12 }}
89+
{{- with .Values.windmill.frontend.nodeSelector }}
90+
nodeSelector:
91+
{{ toYaml . | indent 8 }}
92+
{{- end }}
93+
{{- with .Values.windmill.frontend.affinity }}
94+
affinity:
95+
{{ toYaml . | indent 8 }}
96+
{{- end }}
97+
{{- with .Values.windmill.frontend.tolerations }}
98+
tolerations:
99+
{{ toYaml . | indent 8 }}
100+
{{- end }}
82101
volumes:
83102
- name: config-volume
84103
configMap:

charts/windmill/templates/deploy_windmill_workers.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: windmill-workers
5+
labels:
6+
app: windmill-workers
7+
chart: {{ template "windmill.chart" . }}
8+
release: {{ .Release.Name }}
9+
heritage: {{ .Release.Service }}
510
spec:
611
replicas: {{ .Values.windmill.workerReplicas }}
712
strategy:
@@ -71,6 +76,20 @@ spec:
7176
- name: "RCLONE_S3_PROVIDER"
7277
value: "AWS"
7378
{{ end }}
79+
resources:
80+
{{ toYaml .Values.windmill.workers.resources | indent 12 }}
81+
{{- with .Values.windmill.workers.nodeSelector }}
82+
nodeSelector:
83+
{{ toYaml . | indent 8 }}
84+
{{- end }}
85+
{{- with .Values.windmill.workers.affinity }}
86+
affinity:
87+
{{ toYaml . | indent 8 }}
88+
{{- end }}
89+
{{- with .Values.windmill.workers.tolerations }}
90+
tolerations:
91+
{{ toYaml . | indent 8 }}
92+
{{- end }}
7493
securityContext:
7594
runAsUser: 0
7695
---

charts/windmill/values.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,57 @@ windmill:
4343
# }
4444
oauthConfig: |
4545
{}
46+
# -- workers configuration
47+
workers:
48+
# Annotations to apply to the pods
49+
annotations: {}
50+
51+
# Node selector to use for scheduling the pods
52+
nodeSelector: {}
53+
54+
# Tolerations to apply to the pods
55+
tolerations: []
56+
57+
# Affinity rules to apply to the pods
58+
affinity: {}
59+
60+
# Resource limits and requests for the pods
61+
resources: {}
62+
63+
# -- frontend configuration
64+
frontend:
65+
# -- Annotations to apply to the pods
66+
annotations: {}
67+
68+
# -- Node selector to use for scheduling the pods
69+
nodeSelector: {}
70+
71+
# -- Tolerations to apply to the pods
72+
tolerations: []
73+
74+
# -- Affinity rules to apply to the pods
75+
affinity: {}
76+
77+
# -- Resource limits and requests for the pods
78+
resources: {}
79+
80+
81+
# -- lsp configuration
82+
lsp:
83+
# -- Annotations to apply to the pods
84+
annotations: {}
85+
86+
# -- Node selector to use for scheduling the pods
87+
nodeSelector: {}
88+
89+
# -- Tolerations to apply to the pods
90+
tolerations: []
91+
92+
# -- Affinity rules to apply to the pods
93+
affinity: {}
94+
95+
# -- Resource limits and requests for the pods
96+
resources: {}
4697

4798
lsp: "latest"
4899

0 commit comments

Comments
 (0)