diff --git a/CLAUDE.md b/CLAUDE.md index 1c50a09..2942d7f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co **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. -**État actuel (2026-05-17)** : +**État actuel (2026-05-25)** : - ✅ Hermes Agent opérationnel — multi-profils (funk-ai/system/monitor/brain) - ✅ RAG opérationnel — Qdrant 284 chunks, `rag-ingest` / `rag-query`, skill funk-ai - ✅ Monitoring complet — Prometheus + Grafana + AlertManager → webhook Hermes @@ -94,6 +94,14 @@ Les tags correspondent aux noms de rôles. Tous les rôles sont idempotents. Le rôle `hermes_agent` installe le binaire via `curl | bash` seulement si le binaire est absent. La configuration (`.env`, `config.yaml`) est ensuite conditionnelle à `hermes_binary.stat.exists`. Sur un hôte vierge, il faut **deux runs consécutifs** : le premier installe, le second configure. +### Variables par hôte + +`ansible/host_vars//vars.yml` contient les variables spécifiques à chaque machine : +- `storage-01` : UUID RAID5, exports NFS, chemins des services sous `/srv/data` +- `gpu-01` : chemin du modèle GGUF (`llama_model_path`), alias modèle, `llama_ctx_size`, montages NFS + +Variables globales (non-secrètes) dans `ansible/group_vars/all/vars.yml` : `admin_user`, `dns_domain`, `ntp_servers`, `cluster_network`, `wan_gateway`. + ### Secrets Ansible Vault Variables chiffrées dans `ansible/group_vars/all/vault.yml` : @@ -239,12 +247,14 @@ Gérée automatiquement par le rôle `llama_server`. ROCm tourne directement sur ## Gestion du cluster +Ces commandes sont des **fonctions bash sur le poste perso** (configurées dans `~/.bashrc`) qui SSH sur storage-01 et invoquent `/usr/local/bin/funk-cluster`. + ```bash -funk-cluster status # état de tous les services (storage-01 + gpu-01 + k8s) -funk-cluster start # WOL gpu-01 + démarrage services storage-01 -funk-cluster start --k8s # idem + nœuds k8s (WOL → drain-aware boot) -funk-cluster stop # arrêt propre gpu-01 + services -funk-cluster stop --k8s # idem + drain k8s → NFS check → talosctl shutdown +funk-status # état de tous les services (storage-01 + gpu-01 + k8s) +funk-start # WOL gpu-01 + démarrage services storage-01 +funk-start --k8s # idem + nœuds k8s (WOL → drain-aware boot) +funk-stop # arrêt propre gpu-01 + services +funk-stop --k8s # idem + drain k8s → NFS check → talosctl shutdown ``` **etcd backup** (single control-plane → critique) : diff --git a/k8s/infra/monitoring/values.yaml b/k8s/infra/monitoring/values.yaml index 98f0046..44631c4 100644 --- a/k8s/infra/monitoring/values.yaml +++ b/k8s/infra/monitoring/values.yaml @@ -2,6 +2,8 @@ # Ressources limitées pour compute-02/03 (8 GB RAM) grafana: + initChownData: + enabled: false ingress: enabled: true ingressClassName: traefik