Configuration Reference
Values
Key |
Type |
Default |
Description |
|---|---|---|---|
nameOverride |
string |
|
Unique identifier of SuperSONIC instance (equal to release name by default) |
serverLoadMetric |
string |
|
Prometheus query used by the KEDA autoscaler and, per healthy replica, by Envoy’s prometheus-based rate limiter. Empty selects the default metric: the number of replicas the current in-flight work needs (see the configuration guide). A custom query is used verbatim. |
serverLoadThreshold |
float |
|
Scaling threshold: KEDA scales to ceil(metric / threshold). Set fractions from a values file or –set-json. Remove a leftover |
serverLoadRateInterval |
string |
|
rate() window of the default metric; keep it at or above 4x the Prometheus scrape interval. |
serverAdmissionThreshold |
float |
|
Threshold of Envoy’s prometheus-based rate limiter (the scaling metric per healthy replica, or a custom serverLoadMetric verbatim). Envoy reads it at startup. |
scaleFromZero |
object |
|
On RepositoryIndex, scale Triton to at least max(1, keda.minReplicaCount) replicas and return the index only after Envoy has a healthy Triton upstream. Requires keda.enabled and envoy.enabled. |
scaleFromZero.enabled |
bool |
|
Enable scale from zero |
scaleFromZero.readyTimeoutSeconds |
int |
|
Seconds to wait for a healthy Triton upstream before rejecting RepositoryIndex |
scaleFromZero.holdMinReplicasSeconds |
int |
|
Seconds to keep KEDA minReplicaCount at the wake target after the last RepositoryIndex is answered (the hold is refreshed once the server is ready, so it is measured from readiness rather than from the wake request). Must be >= readyTimeoutSeconds (validated at render time), otherwise KEDA can scale the waking pod back to zero before RepositoryIndex is answered. |
scaleFromZero.admissionImage |
string |
|
Image for the admission sidecar on the Envoy pod |
triton.replicas |
int |
|
Number of Triton server instances. Unused when scaleFromZero.enabled is true. |
triton.image |
string |
|
Docker image for the Triton server |
triton.command |
list |
|
Command and arguments to run in Triton container |
triton.args[0] |
string |
|
|
triton.resources |
object |
|
Resource limits and requests for each Triton instance. You can add necessary GPU request here. |
triton.annotations |
object |
|
Annotations for Triton pods |
triton.nodeSelector |
object |
|
Node selector for Triton pods |
triton.tolerations |
list |
|
Tolerations for Triton pods |
triton.affinity |
object |
|
Affinity rules for Triton pods - another way to request GPUs |
triton.modelRepository |
object |
|
Model repository configuration |
triton.modelRepository.mountPath |
string |
|
Model repository mount path |
triton.service.labels |
object |
|
|
triton.service.annotations |
object |
|
|
triton.service.ports |
list |
|
Ports for communication with Triton servers. Inference sent directly to them bypasses Envoy and the scaling metric. |
triton.readinessProbe |
object |
|
Custom readiness probe configuration |
triton.readinessProbe.reset |
bool |
|
If true, will reset settings to k8s defaults (other readinessProbe settings will be ignored) |
triton.startupProbe |
object |
|
Custom startup probe configuration |
triton.startupProbe.reset |
bool |
|
If true, will reset settings to k8s defaults (other startupProbe settings will be ignored) |
envoy.enabled |
bool |
|
Enable Envoy Proxy |
envoy.replicas |
int |
|
Number of Envoy Proxy pods in Deployment |
envoy.image |
string |
|
Envoy Proxy Docker image |
envoy.args |
list |
|
Arguments for Envoy |
envoy.external_config |
object |
|
External Envoy configuration settings |
envoy.external_config.load_from_configmap |
bool |
|
If true, load Envoy configuration from an external ConfigMap instead of generating it dynamically |
envoy.external_config.configmap_name |
string |
|
Name of the external ConfigMap containing the Envoy configuration |
envoy.external_config.configmap_key |
string |
|
Key name in the external ConfigMap (defaults to “envoy.yaml”) |
envoy.resources |
object |
|
Resource requests and limits for Envoy Proxy. Note: an Envoy Proxy with too many connections might run out of CPU |
envoy.annotations |
object |
|
Annotations for Envoy pods |
envoy.nodeSelector |
object |
|
Node selector for Envoy pods |
envoy.tolerations |
list |
|
Tolerations for Envoy pods |
envoy.service.type |
string |
|
This is the client-facing endpoint. In order to be able to connect to it, either enable ingress, or use type: LoadBalancer. |
envoy.service.ports |
list |
|
Envoy Service ports |
envoy.ingress |
object |
|
Ingress configuration for Envoy |
envoy.grpc_route_timeout |
string |
|
Timeout for gRPC route in Envoy; disabled by default (0s), preventing Envoy from closing connections too early. |
envoy.rate_limiter.listener_level |
object |
|
This rate limiter explicitly controls the number of client connections to the Envoy Proxy. |
envoy.rate_limiter.listener_level.enabled |
bool |
|
Enable rate limiter |
envoy.rate_limiter.listener_level.max_tokens |
int |
|
Maximum number of simultaneous connections to the Envoy Proxy. Each new connection takes a “token” from the “bucket” which initially contains |
envoy.rate_limiter.listener_level.tokens_per_fill |
int |
|
|
envoy.rate_limiter.listener_level.fill_interval |
string |
|
For example, adding a new token every 12 seconds allows 5 new connections every minute. |
envoy.rate_limiter.prometheus_based |
object |
|
This rate limiter rejects new |
envoy.rate_limiter.prometheus_based.enabled |
bool |
|
Enable rate limiter |
envoy.rate_limiter.prometheus_based.luaConfig |
string |
|
Envoy Lua filter (prometheus rate limiter and scaleFromZero) |
envoy.loadBalancerPolicy |
string |
|
Envoy load balancer policy. Options: ROUND_ROBIN, LEAST_REQUEST, RING_HASH, RANDOM, MAGLEV |
envoy.auth.enabled |
bool |
|
Enable authentication in Envoy proxy |
envoy.auth.jwt_issuer |
string |
|
|
envoy.auth.jwt_remote_jwks_uri |
string |
|
|
envoy.auth.audiences |
list |
|
|
envoy.auth.url |
string |
|
|
envoy.auth.port |
int |
|
|
keda.enabled |
bool |
|
Enable autoscaling (requires Prometheus). KEDA scales Triton on |
keda.metricType |
string |
|
How the HPA interprets the metric. Empty selects AverageValue (fleet-wide) for the default metric and Value (per replica) for a custom serverLoadMetric. |
keda.minReplicaCount |
int |
|
Minimum and maximum number of Triton servers. Set minReplicaCount to 0 to release all resources when idle (requires scaleFromZero.enabled). With scaleFromZero, a RepositoryIndex request scales Triton to max(1, minReplicaCount), and upgrades keep the live ScaledObject minReplicaCount. |
keda.maxReplicaCount |
int |
|
|
keda.pollingInterval |
int |
|
Seconds between KEDA activity checks, which govern scaling to and from zero (scaling between 1 and maxReplicaCount follows the HPA sync period). 0 falls back to 10. |
keda.cooldownPeriod |
int |
|
Seconds the metric must stay at or below activationThreshold before KEDA scales to zero. An empty query result counts as no load. |
keda.activationThreshold |
float |
|
Metric value at or below which the trigger is inactive for scaling to zero; about 0.1 ignores probe traffic through Envoy. |
keda.zeroIdleReplicas |
bool |
|
If set to true, KEDA sets idleReplicaCount to 0. This cannot scale from 0 back to 1 when the load metric comes from Triton. Use scaleFromZero.enabled with keda.minReplicaCount: 0 instead. |
keda.scaleUp.stabilizationWindowSeconds |
int |
|
HPA scale-up stabilization window in seconds (0 reacts to the latest evaluation) |
keda.scaleUp.periodSeconds |
int |
|
Scale-up rate-limit period in seconds |
keda.scaleUp.stepsize |
int |
|
Replicas added per period |
keda.scaleDown.stabilizationWindowSeconds |
int |
|
HPA scale-down stabilization window in seconds |
keda.scaleDown.periodSeconds |
int |
|
Scale-down rate-limit period in seconds |
keda.scaleDown.stepsize |
int |
|
Replicas removed per period |
prometheus.external.enabled |
bool |
|
Enable external Prometheus instance. If true, Prometheus parameters outside of prometheus.external will be ignored. |
prometheus.external.url |
string |
|
External Prometheus server url |
prometheus.external.port |
int |
|
External Prometheus server port number |
prometheus.external.scheme |
string |
|
Specify whether external Prometheus endpoint is exposed as http or https |
prometheus.enabled |
bool |
|
Enable or disable custom Prometheus deployment |
prometheus.server.extraFlags[0] |
string |
|
|
prometheus.server.useExistingClusterRoleName |
string |
|
|
prometheus.server.releaseNamespace |
bool |
|
|
prometheus.server.persistentVolume.enabled |
bool |
|
|
prometheus.server.resources.requests.cpu |
string |
|
|
prometheus.server.resources.requests.memory |
string |
|
|
prometheus.server.resources.limits.cpu |
int |
|
|
prometheus.server.resources.limits.memory |
string |
|
|
prometheus.server.retention |
string |
|
|
prometheus.server.global.scrape_interval |
string |
|
|
prometheus.server.global.evaluation_interval |
string |
|
|
prometheus.server.service.enabled |
bool |
|
|
prometheus.server.service.servicePort |
int |
|
|
prometheus.server.configMapOverrideName |
string |
|
|
prometheus.server.ingress |
object |
|
Ingress configuration for Prometheus |
prometheus.server.ingress.hostName |
string |
|
If this parameter is set in values.yaml, the |
prometheus.serviceAccounts.server.create |
bool |
|
|
prometheus.serviceAccounts.server.name |
string |
|
|
prometheus.rbac.create |
bool |
|
|
prometheus.alertmanager.enabled |
bool |
|
|
prometheus.pushgateway.enabled |
bool |
|
|
prometheus.kube-state-metrics.enabled |
bool |
|
|
prometheus.prometheus-node-exporter.enabled |
bool |
|
|
prometheus.prometheus-pushgateway.enabled |
bool |
|
|
prometheus.configmapReload.prometheus.enabled |
bool |
|
|
grafana.enabled |
bool |
|
Enable Grafana |
grafana.adminUser |
string |
|
|
grafana.adminPassword |
string |
|
|
grafana.persistence.enabled |
bool |
|
|
grafana.rbac.create |
bool |
|
|
grafana.serviceAccount.create |
bool |
|
|
grafana.datasources |
object |
|
Grafana datasources configuration |
grafana.dashboardProviders.”dashboardproviders.yaml”.apiVersion |
int |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].name |
string |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].orgId |
int |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].folder |
string |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].type |
string |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].disableDeletion |
bool |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].editable |
bool |
|
|
grafana.dashboardProviders.”dashboardproviders.yaml”.providers[0].options.path |
string |
|
|
grafana.dashboardsConfigMaps.default |
string |
|
|
grafana.”grafana.ini”.auth.disable_login_form |
bool |
|
|
grafana.”grafana.ini”.”auth.anonymous”.enabled |
bool |
|
|
grafana.”grafana.ini”.”auth.anonymous”.org_role |
string |
|
|
grafana.”grafana.ini”.dashboards.default_home_dashboard_path |
string |
|
|
grafana.”grafana.ini”.server.root_url |
string |
|
|
grafana.resources.limits.cpu |
int |
|
|
grafana.resources.limits.memory |
string |
|
|
grafana.resources.requests.cpu |
string |
|
|
grafana.resources.requests.memory |
string |
|
|
grafana.ingress |
object |
|
Ingress configuration for Grafana |
grafana.ingress.hostName |
string |
|
If this parameter is set in values.yaml, the |
metricsCollector.enabled |
bool |
|
Enable metrics collector |
metricsCollector.image |
string |
|
Image for the metrics collector |
metricsCollector.host |
string |
|
Host and port for metrics collector |
metricsCollector.port |
int |
|
|
metricsCollector.resources |
object |
|
Resource limits and requests for metrics collector |
metricsCollector.service |
object |
|
Add service |
metricsCollector.ingress |
object |
|
Ingress configuration for metrics collector |