# windmill-labs/windmill-helm-charts architecture

> Architecture diagram of the GitHub repository windmill-labs/windmill-helm-charts, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/windmill-labs/windmill-helm-charts
- Repository: https://github.com/windmill-labs/windmill-helm-charts

## Overview

This repository packages Windmill for Kubernetes; its main workflow is installing the Helm chart to deploy the application and worker groups, with the application and workers configured to connect to PostgreSQL. The README also documents ingress access, a demo database, native workers, and optional operator-related resources. The graph uses documented relationships only; template implementations were not available to inspect, so wiring for several chart components is intentionally omitted.

Main entry points: [`charts/windmill/Chart.yaml`](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/Chart.yaml) (Windmill chart), [`charts/windmill/templates/app.yaml`](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/app.yaml) (Windmill app), [`charts/windmill/templates/ingress.yaml`](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/ingress.yaml) (Ingress routes), [`charts/windmill/templates/worker-groups.yaml`](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/worker-groups.yaml) (Worker groups)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Chart entry"]
  node_chart["Windmill chart<br/>[Chart.yaml]"]
end

subgraph group_runtime["Windmill runtime"]
  node_app["Windmill app<br/>[app.yaml]"]
  node_workers["Worker groups<br/>[worker-groups.yaml]"]
end

subgraph group_support["Supporting services"]
  node_postgres_demo[("Demo PostgreSQL")]
  node_hub["Hub service<br/>[hub.yaml]"]
  node_indexer["Indexer<br/>[indexer.yaml]"]
end

subgraph group_platform["Kubernetes platform"]
  node_ingress["Ingress routes<br/>[ingress.yaml]"]
  node_http_route["HTTP routes<br/>[httproute.yaml]"]
  node_autoscaling["Autoscaling<br/>[autoscaling.yaml]"]
  node_operator["Kubernetes operator<br/>[operator.yaml]"]
  node_operator_instance["Operator instance"]
  node_secrets["Secrets<br/>[secret.yaml]"]
end

node_installer(("Helm installer"))
node_database[("Configured PostgreSQL")]
node_browser(("Windmill user"))

node_installer -->|"installs"| node_chart
node_chart -->|"renders"| node_app
node_chart -->|"renders"| node_workers
node_chart -->|"renders"| node_postgres_demo
node_chart -->|"renders"| node_hub
node_chart -->|"renders"| node_indexer
node_chart -->|"renders"| node_ingress
node_chart -->|"renders"| node_http_route
node_chart -->|"renders"| node_autoscaling
node_chart -->|"renders"| node_operator
node_chart -->|"renders"| node_operator_instance
node_chart -->|"renders"| node_secrets
node_app -->|"connects via DATABASE_URL"| node_database
node_workers -->|"connect via DATABASE_URL"| node_database
node_postgres_demo -.->|"provides demo database"| node_database
node_browser -->|"opens"| node_ingress
node_ingress -->|"routes to"| node_app

click node_chart "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/Chart.yaml"
click node_app "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/app.yaml"
click node_workers "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/worker-groups.yaml"
click node_postgres_demo "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/postgresql-demo-app.yaml"
click node_hub "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/hub.yaml"
click node_indexer "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/indexer.yaml"
click node_ingress "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/ingress.yaml"
click node_http_route "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/httproute.yaml"
click node_autoscaling "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/autoscaling.yaml"
click node_operator "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/operator.yaml"
click node_operator_instance "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/operator-instance.yaml"
click node_secrets "https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/secret.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_chart,node_browser toneBlue
class node_app,node_workers,node_database toneAmber
class node_postgres_demo,node_hub,node_indexer toneMint
class node_ingress,node_http_route,node_autoscaling,node_operator,node_operator_instance,node_secrets toneRose
class node_installer toneIndigo
```

## Components

### Chart entry

- [Windmill chart](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/Chart.yaml): `charts/windmill/Chart.yaml`

### Windmill runtime

- [Windmill app](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/app.yaml): `charts/windmill/templates/app.yaml`
- [Worker groups](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/worker-groups.yaml): `charts/windmill/templates/worker-groups.yaml`

### Supporting services

- [Demo PostgreSQL](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/postgresql-demo-app.yaml): `charts/windmill/templates/postgresql-demo-app.yaml`
- [Hub service](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/hub.yaml): `charts/windmill/templates/hub.yaml`
- [Indexer](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/indexer.yaml): `charts/windmill/templates/indexer.yaml`

### Kubernetes platform

- [Ingress routes](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/ingress.yaml): `charts/windmill/templates/ingress.yaml`
- [HTTP routes](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/httproute.yaml): `charts/windmill/templates/httproute.yaml`
- [Autoscaling](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/autoscaling.yaml): `charts/windmill/templates/autoscaling.yaml`
- [Kubernetes operator](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/operator.yaml): `charts/windmill/templates/operator.yaml`
- [Operator instance](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/operator-instance.yaml): `charts/windmill/templates/operator-instance.yaml`
- [Secrets](https://github.com/windmill-labs/windmill-helm-charts/blob/main/charts/windmill/templates/secret.yaml): `charts/windmill/templates/secret.yaml`

### Other components

- **Helm installer**
- **Configured PostgreSQL**
- **Windmill user**

## Connections

- Helm installer → Windmill chart: installs
- Windmill chart → Windmill app: renders
- Windmill chart → Worker groups: renders
- Windmill chart → Demo PostgreSQL: renders
- Windmill chart → Hub service: renders
- Windmill chart → Indexer: renders
- Windmill chart → Ingress routes: renders
- Windmill chart → HTTP routes: renders
- Windmill chart → Autoscaling: renders
- Windmill chart → Kubernetes operator: renders
- Windmill chart → Operator instance: renders
- Windmill chart → Secrets: renders
- Windmill app → Configured PostgreSQL: connects via DATABASE_URL
- Worker groups → Configured PostgreSQL: connect via DATABASE_URL
- Demo PostgreSQL → Configured PostgreSQL: provides demo database
- Windmill user → Ingress routes: opens
- Ingress routes → Windmill app: routes to
