docs: suppression LM Studio — cluster utilise llama-server ROCm

- CLAUDE.md : état mis à jour (2026-05-13), gpu-01 → llama-server,
  setup IA → endpoints réels (llama-server + LiteLLM), rôles Ansible
  à jour, suppression CLI LM Studio
- admin/lm_studio.md : marqué supprimé du cluster, lms CLI conservée
  pour téléchargement modèles uniquement, /opt/lmstudio disparu
- admin/nfs.md : section modèles mise à jour (plus de symlink lmstudio)
- admin/rocm.md : debug section → llama-server, section Vulkan supprimée
- admin/README.md : description lm_studio.md mise à jour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-13 16:21:51 +02:00
parent 6be2a89480
commit 515933c949
5 changed files with 45 additions and 83 deletions

View file

@ -4,16 +4,17 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Présentation du projet
**Funk** — homelab IA composé d'un cluster Kubernetes (Talos) pour les services applicatifs, d'un hôte d'inférence LLM dédié (gpu-01 / LM Studio), et d'un agent autonome (Hermes Agent) sur storage-01. Stack IaC complète : Ansible + talhelper + ArgoCD.
**Funk** — homelab IA composé d'un cluster Kubernetes (Talos) pour les services applicatifs, d'un hôte d'inférence LLM dédié (gpu-01 / llama-server ROCm), et d'un agent autonome (Hermes Agent) sur storage-01. Stack IaC complète : Ansible + talhelper + ArgoCD.
Référence complète : `Funk/Funk-infra/HOMELAB.md`
**État actuel (2026-05-09)** :
- ✅ Hermes Agent opérationnel sur le poste perso (LM Studio local `127.0.0.1:1234`)
**État actuel (2026-05-13)** :
- ✅ Hermes Agent opérationnel sur storage-01 (llama-server GPU via LiteLLM)
- ✅ storage-01 installé — `192.168.10.1` (LAN cluster), `192.168.1.200` (WAN)
- ✅ gpu-01 installé — ping OK depuis storage-01 (`192.168.10.20`)
- ⏳ Phase 1/2 en cours — Ansible, ROCm, LM Studio, dnsmasq, NAT restent à faire
- ❌ Repo `lab-infra/` à initialiser, aucun cluster k8s monté
- ✅ gpu-01 installé — llama-server GPU (:1234) + CPU (:1236/:1237) opérationnels
- ✅ LiteLLM sur storage-01 — proxy multi-modèles + ask-agent
- ✅ Cluster k8s Talos opérationnel (MetalLB + Traefik + wildcard DNS lab.local)
- ⏳ WOL compute nodes non configuré (BIOS) — allumage manuel requis
---
@ -25,7 +26,7 @@ Référence complète : `Funk/Funk-infra/HOMELAB.md`
| compute-01 | 192.168.10.11 | Talos v1.13+ | k8s control-plane |
| compute-02 | 192.168.10.12 | Talos v1.13+ | k8s worker |
| compute-03 | 192.168.10.13 | Talos v1.13+ | k8s worker |
| gpu-01 | 192.168.10.20 | AlmaLinux 9.7 | LM Studio dédié (RX 6700XT) — **hors cluster** |
| gpu-01 | 192.168.10.20 | AlmaLinux 9.7 | llama-server dédié (RX 6700XT, ROCm 7.x) — **hors cluster** |
**Points clés d'architecture :**
- `storage-01` et `gpu-01` sont **hors du cluster k8s** — ils sont consommés via des `ExternalName` services ou `Endpoints` manuels
@ -43,7 +44,7 @@ lab-infra/
│ ├── playbooks/site.yml
│ ├── group_vars/
│ └── roles/ # common, gateway, dnsmasq, nfs_server, postgresql,
│ # qdrant, minio, rocm, lm_studio, hermes_agent
│ # qdrant, minio, rocm, llama_server, litellm, hermes_agent, hermes_user
├── talos/ # nœuds Talos via talhelper
│ ├── talconfig.yaml # source de vérité (lue par talhelper)
│ ├── talsecret.sops.yaml
@ -77,7 +78,7 @@ ansible-playbook -i inventory.yml playbooks/site.yml # apply
ansible-playbook -i inventory.yml playbooks/site.yml --tags rocm # un rôle
```
Rôles prévus : `common`, `gateway`, `dnsmasq`, `nfs_server`, `postgresql`, `qdrant`, `minio`, `rocm`, `lm_studio`, `hermes_agent`. Tous idempotents. Secrets via Ansible Vault.
Rôles : `common`, `gateway`, `dnsmasq`, `nfs_server`, `nfs_client`, `postgresql`, `qdrant`, `minio`, `rocm`, `llama_server`, `litellm`, `hermes_agent`, `hermes_user`. Tous idempotents. Secrets via Ansible Vault.
### talhelper (nœuds Talos)
@ -114,20 +115,15 @@ git push
## Contrainte GPU critique
La RX 6700XT (gfx1031) n'est **pas officiellement supportée** par ROCm. Sur gpu-01, toujours s'assurer que la variable est présente dans l'environnement LM Studio / le service systemd :
La RX 6700XT (gfx1031) n'est **pas officiellement supportée** par ROCm. Toujours s'assurer que la variable est présente dans le service systemd `llama-server` :
```
HSA_OVERRIDE_GFX_VERSION=10.3.0
```
ROCm tourne directement sur l'hôte AlmaLinux (pas dans des conteneurs). Fallback : Vulkan dans LM Studio si ROCm coince.
ROCm tourne directement sur l'hôte AlmaLinux (pas dans des conteneurs). L'inférence est assurée par llama-server (llama.cpp compilé ROCm 7.x).
LM Studio bind sur `127.0.0.1` par défaut → pour l'exposer au réseau :
```bash
lms server start --port 1234 --bind 0.0.0.0
```
CLI LM Studio utile : `lms ls`, `lms load <model>`, `lms unload`, `lms server status`
CLI `lms` disponible sur gpu-01 uniquement pour télécharger des modèles (`lms get <url-hf>`, `lms ls`).
---
@ -137,44 +133,32 @@ CLI LM Studio utile : `lms ls`, `lms load <model>`, `lms unload`, `lms server st
| Composant | Endpoint |
|---|---|
| LM Studio | `http://127.0.0.1:1234/v1` |
| Ollama | `http://127.0.0.1:11434` |
| Hermes Agent | `base_url: http://127.0.0.1:1234/v1` |
```bash
# Prérequis : modèle chargé avec context suffisant (system prompt Hermes ≈ 15 000 tokens)
lms load <modele> --context-length 16384
lms server start --port 1234
```
Agents Goose dans `Funk/Funk-infra/agents/` — pointent tous sur `http://localhost:1234/v1` :
```bash
cd Funk/Funk-infra/agents/<nom-agent>
goose session --config goose-config.yaml
```
| LM Studio (optionnel) | `http://127.0.0.1:1234/v1` |
| Hermes Agent | `base_url: http://127.0.0.1:1234/v1` ou Ollama |
### Setup 2 — Cluster Funk (production)
| Composant | Endpoint |
|---|---|
| LM Studio (gpu-01) | `http://192.168.10.20:1234/v1` |
| Hermes Agent | service systemd sur storage-01, pointe sur gpu-01 |
| llama-server GPU (gpu-01) | `http://192.168.10.20:1234/v1` |
| llama-server CPU system (gpu-01) | `http://192.168.10.20:1236/v1` |
| llama-server CPU monitor (gpu-01) | `http://192.168.10.20:1237/v1` |
| LiteLLM proxy (storage-01) | `http://127.0.0.1:4000/v1` (master_key: `lm-studio`) |
| Hermes Agent | service systemd sur storage-01, via LiteLLM |
```bash
# Sur gpu-01 — HSA_OVERRIDE requis pour RX 6700XT (gfx1031)
HSA_OVERRIDE_GFX_VERSION=10.3.0 lms load <modele> --context-length 16384
lms server start --port 1234 --bind 0.0.0.0
# Vérifier l'état complet depuis le poste perso
funk-status
```
Détail complet des deux setups : `Funk/Funk-infra/HOMELAB.md` § 7.4
---
## Conventions
- **Domaine** : `lab.local` — wildcard DNS via dnsmasq sur storage-01
- **Ingress** : `<service>.lab.local` → IP MetalLB de Traefik (`192.168.10.200-230`)
- **LM Studio endpoint** : `http://192.168.10.20:1234/v1`
- **llama-server endpoint** : `http://192.168.10.20:1234/v1` (GPU) — accès via LiteLLM sur storage-01
- **Namespaces k8s** : `argocd`, `infra`, `storage`, `external`, `ai`, `workflows`
- **Git** : branches `main` (prod) / `feature/*` — commits en conventional commits (`feat:`, `fix:`, `chore:`, `docs:`)
- **Secrets** : Ansible Vault (Ansible), SOPS+age (Talos via talhelper), Sealed Secrets (k8s)