Helm Chart Values#
Reference for all configurable values in the AIM Engine Helm chart.
Controller Manager#
Controller manager configuration
Parameter |
Description |
Default |
|---|---|---|
|
Number of operator replicas |
|
|
Operator container image repository |
|
|
Operator container image tag |
|
|
Image pull policy |
|
|
Secrets for pulling the operator image from private registries |
|
|
Controller command-line arguments |
|
|
Eager KServe |
|
|
Override the artifact-downloader image the operator spawns for model download and size-check Jobs. Empty uses the public mirror image baked into the operator binary at build time. Set this to install from a private downloader mirror instead. Per-resource (spec.modelDownloadImage) and runtime-config overrides still take precedence over this install-time default. |
`` |
|
Additional environment variables for the controller. Variables managed by dedicated chart values cannot be overridden here. |
|
|
Additional volume mounts for the controller |
|
|
Additional volumes for the controller pod |
|
|
Require non-root user |
|
|
Seccomp profile type |
|
|
Prevent privilege escalation |
|
|
Dropped Linux capabilities |
|
|
Read-only root filesystem |
|
|
Memory limit |
|
|
CPU request |
|
|
Memory request |
|
RBAC Helpers#
Create admin/editor/viewer ClusterRoles for each CRD
Parameter |
Description |
Default |
|---|---|---|
|
Enable RBAC helper roles |
|
CRDs#
Custom Resource Definitions
Parameter |
Description |
Default |
|---|---|---|
|
Install CRDs with the chart |
|
|
Keep CRDs when uninstalling (prevents data loss) |
|
Metrics#
Controller metrics endpoint
Parameter |
Description |
Default |
|---|---|---|
|
Enable metrics endpoint |
|
|
Metrics endpoint port |
|
Cert-Manager#
Cert-manager integration for TLS certificates
Parameter |
Description |
Default |
|---|---|---|
|
Enable cert-manager integration |
|
Prometheus#
Prometheus ServiceMonitor for metrics scraping
Parameter |
Description |
Default |
|---|---|---|
|
Create a Prometheus ServiceMonitor resource |
|
Cluster Runtime Configuration#
Cluster-wide runtime configuration for AIM resources. By default the chart creates AIMClusterRuntimeConfig/default with a generic NVIDIA vLLM fallback so v1alpha2 spec.modelId onboarding can generate profiles immediately on clusters that advertise NVIDIA GPU resources. Disable this when the cluster already has a platform-managed config with the same name.
Parameter |
Description |
Default |
|---|---|---|
|
Enable creation of the chart-managed AIMClusterRuntimeConfig resource |
|
|
Name of the AIMClusterRuntimeConfig resource |
|
|
Spec fields for the AIMClusterRuntimeConfig. See Runtime Configuration for details. The default fallback intentionally omits CPU and memory requests so profile generation is gated by the NVIDIA device resource, not a one-size-fits-all host-resource policy. Override the fallback to match your fleet and model sizes. Generated profiles remain truthfully |
NVIDIA vLLM fallback for any NVIDIA GPU |
clusterModelSource#
Cluster-wide AIMClusterModelSource for automatic model discovery. Creates an AIMClusterModelSource CR when enabled. The kubebuilder helm/v2-alpha plugin always wraps the generated template in {{- if .Values.clusterModelSource.enable }}, so this block must exist even when the resource is not wanted – otherwise helm install fails with nil pointer evaluating interface {}.enable.
Parameter |
Description |
Default |
|---|---|---|
|
Enable creation of the AIMClusterModelSource resource. Off by default so a fresh |
|
|
Name of the AIMClusterModelSource resource |
|
|
Spec fields for the AIMClusterModelSource. See AIMClusterModelSource. |
|
scaleFromZero#
Configure scale-from-zero triggers and the gateway-specific activation collector.
Parameter |
Description |
Default |
|---|---|---|
|
gRPC endpoint written to KEDA external metric triggers |
|
|
Seconds per GiB added to the default cooldown period cooldownPeriod = clamp(300 + memGiB * cooldownSecondsPerGiMemory, 300, 1200) Per-service |
|
|
Gateway implementation that supplies scale-from-zero activation metrics. Supported values are “none”, “envoyGateway”, “kgateway”, and “custom”. The default “none” installs no collector and makes minReplicas=0 invalid until a provider is selected. Known providers select both the controller’s default metric contract and the collector rendered by Helm. “custom” requires external collector management and an activationMetricQueryTemplate on a service or its RuntimeConfig. |
|
|
OpenTelemetry collector that forwards gateway activation metrics to keda-otel-scaler. Envoy Gateway’s EnvoyExtensionPolicy and source-side delta OTLP sink are managed separately on the platform-owned Gateway. |
|
|
Collector ownership. Use “helm” to render the collector selected by gatewayProvider, or “external” when platform infrastructure manages it. |
|
|
OTLP gRPC endpoint for keda-otel-add-on |
|
|
Metrics scrape interval used only by the kgateway collector. Envoy Gateway pushes source-side deltas over OTLP instead of being scraped. |
|
|
Number of collector replicas. Envoy Gateway can use multiple OTLP receivers for availability. Keep this at 1 for kgateway because its Prometheus receivers would scrape and export the same series repeatedly. |
|
|
Value of the gateway.networking.k8s.io/gateway-name label on the kgateway proxy pods. Used only when gatewayProvider is “kgateway”. |
|
|
Resource requests/limits for the collector pod |
acceleratorDetector#
AcceleratorDetector DaemonSets for hardware detection via NFD. Detects GPU and CPU accelerators on cluster nodes and writes NFD feature files so that AIM profiles can target specific hardware. Requires NFD (Node Feature Discovery) to be installed on the cluster. GPU nodes additionally publish current partition state under feature.node.kubernetes.io/aim-accelerator.partitioning-scheme.* by reading amd-smi partition --current --json. The GPU detector image must therefore ship an amd-smi build that supports partition --current --json. changing is dominated by NFD’s own scan interval, NOT detectInterval below. For timely partition labels, lower NFD’s local-source scan interval to match (e.g. nfd-worker core.sleepInterval / -sleep-interval ~10s). NFD is an external prerequisite of this chart and is configured in the NFD release.
Parameter |
Description |
Default |
|---|---|---|
|
Enable the AcceleratorDetector DaemonSets |
|
|
Seconds between re-detection cycles. Lowered to 10s for low-latency partition-state labels; |
|
|
GPU node detection (uses aim-base image with ROCm/amdsmi). Detects AMD Instinct GPUs and writes NFD labels like feature.node.kubernetes.io/aim-accelerator.MI300X=8 Only scheduled on nodes with feature.node.kubernetes.io/amd-gpu=true (set by the AMD GPU Operator NFD rule). |
|
|
Enable GPU accelerator detection DaemonSet |
|
|
GPU detector image repository (aim-base) |
|
|
GPU detector image tag |
|
|
Image pull policy |
|
|
Secrets for pulling the GPU detector image from private registries |
|
|
Node selector to target GPU nodes (requires AMD GPU Operator NFD rule) |
|
|
Tolerations for GPU nodes (defaults to tolerate all taints) |
|
|
Resource limits and requests for GPU detector pods |
|
|
CPU node detection (uses aim-epyc-base image, lighter, no ROCm). Detects AMD EPYC CPUs and writes NFD labels like feature.node.kubernetes.io/aim-accelerator.EPYC_9965=128 Only scheduled on nodes WITHOUT feature.node.kubernetes.io/amd-gpu label (i.e. CPU-only nodes). |
|
|
Enable CPU accelerator detection DaemonSet |
|
|
CPU detector image repository (aim-epyc-base) |
|
|
CPU detector image tag is released. The detector’s runtime fallback (detect-and-label.py) already handles the 0.12 packaging change when that image lands. |
|
|
Image pull policy |
|
|
Secrets for pulling the CPU detector image from private registries |
|
|
Node selector for CPU-only nodes (no additional selector needed; the DaemonSet uses nodeAffinity DoesNotExist on the amd-gpu label) |
|
|
Tolerations for CPU detector pods (defaults to tolerate all taints) |
|
|
Resource limits and requests for CPU detector pods |
|
|
NVIDIA GPU node detection. Uses a thin Python image; nvidia-smi and the driver libraries are injected at runtime by the nvidia-container-toolkit (NVIDIA_VISIBLE_DEVICES=all + NVIDIA_DRIVER_CAPABILITIES=utility under the nvidia runtime), so no CUDA/driver is baked into the image. Writes NFD labels like feature.node.kubernetes.io/aim-accelerator.H100=8 and feature.node.kubernetes.io/aim-accelerator.vendor.GPU.NVIDIA=8. Only scheduled on nodes labelled feature.node.kubernetes.io/pci-10de.present (set by the NVIDIA GPU Operator’s NFD config). It won’t deploy anywhere on a GPU-free or AMD-only cluster, so it is safe to leave enabled by default. |
|
|
Enable NVIDIA accelerator detection DaemonSet |
|
|
NVIDIA detector image repository (thin Python image) |
|
|
NVIDIA detector image tag |
|
|
Image pull policy |
|
|
Secrets for pulling the NVIDIA detector image from private registries |
|
|
RuntimeClass that routes the pod through the nvidia-container-toolkit so nvidia-smi/libnvidia-ml are injected. The NVIDIA GPU Operator creates a RuntimeClass named “nvidia”. Set to empty (“”) to rely on the node default runtime instead. |
|
|
Node selector to target NVIDIA GPU nodes. Default matches the NVIDIA GPU Operator’s vendor-only PCI label; override for vanilla-NFD clusters that emit class+vendor keys (e.g. pci-0302_10de.present). |
|
|
Tolerations for NVIDIA GPU nodes (defaults to tolerate all taints) |
|
|
Resource limits and requests for NVIDIA detector pods |