Fresh-clone quickstart¶
This path uses only freshly cloned organization repositories. It does not rely on generated files or an older working tree.
1. Clone the repositories¶
export EDGE_WORKSPACE="$PWD/edge-computing-llm"
mkdir -p "$EDGE_WORKSPACE"
cd "$EDGE_WORKSPACE"
for repository in .github edge-llm-tests edge-cli k3s-nvidia-edge \
llm-observability-stack gguf-observability; do
git clone "https://github.com/Edge-Computing-LLM/$repository.git"
done
Verify that every implementation checkout is clean:
for repository in edge-llm-tests edge-cli k3s-nvidia-edge \
llm-observability-stack gguf-observability; do
git -C "$repository" status --short --branch
done
2. Build the control plane¶
Create a fresh configuration so an older user configuration cannot select another checkout:
Edit that file so repos.k3sNvidiaEdge and
repos.llmObservabilityStack point into $EDGE_WORKSPACE, then verify it:
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" config show
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" repo doctor
3. Run preflight and a dry run¶
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" doctor
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" --dry-run install all \
--infra-repo-path "$EDGE_WORKSPACE/k3s-nvidia-edge" \
--observability-repo-path "$EDGE_WORKSPACE/llm-observability-stack"
Read the rendered commands. Confirm namespaces, release names, values files, and kubeconfig before authorizing mutations.
4. Prepare nested Helm dependencies¶
The observability repository vendors a local kube-prometheus-stack dependency.
A fresh checkout must build that nested chart before the root chart:
cd "$EDGE_WORKSPACE/llm-observability-stack"
helm dependency build charts/kube-prometheus-stack
helm dependency build .
helm lint .
Skipping the first command can produce a deceptively successful deployment without Grafana, kube-state-metrics, or node-exporter.
5. Install explicitly¶
For the default supported profile, use edge install all --yes after the dry
run. For a model-specific low-VRAM overlay such as Gemma, use the documented
two-values Helm command until the CLI exposes a model selector:
helm upgrade --install llm-observability-stack \
"$EDGE_WORKSPACE/llm-observability-stack" \
--namespace llm-observability --create-namespace \
-f "$EDGE_WORKSPACE/llm-observability-stack/values.geforce-940m-k3s.yaml" \
-f "$EDGE_WORKSPACE/llm-observability-stack/values.gemma-3-1b-geforce-940m-k3s.yaml"
The NVIDIA substrate must already be healthy. Follow NVIDIA substrate when it is not.
6. Verify the result¶
kubectl get nodes
kubectl get pods -A
kubectl get runtimeclass
kubectl get node -o jsonpath='{.items[0].status.allocatable.nvidia\.com/gpu}{"\n"}'
helm list -A
cd "$EDGE_WORKSPACE/edge-cli"
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" status
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" validate infra
./bin/edge --config "$EDGE_WORKSPACE/edge-cli.yaml" validate observability
Then run read-only tests and a controlled first inference.
Idempotency
Use helm upgrade --install for repeatable application changes. Never delete
namespaces or PVCs merely to retry an install; diagnose the failed ownership
layer first.