Depot en lecture seule du cluster FUNK, documentation complete
Find a file
alkatrazz 9f027cb833 docs: ask-agent + skills Hermes — documentation complète
- admin/ask-agent.md (nouveau) : doc détaillée ask-agent CLI,
  architecture 4 agents, skill agent-delegation, gestion skills
  dans les profils Hermes, dépannage, points d'attention
- admin/hermes.md : section Skills avec point d'attention double
  emplacement (skills/ + profiles/<profil>/skills/), tableau skills
  custom Funk, restart obligatoire après modif skill
- admin/litellm.md : flux et modèles mis à jour (qwen3-8b,
  qwen3-1.7b-system/monitor), lien vers ask-agent.md
- admin/README.md : entrée ask-agent.md ajoutée

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 16:37:36 +02:00
admin docs: ask-agent + skills Hermes — documentation complète 2026-05-13 16:37:36 +02:00
ansible feat: rôle hermes_user + ask-agent + skills délégation 2026-05-13 16:03:43 +02:00
docs Ajout de l'image cluster 2026-05-12 17:32:10 +02:00
Funk docs: add Funk/ reference docs and update hermes TUI instructions 2026-05-12 19:51:42 +02:00
hermes-skills/funk/agent-delegation feat: rôle hermes_user + ask-agent + skills délégation 2026-05-13 16:03:43 +02:00
talos feat(talos): bootstrap Kubernetes cluster funk (3 nodes, v1.33.1) 2026-05-12 22:11:38 +02:00
.gitignore feat(talos): bootstrap Kubernetes cluster funk (3 nodes, v1.33.1) 2026-05-12 22:11:38 +02:00
.sops.yaml feat(talos): bootstrap Kubernetes cluster funk (3 nodes, v1.33.1) 2026-05-12 22:11:38 +02:00
CLAUDE.md docs: suppression LM Studio — cluster utilise llama-server ROCm 2026-05-13 16:21:51 +02:00
LICENSE Initial commit 2026-05-12 17:02:24 +02:00
Makefile feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
PROGRESS.md docs: profils Hermes multi-modèles + progression 12-13 mai 2026-05-13 01:52:58 +02:00
README.md Update README.md 2026-05-12 17:33:14 +02:00
requirements.txt feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00

Funk Lab

Homelab IA — Kubernetes (Talos) + GPU AMD + Agent autonome (Hermes)

Funk Lab

Vue d'ensemble

Funk est un homelab orienté IA composé de 5 machines physiques :

  • un nœud de stockage/passerelle qui héberge tous les services de données et l'agent IA
  • un nœud GPU dédié à l'inférence LLM local (AMD RX 6700XT)
  • trois nœuds qui forment un cluster Kubernetes (Talos Linux)

L'ensemble est géré en Infrastructure-as-Code : Ansible pour les hôtes AlmaLinux, talhelper pour Talos, ArgoCD pour les workloads Kubernetes.


Architecture

                    Internet
                       │
                  [ Freebox ]
                       │
              ┌────────────────┐
              │   storage-01   │  AlmaLinux 9.7
              │  192.168.10.1  │  Gateway + NAT + DNS
              │                │  NFS RAID5 · PostgreSQL
              │                │  Qdrant · LiteLLM · Hermes
              └───────┬────────┘
                      │  LAN cluster (192.168.10.0/24)
          ┌───────────┼───────────┐
          │           │           │
    [ compute-01 ] [ compute-02 ] [ compute-03 ]   Talos Linux
    192.168.10.11  192.168.10.12  192.168.10.13    Kubernetes
    control-plane     worker        worker

          ┌───────────┘
          │
      [ gpu-01 ]   AlmaLinux 9.7
    192.168.10.20  llama-server (ROCm)
                   AMD RX 6700XT 12GB

Stack IA

Hermes Agent  →  LiteLLM :4000  →  Qwen3-8B  (local, gpu-01)
                                →  Claude Sonnet / Opus  (API Anthropic)

