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
[Udash](https://github.com/updatecli/udash) is the Updatecli Dashboard — a web application that collects and displays Updatecli reports, giving your team a centralised view of software update activity across all your repositories.
7
+
[Udash](https://github.com/updatecli/udash) is the Updatecli Dashboard, a web application that collects and displays Updatecli reports,
8
+
giving your team a centralised view of software update activity across all your repositories.
8
9
9
10
## Architecture
10
11
@@ -23,7 +24,24 @@ An optional **Ingress** routes:
23
24
24
25
- Kubernetes 1.19+
25
26
- Helm 3.x
26
-
- A running **PostgreSQL** instance accessible from the cluster
27
+
-**[CloudNative-PG operator](https://cloudnative-pg.io/)** (when `cnpg.enabled: true`, which is the default)
28
+
29
+
Install the CNPG operator before installing this chart, and use `--wait` to ensure the operator
30
+
pod is fully ready (including its admission webhook) before proceeding:
By default the chart provisions a CNPG `Cluster` and injects credentials automatically. Just install the CNPG operator first (see Prerequisites), then:
64
+
65
+
```console
66
+
helm install udash updatecli/udash
67
+
```
68
+
69
+
### Read-only mode with external PostgreSQL
44
70
45
-
In read-only mode the server runs without authentication (dry-run). No OAuth credentials are required.
enabled: true # creates Middlewares for both front and server automatically
208
+
server:
209
+
host: api.domain.example
210
+
path: "/updatecli"
211
+
```
212
+
213
+
The chart renders:
214
+
215
+
| Middleware | Type | Effect |
216
+
|---|---|---|
217
+
| `<release>-strip-front` | StripPrefix `/project` | strips front sub-path before nginx |
218
+
| `<release>-strip-server` | StripPrefix `/updatecli` | strips external prefix on API host |
219
+
| `<release>-add-server` | AddPrefix `/api` | restores the `/api` prefix the backend expects |
220
+
74
221
## Uninstalling the Chart
75
222
76
223
```console
@@ -88,23 +235,37 @@ helm uninstall udash
88
235
| autoscaling.maxReplicas | int | `100` | Maximum number of replicas. |
89
236
| autoscaling.minReplicas | int | `1` | Minimum number of replicas. |
90
237
| autoscaling.targetCPUUtilizationPercentage | int | `80` | Target CPU utilization percentage for autoscaling. |
238
+
| cnpg.database | string | `"udash"` | PostgreSQL database name created during cluster bootstrap. |
239
+
| cnpg.enabled | bool | `true` | Enable CloudNative-PG managed PostgreSQL cluster. When true, the chart provisions a CNPG Cluster and injects credentials automatically. Requires the CNPG operator to be installed separately. |
240
+
| cnpg.instances | int | `1` | Number of PostgreSQL instances in the CNPG cluster. |
241
+
| cnpg.owner | string | `"udash"` | PostgreSQL role/owner created during cluster bootstrap. |
242
+
| cnpg.storage.size | string | `"1Gi"` | Storage size for each PostgreSQL instance. |
91
243
| configMap.annotations | object | `{}` | Annotations to add to the ConfigMap. |
92
244
| configMap.name | string | `""` | The name of the ConfigMap used to store server/front configuration. If not set, a name is generated using the fullname template. |
245
+
| front.apiBaseUrl | string | `"/api"` | API base URL used by the browser. Use a relative path (e.g. "/api") for same-host routing. Use an absolute URL (e.g. "https://api.domain.example/api") for split-domain routing. |
246
+
| front.appBasePath | string | `"/"` | Base path for the SPA. Must match ingress.paths.front when using subpath routing. Example: set both ingress.paths.front and front.appBasePath to "/updatecli". |
93
247
| fullnameOverride | string | `""` | Full override for the chart name used in resource names. |
94
248
| imagePullSecrets | list | `[]` | Secrets for pulling images from private registries. |
95
249
| images.front.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the udash-front image. |
96
250
| images.front.repository | string | `"ghcr.io/updatecli/udash-front"` | Repository for the udash-front image. |
97
-
| images.front.tag | string |`"v0.17.0@sha256:9afa7d7b0d8a8bc70154b83fd3ded620714cd79443c9e17a72bc5d7611c22f28"`| Overrides the image tag whose default is the chart appVersion. |
251
+
| images.front.tag | string | `"v0.19.0@sha256:b220b047a7536ab3bd77a5a312da10a051802a674385cd50ac7df00e652c7e5e"` | Overrides the image tag whose default is the chart appVersion. |
98
252
| images.server.args | list | `["server","start"]` | Arguments for the udash-server container. |
99
253
| images.server.command | list | `["udash"]` | Command override for the udash-server container. |
100
254
| images.server.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the udash-server image. |
101
255
| images.server.repository | string | `"ghcr.io/updatecli/udash"` | Repository for the udash-server image. |
102
256
| images.server.tag | string | `"v0.14.0@sha256:a52edcb9535d8c392a2e592bf7c3b4fc0c14ecd4b1360aa96639145038b5da75"` | Overrides the image tag whose default is the chart appVersion. |
103
-
| ingress.annotations | object |`{}`| Annotations to add to the Ingress resource. |
257
+
| ingress.annotations | object | `{}` | Annotations to add to the front Ingress resource. For subpath routing, add the strip-prefix annotation for your ingress controller. nginx example: nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/use-regex: "true" (and set ingress.paths.front to "/updatecli(/|$)(.*)") traefik example (requires a Middleware CR for stripprefix): traefik.ingress.kubernetes.io/router.middlewares: <namespace>-<middlewarename>@kubernetescrd |
| ingress.hosts | list |`[{"host":"udash.local"}]`| Ingress host rules. Traffic to `/` is forwarded to udash-front; traffic to `/api` is forwarded to udash-server. |
107
-
| ingress.tls | list |`[]`| TLS configuration for the Ingress. |
260
+
| ingress.hosts | list | `[{"host":"udash.local"}]` | Ingress host rules for the front. Traffic is forwarded according to ingress.paths. |
261
+
| ingress.paths.front | string | `"/"` | Path prefix for udash-front on same-host routing. For subpath routing (e.g. "/updatecli"), also set front.appBasePath to the same value and add a strip-prefix annotation so nginx receives "/" instead of "/updatecli/...". |
262
+
| ingress.paths.server | string | `"/api"` | Path prefix for udash-server on same-host routing (when ingress.server.host is empty). |
263
+
| ingress.server.annotations | object | `{}` | Annotations to add to the server Ingress resource. |
264
+
| ingress.server.host | string | `""` | Optional separate hostname for the API server. When empty (default): udash-server is routed via ingress.paths.server on each front host. When set: a second Ingress is created for this host routing to udash-server. |
265
+
| ingress.server.path | string | `"/api"` | Path prefix for udash-server on the separate server host. |
266
+
| ingress.server.tls | list | `[]` | TLS configuration for the server Ingress. |
267
+
| ingress.tls | list | `[]` | TLS configuration for the front Ingress. |
268
+
| ingress.traefik.stripPrefix.enabled | bool | `false` | When true, create Traefik Middleware resources and wire their annotations automatically. Front: a StripPrefix Middleware strips ingress.paths.front (useful when it is not "/"). Server: a StripPrefix + AddPrefix Middleware chain rewrites ingress.server.path to ingress.paths.server ("/api") — only rendered when ingress.server.host is set. Example: external /updatecli/* → strip /updatecli → add /api → backend sees /api/*. Requires Traefik CRDs (traefik.io/v1alpha1) to be installed in the cluster. |
108
269
| nameOverride | string | `""` | Override for the chart name used in resource names. |
109
270
| nodeSelector | object | `{}` | Node selector for pod scheduling. |
110
271
| podAnnotations | object | `{}` | Annotations to add to all pods. |
| secrets.database.annotations | object | `{}` | Annotations to add to the database Secret. |
121
282
| secrets.database.stringdata.uri | string | `"postgres://postgres:5432/udash?sslmode=disable"` | PostgreSQL connection URI used by the udash-server. |
122
283
| secrets.name | string | `""` | The name of the Secret used to store credentials. If not set, a name is generated using the fullname template. |
0 commit comments