Skip to content

Commit 2ca1dc3

Browse files
committed
🎨 fix docs
modified: README.md; new file: charts/windmill/README.md
1 parent 5ceb6ea commit 2ca1dc3

File tree

2 files changed

+85
-22
lines changed

2 files changed

+85
-22
lines changed

README.md

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,35 @@
66
- [Kubernetes hosting tips](#kubernetes-hosting-tips)
77
- [Enterprise features](#enterprise-features)
88
- [Values](#values)
9-
- [| windmill.workers | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | workers configuration |](#-windmillworkers--object--affinityannotationsnodeselectorresourcestolerations--workers-configuration-)
109

1110
# Windmill Helm Chart
1211

1312
Example chart for deploying Windmill and testing it on Kubernetes or Minikube.
1413

15-
1614
Caveats:
1715

18-
* Postgres is included for demo purposes, it is a stateful set with a small 10GB volume claim applied. If you want to host postgres in k8s, there are better ways, or offload it outside your k8s cluster. Postgres can be disabled entirely in the values.yaml file.
19-
* The postgres user/pass is currently not a secret/encrypted
16+
- Postgres is included for demo purposes, it is a stateful set with a small 10GB volume claim applied. If you want to host postgres in k8s, there are better ways, or offload it outside your k8s cluster. Postgres can be disabled entirely in the values.yaml file.
17+
- The postgres user/pass is currently not a secret/encrypted
2018

2119
## Deploying demo on minikube
2220

2321
Tested with minikube on WSL2 in Windows 10.
2422

2523
### Deploy via Helm repo (preferred)
2624

27-
* Have Helm 3 installed, this chart was created with v3.94 - https://helm.sh/docs/intro/install/ . Depending on your K8s version you may need Helm 3.8 or below.
25+
- Have Helm 3 installed, this chart was created with v3.94 - <https://helm.sh/docs/intro/install/> . Depending on your K8s version you may need Helm 3.8 or below.
26+
2827
```
2928
minikube start
3029
helm repo add windmill https://windmill-labs.github.io/windmill-helm-charts/
3130
helm install mywindmill windmill/windmill -n windmill --create-namespace
3231
```
3332

3433
Wait for pods to come up running, takes a couple minutes to pull images and launch:
34+
3535
```
3636
watch kubectl get pods -n windmill
37-
```
37+
```
3838

3939
After pods launch, run:
4040

@@ -45,6 +45,7 @@ minikube service windmill-app -n=windmill
4545
Windmill should be available at the URL from the console output. Default credentials: admin@windmill.dev / changeme
4646

4747
To destroy:
48+
4849
```
4950
helm delete windmill
5051
```
@@ -85,31 +86,36 @@ enterprise:
8586
```
8687

8788
Apply it:
89+
8890
```
8991
helm upgrade -i mywindmill windmill/windmill -n windmill --create-namespace -f values.yml
9092
```
9193

92-
9394
### Direct from cloned repo
9495

95-
You can install from a copy of this repository directly. Helpful if you plan to fork it/copy it for updating in your own environment.
96+
You can install from a copy of this repository directly. Helpful if you plan to fork it/copy it for updating in your own environment.
97+
98+
- Clone repo locally, navigate to the charts directory
99+
- Copy the values.yaml file somewhere else and update defaults if desired
100+
- Have Helm 3 installed, this chart was created with v3.94 - <https://helm.sh/docs/intro/install/> . Depending on your K8s version you may need Helm 3.8 or below.
96101

97-
* Clone repo locally, navigate to the charts directory
98-
* Copy the values.yaml file somewhere else and update defaults if desired
99-
* Have Helm 3 installed, this chart was created with v3.94 - https://helm.sh/docs/intro/install/ . Depending on your K8s version you may need Helm 3.8 or below.
100102
```
101103
minikube start
102104
helm install windmill windmill/ -f myvalues_file.yaml -n windmill --create-namespace
103105
```
106+
104107
Wait for pods to come up running, takes a couple minutes to pull images and launch:
108+
105109
```
106110
watch kubectl get pods -n windmill
107-
```
108-
After pods launch:
111+
```
112+
113+
After pods launch:
109114
```minikube service windmill-app```
110115
Windmill should be available at the URL from the console output. Default credentials: admin@windmill.dev / changeme
111116

112117
To destroy:
118+
113119
```
114120
helm delete windmill
115121
```
@@ -151,25 +157,23 @@ spec:
151157

152158
Again, there are many ways to expose an app and it will depend on the requirements of your environment. Overall, you want the following endpoints accessible included in the chart:
153159

154-
* windmill frontend on port 8000
155-
* lsp application on port 3001
156-
* metrics endpoints on port 8001 for the frontend/app and workers
160+
- windmill frontend on port 8000
161+
- lsp application on port 3001
162+
- metrics endpoints on port 8001 for the frontend/app and workers
157163

158164
If you are using Prometheus, you can scrape the windmill-app-metrics service on port 8001 at /metrics endpoint to gather stats about the Windmill application.
159165

160-
161166
### Enterprise features
162167

163168
Enterprise users can use S3 storage for dependency caching for performance. Cache is two way synced at regular intervals (10 minutes). To use it, the worker deployment requires access to an S3 bucket. There are several ways to do this:
164169

165-
* On AWS (and EKS) , you can use a service account with IAM roles attached. See [AWS docs](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) - once you have a policy , you can create an account via eksctl for instance ```eksctl create iamserviceaccount --name serviceaccountname --namespace production --cluster windmill-cluster --role-name "iamrolename" \
170+
- On AWS (and EKS) , you can use a service account with IAM roles attached. See [AWS docs](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) - once you have a policy , you can create an account via eksctl for instance ```eksctl create iamserviceaccount --name serviceaccountname --namespace production --cluster windmill-cluster --role-name "iamrolename" \
166171
--attach-policy-arn arn:aws:iam::12312315:policy/bucketpolicy --approve```
167-
* Mount/attach a credentials file in /root/.aws/credentials of the worker deployment
168-
* Add environment variables for the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, via kube secrets.
172+
- Mount/attach a credentials file in /root/.aws/credentials of the worker deployment
173+
- Add environment variables for the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, via kube secrets.
169174

170175
The sync relies on rclone and uses its methods of authentication to s3 per [Rclone documentation](https://rclone.org/s3/#authentication)
171176

172-
173177
## Values
174178

175179
| Key | Type | Default | Description |
@@ -188,9 +192,19 @@ The sync relies on rclone and uses its methods of authentication to s3 per [Rclo
188192
| 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 |
189193
| windmill.disableNuser | bool | `true` | nsjail user . Sets DISABLE_NUSER environment variable in worker container |
190194
| windmill.frontend | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | frontend configuration |
195+
| windmill.frontend.affinity | object | `{}` | Affinity rules to apply to the pods |
196+
| windmill.frontend.annotations | object | `{}` | Annotations to apply to the pods |
197+
| windmill.frontend.nodeSelector | object | `{}` | Node selector to use for scheduling the pods |
198+
| windmill.frontend.resources | object | `{}` | Resource limits and requests for the pods |
199+
| windmill.frontend.tolerations | list | `[]` | Tolerations to apply to the pods |
191200
| windmill.frontendReplicas | int | `2` | replica for the application frontend |
192201
| windmill.image | string | `"main"` | |
193202
| windmill.lsp | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | lsp configuration |
203+
| windmill.lsp.affinity | object | `{}` | Affinity rules to apply to the pods |
204+
| windmill.lsp.annotations | object | `{}` | Annotations to apply to the pods |
205+
| windmill.lsp.nodeSelector | object | `{}` | Node selector to use for scheduling the pods |
206+
| windmill.lsp.resources | object | `{}` | Resource limits and requests for the pods |
207+
| windmill.lsp.tolerations | list | `[]` | Tolerations to apply to the pods |
194208
| windmill.lspReplicas | int | `2` | replicas for the lsp containers used by the frontend |
195209
| windmill.nsjailPath | string | `"nsjail"` | nsjail binary. Sets NSJAIL_PATH environment variable in worker container |
196210
| 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 |
@@ -200,5 +214,5 @@ The sync relies on rclone and uses its methods of authentication to s3 per [Rclo
200214
| windmill.rustLog | string | `"info"` | rust log level, set to debug for more information etc, sets RUST_LOG environment variable in frontend and worker container |
201215
| windmill.workerReplicas | int | `4` | replicas for the workers, jobs are executed on the workers |
202216
| windmill.workers | object | `{"affinity":{},"annotations":{},"nodeSelector":{},"resources":{},"tolerations":[]}` | workers configuration |
203-
----------------------------------------------
204217

218+
----------------------------------------------

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)

0 commit comments

Comments
 (0)