Hermes  ←→  Qdrant :6333  (mémoire vectorielle sémantique)
Composant Rôle Hôte
llama-server Inférence LLM + embeddings (ROCm 7.x) gpu-01
LiteLLM Proxy API — switch local/cloud transparent storage-01
Hermes Agent Agent IA autonome avec mémoire vectorielle storage-01
Qdrant Base vectorielle pour la mémoire sémantique storage-01
PostgreSQL 16 Persistance Hermes + LiteLLM storage-01

Infrastructure

Machines

Machine IP OS RAM Rôle
storage-01 192.168.10.1 AlmaLinux 9.7 32 GB Gateway · NFS · Services IA
gpu-01 192.168.10.20 AlmaLinux 9.7 32 GB Inférence LLM (RX 6700XT)
compute-01 192.168.10.11 Talos v1.10+ 16 GB k8s control-plane
compute-02 192.168.10.12 Talos v1.10+ 8 GB k8s worker
compute-03 192.168.10.13 Talos v1.10+ 8 GB k8s worker

Stockage

  • RAID5 logiciel (md0) — 4 × 1 TB SATA → 2,7 TB utiles sur storage-01
  • Point de montage /srv/data — héberge modèles LLM, bases de données, données Hermes

Organisation du repo

├── ansible/              # Gestion storage-01 + gpu-01 (AlmaLinux)
│   ├── inventory.yml
│   ├── playbooks/
│   │   ├── storage-01.yml
│   │   └── gpu-01.yml
│   ├── group_vars/       # Variables globales + vault chiffré
│   ├── host_vars/        # Variables par machine
│   └── roles/
│       ├── common        # Paquets, sécurité, NTP
│       ├── gateway       # nftables + NAT
│       ├── dnsmasq       # DNS local (lab.local)
│       ├── nfs_server    # Exports NFS (modèles, k8s)
│       ├── nfs_client    # Montages NFS sur gpu-01
│       ├── rocm          # Stack GPU AMD (ROCm 7.x)
│       ├── llama_server  # Inférence LLM + embeddings
│       ├── litellm       # Proxy LLM multi-modèles
│       ├── hermes_agent  # Agent IA autonome
│       ├── postgresql    # Base de données
│       └── qdrant        # Base vectorielle
├── talos/                # Cluster Kubernetes (talhelper)  [à venir]
└── k8s/                  # Workloads ArgoCD               [à venir]

Démarrage rapide

Pré-requis

pip install ansible
ansible-galaxy collection install ansible.posix community.general community.postgresql

Déployer storage-01

cd ansible/
ansible-playbook -i inventory.yml playbooks/storage-01.yml

Déployer gpu-01

ansible-playbook -i inventory.yml playbooks/gpu-01.yml

Déployer un rôle spécifique

ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags litellm
ansible-playbook -i inventory.yml playbooks/gpu-01.yml --tags llama_server

Gestion du cluster

funk-start    # Allume gpu-01 (WOL) + démarre tous les services
funk-stop     # Arrêt propre
funk-status   # État de tous les services (13 checks)

Secrets

Les secrets sont gérés via Ansible Vault (chiffrement AES256).

# Chiffrer le vault
ansible-vault encrypt ansible/group_vars/all/vault.yml

# Editer les secrets
ansible-vault edit ansible/group_vars/all/vault.yml

Variables stockées dans le vault : vault_anthropic_api_key, vault_pg_hermes_password, vault_pg_litellm_password.


Contrainte GPU

La RX 6700XT (gfx1031) n'est pas officiellement supportée par ROCm. La variable suivante est obligatoire dans tous les services GPU :

HSA_OVERRIDE_GFX_VERSION=10.3.0

Elle est gérée automatiquement par le rôle Ansible llama_server.


Roadmap

  • Ansible — storage-01 (gateway, NFS, PostgreSQL, Qdrant, LiteLLM, Hermes)
  • Ansible — gpu-01 (ROCm, llama-server, embeddings)
  • Stack IA opérationnelle (Hermes + Qwen3-8B + mémoire vectorielle)
  • Route statique Freebox
  • Bootstrap cluster Kubernetes (Talos + talhelper)
  • ArgoCD + MetalLB + Traefik
  • Workloads IA en k8s (Open WebUI, n8n, monitoring)
  • Rôle MinIO