This repository uses tracked configuration profiles plus a generated runtime overlay. Keep their responsibilities separate to avoid drift:
For local NVIDIA k3s deployments, all GPU profiles assume k3s-nvidia-edge has already prepared the cluster GPU substrate. See k3s-nvidia-edge dependency.
values.yaml- Generic, git-tracked chart defaults.
- Safe for CI, docs, and cross-machine review.
values.local-k3s.example.yaml- Sanitized local k3s example profile.
- Shows the intended workstation overrides without storing live secrets.
values.enterprise-pilot-k3s.yaml- Verified local k3s/NVIDIA workstation profile used for the current end-to-end deployment.
- Keeps the Ollama PVC at
5Gito match the existing local-path claim and avoid unsupported resize attempts.
values.geforce-940m-k3s.yaml- Verified low-memory GeForce 940M profile layered on top of
k3s-nvidia-edge. - Enables Ollama, Open WebUI, Open WebUI Redis, and OpenTelemetry Collector.
- Keeps GPU Operator, NVIDIA device plugin, and DCGM exporter disabled in this chart.
- Verified low-memory GeForce 940M profile layered on top of
values.cpu-k3s.yaml- CPU fallback profile for clusters that do not advertise
nvidia.com/gpu. - Keeps the same local GGUF model path pattern but clears NVIDIA runtime, node selectors, DCGM, and GPU resource requests.
- CPU fallback profile for clusters that do not advertise
.generated/values.runtime-detected.yaml- Generated by
hack/detect-runtime-profile.sh. - Gitignored runtime overlay used by
hack/bootstrap-enterprise-pilot-k3s.sh.
- Generated by
values.local-k3s.yaml- Your real machine-specific override file.
- Gitignored and expected to contain local paths, secret references, or direct secret values.
- Treat
values.yamlas the baseline behavior of the chart. - Treat
values.enterprise-pilot-k3s.yamlas the verified local single-node k3s/NVIDIA profile for this repository. - Treat
values.geforce-940m-k3s.yamlas the minimal local GeForce profile that must run on top ofk3s-nvidia-edge. - Treat
values.cpu-k3s.yamlas the CPU fallback profile. - Treat
values.local-k3s.example.yamlas a sanitized example for creating private local overrides. - Treat
values.local-k3s.yamlas private runtime state that may legitimately differ from the example. - Treat
.generated/values.runtime-detected.yamlas disposable runtime output.
| Area | values.yaml |
values.local-k3s.example.yaml |
values.enterprise-pilot-k3s.yaml |
values.geforce-940m-k3s.yaml |
values.cpu-k3s.yaml |
|---|---|---|---|---|---|
| GPU resource | nvidia.com/gpu |
nvidia.com/gpu |
nvidia.com/gpu |
nvidia.com/gpu |
disabled |
Requires k3s-nvidia-edge |
for local NVIDIA use | for local NVIDIA use | yes | yes | no |
| GGUF host path | Placeholder path | Example host path under /media/.../models |
Local verified host path under /media/.../models |
Local verified host path under /media/.../models |
Local verified host path under /media/.../models |
| Ollama PVC size | 20Gi |
5Gi |
5Gi |
5Gi |
5Gi |
| Service exposure | ClusterIP |
ClusterIP |
ClusterIP |
ClusterIP |
ClusterIP |
| OpenTelemetry tracing | enabled | enabled | enabled | collector enabled | enabled |
| Open WebUI secret key | Empty string | placeholder | placeholder, chart-managed secret | chart-managed secret | placeholder, chart-managed secret |
edgeToolbox.enabled |
true |
true |
true |
false |
true |
otelTraceSeeder.enabled |
false |
false |
false |
false |
false |
etcd.enabled |
false |
false |
false |
false |
false |
Create a local file from the example:
cp values.local-k3s.example.yaml values.local-k3s.yamlThen edit only the machine-specific fields in values.local-k3s.yaml:
- model host paths
- direct secret values or existing secret references
- local service exposure preferences
- any temporary troubleshooting toggles
See the fully merged release values:
helm get values llm-observability-stack -n llm-observability -aRender with the example profile:
helm template llm-observability-stack . -f values.local-k3s.example.yaml >/tmp/rendered-local-example.yamlRender with the verified local full-stack profile:
helm template llm-observability-stack . \
-n llm-observability \
-f values.enterprise-pilot-k3s.yaml \
--set kube-prometheus-stack.crds.enabled=false \
>/tmp/rendered-enterprise-pilot.yamlDetect the current Kubernetes runtime and render with the generated overlay:
./hack/detect-runtime-profile.sh
helm template llm-observability-stack . \
-n llm-observability \
-f values.enterprise-pilot-k3s.yaml \
-f .generated/values.runtime-detected.yaml \
--set kube-prometheus-stack.crds.enabled=false \
>/tmp/rendered-runtime-detected.yamlRender the CPU fallback profile directly:
helm template llm-observability-stack . \
-n llm-observability \
-f values.cpu-k3s.yaml \
--set kube-prometheus-stack.crds.enabled=false \
>/tmp/rendered-cpu.yamlRender with your private local profile:
helm template llm-observability-stack . -f values.local-k3s.yaml >/tmp/rendered-local-private.yaml- Do not place live secrets in
values.yamlorvalues.local-k3s.example.yaml. - Keep
values.yamlportable and workstation-agnostic. - When the local example changes, update this file and any quick-start docs that reference the profile.