DIAL Extension chart configuration
The dial/dial-extension chart deploys a container as a Kubernetes Deployment and Service, with optional routing, storage, scaling, and observability resources. It is used for adapters, applications, Chat, themes, and Admin frontend/manager aliases. This reference describes chart 3.1.1 for platform engineers preparing workload values.
The release's README parameter table and values.yaml list every nested field. The tables below group those fields by the resource they control. When used under another chart, put values below the alias, such as openai, frontend, or manager.
Image and runtime defaults
| Value | Default | Purpose |
|---|---|---|
image.registry, image.repository, image.tag | docker.io, empty, latest | Set a repository and pin the image tag or digest for the chosen service. |
image.digest, .pullPolicy, .pullSecrets | Empty, IfNotPresent, [] | Digest and registry pull behavior. |
replicaCount | 1 | Replicas before optional HPA control. |
containerPorts.http, containerPorts.metrics | 5000, 9464 | Container ports; override for services using different ports. |
resourcesPreset | nano | Common-library CPU/memory preset; none disables the preset. |
resources | {} | Explicit requests/limits; when nonempty, takes precedence over resourcesPreset. |
service.type, service.ports.http | ClusterIP, 80 | Service exposed inside the cluster. |
livenessProbe.enabled, readinessProbe.enabled, startupProbe.enabled | false, false, false | Enable the appropriate health checks. Default probe paths are /health. |
containerSecurityContext.readOnlyRootFilesystem | true | Container filesystem policy. Add writable mounts where the image needs them. |
Shared workload settings
These setting families also appear in the Core chart and Admin Backend workload, with chart-specific defaults. The Extension chart is the source of values for its dependency aliases.
| Value family | Default / behavior |
|---|---|
global.imageRegistry, .imagePullSecrets, .storageClass | Shared registry, registry Secrets, and storage class overrides. |
global.compatibility.openshift.adaptSecurityContext | disabled; OpenShift security-context adaptation. |
nameOverride, fullnameOverride, namespaceOverride | Empty; resource naming and namespace overrides. |
commonLabels, commonAnnotations, podLabels, podAnnotations | {}; shared and pod-specific metadata. |
extraDeploy | []; additional manifests. |
diagnosticMode.enabled | false; workload diagnostics mode. |
command, args | []; container startup overrides. |
env, secrets, extraEnvVars, extraEnvVarsCM, extraEnvVarsSecret | Plain env, generated Secret, native env entries, and existing configuration references. See Configuration sources. |
extraContainerPorts | []; additional container ports. |
livenessProbe, readinessProbe, startupProbe | Native probe fields and timing; enabled gates each generated probe. |
customLivenessProbe, customReadinessProbe, customStartupProbe | {}; custom probe definitions. |
podSecurityContext | Enabled; group 1001 with filesystem group policy Always, plus configurable sysctls/supplemental groups. |
containerSecurityContext | Enabled; UID/GID 1001, non-root, no privilege escalation, drop all capabilities, RuntimeDefault seccomp. The Extension default root filesystem is read-only. |
automountServiceAccountToken | false; pod token mounting. |
serviceAccount.create, .name, .annotations, .automountServiceAccountToken | true, empty, {}, false; create or select a service account. |
hostAliases, hostNetwork | [], false; pod host resolution/networking. |
nodeSelector, affinity, tolerations | Empty; Kubernetes scheduling constraints. |
topologySpreadConstraints, priorityClassName, schedulerName | Empty; topology, priority, and scheduler choices. |
updateStrategy | RollingUpdate. |
terminationGracePeriodSeconds, lifecycleHooks | Empty / {}; shutdown timing and hooks. |
pdb.create, .minAvailable, .maxUnavailable | Disabled, empty availability bounds. |
autoscaling.hpa | Disabled; default replica bounds 1–3. Configure CPU/memory targets, custom rules, annotations, and behavior as needed. |
extraVolumes, extraVolumeMounts, sidecars, initContainers | []; pod composition and mounts. |
Service and external routing
| Value family | Purpose |
|---|---|
service | Type, HTTP port/node port, ClusterIP, load-balancer IP/source ranges, traffic policy, annotations, extra ports, and session affinity. |
ingress.enabled | false by default. |
ingress.ingressClassName, .hosts, .path, .pathType | Controller class, hostnames, path (/), and path type (Prefix). |
ingress.tls, .annotations, .serviceName, .extraPaths, .extraRules | TLS and additional routing controls. |
httpRoute.enabled | false by default; generates a Gateway API HTTPRoute. |
httpRoute.parentRefs, .hostnames, .rules, .annotations | Attach to existing Gateways and configure HTTP routing. |
Creating an Ingress or HTTPRoute does not install a controller, Gateway, or TLS issuer. Select routes and backend ports appropriate for the application. Prefer one intended exposure path for each workload.
Storage
| Value | Default | Purpose |
|---|---|---|
persistence.enabled | false | Attach persistent storage. |
persistence.mountPath, .size, .accessModes | /data, 8Gi, [ReadWriteOnce] | Volume mount and claim defaults. |
persistence.existingClaim, .storageClass, .subPath | Empty | Existing claim, storage class, and mount subpath. |
persistence.annotations, .dataSource, .selector | {} | Claim metadata, source, and selection. |
temporary.mountPath | /tmp | Temporary volume mount. |
temporary.subPath, .sizeLimit, .medium | Empty | Temporary-volume controls. |
The container must use the selected mount path; chart persistence does not alter application configuration. Review claim access modes before scaling a workload that mounts a volume.
Network policy
networkPolicy.enabled defaults to true in Extension chart 3.1.1. Both allowExternal and allowExternalEgress default to true. Configure the policy for the intended peers, and use a cluster network implementation that enforces NetworkPolicy.
extraIngress and extraEgress add rules. ingressPodMatchLabels, ingressNSMatchLabels, and ingressNSPodMatchLabels select allowed peers. networkPolicy.metrics configures metrics ingress separately, including its allowExternal and namespace/pod selectors.
Metrics
| Value family | Default / behavior |
|---|---|
metrics.enabled | false; creates the dedicated metrics Service. |
metrics.service | ClusterIP, HTTP port 9464, plus the same exposure/session settings as the main Service. |
metrics.serviceMonitor.enabled | false; requires the metrics Service and Prometheus Operator CRDs. |
metrics.serviceMonitor.port, .path | http-metrics, /metrics. |
metrics.serviceMonitor.namespace, .annotations, .labels, .selector | Resource placement and discovery metadata. |
metrics.serviceMonitor.interval, .scrapeTimeout, .jobLabel, .honorLabels | Scrape timing and labels; honorLabels defaults to false. |
metrics.serviceMonitor.metricRelabelings, .relabelings | Scrape relabeling rules. |
metrics.prometheusRule.enabled | false; creates a PrometheusRule when enabled. |
metrics.prometheusRule.namespace, .annotations, .labels, .rules | Rule placement, metadata, and expressions. |
The application must actually expose metrics on that port/path. For Deployment Manager, for example, use /actuator/prometheus rather than the chart's /metrics default. Exporter configuration belongs to the deployed service.
Example: DIAL Model Provider workload
image:
repository: epam/ai-dial-model-provider
tag: 0.1.0-rc.0
containerPorts:
http: 5000
env:
DIAL_URL: http://dial-core.dial.svc.cluster.local
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: "1"
memory: 1Gi
This example renders one DIAL Model Provider workload, which serves all its adapters. Core still needs model configuration pointing to its Service, and provider credentials must be configured as described in DIAL Model Provider configuration. For an application image, use Custom Apps deployment.
Further reading
- Platform chart — use these values below an assembly alias
- Admin chart — frontend and manager aliases
- Deploy Custom Apps to a cluster — run a Custom App as a Kubernetes service beside Core
- Install the Quick Apps feature — deploy the Quick Apps backend and register it in Core
- DIAL Model Provider — the service that runs the OpenAI, Bedrock, and Vertex AI adapters