Skip to content

iacker/Harness-Cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Harness-Cluster

Harness-Cluster

Un petit lab qui fait tourner des harnesses d'agents IA en continu, sur du vieux hardware recyclé, géré en GitOps avec Flux CD.

L'idée

Plutôt que de lancer mes agents à la main, je les fais vivre 24/7 sur un cluster k3s de 2 mini-PC, et tout est décrit dans ce repo. Flux se charge de synchroniser le cluster avec le Git. Je pousse, ça se déploie.

Le cluster

  • node1, k3s server / control-plane (Tailscale 100.x.y.1)
  • node2, k3s agent (Tailscale 100.x.y.2)
  • 2 mini-PC Celeron G3900T, 2 vCPU et 4 Go chacun. RĂ©seau cluster sur Tailscale.

Ce qui tourne dessus

clusters/k3s-lab/
  flux-system/     composants Flux (générés par flux bootstrap)
  apps.yaml        Flux Kustomization vers ./apps
  kepler.yaml      Flux Kustomization vers ./apps/kepler
  monitoring.yaml  Flux Kustomization vers ./apps/monitoring
apps/
  kustomization.yaml
  t3mp3st/         war room offensive-security (Node.js), web sur 3333
  hermes-agent/    agent self-improving généraliste (Python), web sur 9119
  kepler/          mesure de conso énergie par pod
  monitoring/      Grafana et Prometheus

Les harnesses routent le LLM via OpenRouter vers deepseek/deepseek-v4-pro.

Les secrets restent hors du Git

Ce repo est public, donc aucune clé API n'est commitée. On les crée à la main.

kubectl create secret generic t3mp3st-secrets -n t3mp3st \
  --from-literal=OPENROUTER_API_KEY=sk-or-...
kubectl create secret generic hermes-secrets  -n hermes  \
  --from-literal=OPENROUTER_API_KEY=sk-or-...

Accéder aux interfaces

Tout passe par kubectl port-forward, l'ingress est en deny-all via NetworkPolicy.

kubectl -n t3mp3st port-forward svc/t3mp3st    3333:3333   # http://127.0.0.1:3333/ui/
kubectl -n hermes  port-forward deploy/hermes  9119:9119   # http://127.0.0.1:9119

Mettre en route depuis zéro

Il faut déjà un cluster k3s et le CLI Flux.

flux bootstrap github \
  --owner=iacker --repository=Harness-Cluster \
  --branch=main --path=clusters/k3s-lab

Ensuite on crée les secrets ci-dessus, et Flux déploie le reste tout seul.

Opérations Flux au quotidien

flux get kustomizations                            # état de la synchro
flux reconcile kustomization apps --with-source    # forcer une synchro

About

Kubernetes GitOps cluster with specialised harnesses

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors