Install DIAL Admin
Install DIAL Admin on Kubernetes with the dial/dial-admin Helm chart, connected directly to DIAL Core. This guide is for DevOps engineers who run DIAL with the Helm charts. It assumes a running DIAL Core and an identity provider that Core already trusts.
What the chart deploys
The umbrella dial/dial chart doesn't include DIAL Admin; it has its own chart. dial/dial-admin 0.20.0, with app version 0.22.0, has four parts:
| Part | Values key | Default | Role |
|---|---|---|---|
| Admin Frontend | frontend | On, image 0.22.0 | The web interface, deployed through the dial-extension chart |
| Admin Backend | backend | On, image 0.22.1 | The optional backend |
| PostgreSQL | postgresql | On | The backend's database, and Deployment Manager's when manager is on |
| DIAL Deployment Manager Backend | manager | Off | Builds images and runs containers for the Deployments screens |
With the default values, the chart starts the backend and its database but sets no environment variables on the frontend. The frontend is connected to neither DIAL Core nor the backend until you set them.
Prerequisites
- Helm 3.8.0 or later, and the DIAL chart repository:
helm repo add dial https://charts.dialx.ai. - DIAL Core with the Configuration API, reachable from the cluster.
- A client for DIAL Admin in your identity provider, with the redirect URI
https://<ADMIN_HOST>/api/auth/callback/<PROVIDER_ID>. Provider IDs are listed in Other identity providers. - DIAL Core set up to validate that provider's tokens and to recognize administrators in
access.admin.rules. See Authentication and administrator access.
Step 1: Write the values file
This values.yaml turns off the backend and its database, and connects the frontend to DIAL Core with Keycloak sign-in:
backend:
enabled: false
postgresql:
enabled: false
frontend:
image:
tag: 0.22.5
env:
DIAL_CORE_API_URL: "<DIAL_CORE_URL>"
NEXTAUTH_URL: "https://<ADMIN_HOST>"
NEXTAUTH_COOKIE_PREFIX: "admin"
THEMES_CONFIG_URL: "<THEMES_URL>"
AUTH_KEYCLOAK_HOST: "https://<KEYCLOAK_HOST>/realms/<REALM>"
AUTH_KEYCLOAK_CLIENT_ID: "dial-admin-console"
secrets:
NEXTAUTH_SECRET: "<NEXTAUTH_SECRET>"
AUTH_KEYCLOAK_SECRET: "<KEYCLOAK_CLIENT_SECRET>"
livenessProbe:
enabled: true
httpGet:
path: /api/health
readinessProbe:
enabled: true
httpGet:
path: /api/health
ingress:
enabled: true
ingressClassName: nginx
hosts:
- <ADMIN_HOST>
tls:
- secretName: dial-admin-tls
hosts:
- <ADMIN_HOST>
frontend.envsets plain environment variables.frontend.secretsgoes into a Kubernetes Secret that the pod loads withenvFrom.DIAL_CORE_API_URLis DIAL Core's in-cluster URL, such ashttp://dial-core.dial.svc.cluster.local.DIAL_ADMIN_API_URLstays unset, which selects the direct-to-Core setup.- The Keycloak issuer in
AUTH_KEYCLOAK_HOSTmust be reachable from both the browser and the Admin pod. For another identity provider, replace theAUTH_KEYCLOAK_*variables with that provider's; see Other identity providers. - The chart leaves the probes off. The frontend serves its health check at
/api/health. - The image tag overrides the chart's default
0.22.0with the latest 0.22 patch.
To connect Evaluation, Deployments, or Analytics, add their variables to frontend.env; see Optional services. The chart doesn't deploy the evaluation services; see DIAL Evaluations. Deployment Manager in this chart turns on with manager.enabled: true; see DIAL Deployment Manager configuration for its cluster, storage, authentication, and MCP proxy settings.
Step 2: Install the chart
helm repo update
helm upgrade --install dial-admin dial/dial-admin \
-f ./values.yaml \
--version 0.20.0 \
-n dial
The release creates a Deployment, Service, Ingress, Secret, ServiceAccount, and NetworkPolicy, all named dial-admin-frontend. The Service listens on port 80 and forwards to the container's port 3000.
Step 3: Verify the installation
-
Check that the pod is ready:
kubectl -n dial get pods -l app.kubernetes.io/instance=dial-admin -
Open
https://<ADMIN_HOST>and sign in. -
Open AI Gateway › Models. The list shows the models from DIAL Core's configuration files and storage.
If the screens load but Core calls answer 403, the user's token doesn't match Core's access.admin.rules.
Add Admin Backend
To run the optional backend as well, keep backend and postgresql on, or use externalDatabase for your own PostgreSQL. Then point the frontend to the backend's Service:
frontend:
env:
DIAL_ADMIN_API_URL: "http://dial-admin-backend.<NAMESPACE>.svc.cluster.local"
The backend needs its own settings for DIAL Core, token validation, and configuration export; see Admin Backend configuration. The chart's own examples set THEMES_CONFIG_HOST on the frontend. The frontend reads THEMES_CONFIG_URL, so use that name instead.
Result
The DIAL Admin frontend runs in the cluster, signs administrators in through your identity provider, and manages DIAL Core's configuration through the Configuration API.
Further reading
- Admin chart configuration — chart component defaults, values, and database wiring
- Admin Frontend configuration — every frontend environment variable
- Admin Backend configuration — settings of the optional Admin Backend service
- DIAL Deployment Manager — how the backend and MCP proxy manage workloads
- Administering DIAL — the screens and day-to-day workflows