You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Example chart for deploying Windmill and testing it on Kubernetes or Minikube.
14
13
15
-
16
14
Caveats:
17
15
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
20
18
21
19
## Deploying demo on minikube
22
20
23
21
Tested with minikube on WSL2 in Windows 10.
24
22
25
23
### Deploy via Helm repo (preferred)
26
24
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.
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.
96
101
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.
Wait for pods to come up running, takes a couple minutes to pull images and launch:
108
+
105
109
```
106
110
watch kubectl get pods -n windmill
107
-
```
108
-
After pods launch:
111
+
```
112
+
113
+
After pods launch:
109
114
```minikube service windmill-app```
110
115
Windmill should be available at the URL from the console output. Default credentials: admin@windmill.dev / changeme
111
116
112
117
To destroy:
118
+
113
119
```
114
120
helm delete windmill
115
121
```
@@ -151,25 +157,23 @@ spec:
151
157
152
158
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:
153
159
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
157
163
158
164
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.
159
165
160
-
161
166
### Enterprise features
162
167
163
168
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:
164
169
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" \
* 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.
169
174
170
175
The sync relies on rclone and uses its methods of authentication to s3 per [Rclone documentation](https://rclone.org/s3/#authentication)
171
176
172
-
173
177
## Values
174
178
175
179
| Key | Type | Default | Description |
@@ -188,9 +192,19 @@ The sync relies on rclone and uses its methods of authentication to s3 per [Rclo
188
192
| 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 |
189
193
| windmill.disableNuser | bool |`true`| nsjail user . Sets DISABLE_NUSER environment variable in worker container |
| 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
200
214
| windmill.rustLog | string |`"info"`| rust log level, set to debug for more information etc, sets RUST_LOG environment variable in frontend and worker container |
201
215
| windmill.workerReplicas | int |`4`| replicas for the workers, jobs are executed on the workers |
| 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 |
| 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 |
| 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 |
0 commit comments