seon 840b14c20c fix(harness-scenarios): V-G1/X-M2 inject with tc qdisc replace instead of add
2026-10-18 m2 두 번째 런에서 X-M2 복원 SSH 가 connection reset 으로 실패해 legacy-p787 에
netem loss 50% qdisc 가 남았고, 이후 14런의 V-G1·X-M2 주입이 "Exclusivity flag on" 으로
전부 실패했다. replace 는 root qdisc 가 남아 있어도 덮어쓰므로 주입이 막히지 않는다
(복원은 그대로 del). 남은 qdisc 는 수동으로 제거했다(16:06 UTC).
2026-10-19 01:07:38 +09:00

selfheal-lab-gitops

GitOps and configuration repository for the self-healing verification lab (VM + container mixed environment). Infrastructure lives in seon-labs/selfheal-lab-terraform; this repository holds everything that runs on top of it.

This repository is public on purpose: every EC2 node and GCE VM clones it anonymously at first boot (cloud-init / startup script), and MIG instances are recreated by autohealing without an operator. Never commit secrets here; values live in GCP Secret Manager and are fetched at runtime.

Path Owner Filled in
bootstrap/kubeadm/ operator, run once WP-07: containerd/kubeadm init+join, flannel, Argo CD install, root-app
argocd/root-app.yaml Argo CD app-of-apps root WP-07
apps/ child Argo CD Applications WP-14
workloads/{demo-app,ingress-nginx,chaos-mesh,alloy}/ Argo CD WP-14, WP-15
vm/<role>/apply.sh GCE startup script and make vm-sync WP-08..12

vm/<role> matches the role metadata each VM gets from Terraform: observability, harness, ai-env, postgres-primary, postgres-replica, legacy-api. The startup script runs vm/<role>/apply.sh when it exists and is executable; apply.sh must be idempotent because make vm-sync re-runs it.

S
Description
Self-healing lab GitOps: Argo CD app-of-apps, k8s workloads, VM compose/scripts, kubeadm bootstrap (public: nodes and VMs clone it anonymously at boot)
Readme
199 KiB
0 Stars 2 Watchers 0 Forks
Languages
Shell 95.3%
JavaScript 4.6%