All checks were successful
Release Pipeline / set-release-target (push) Successful in 2s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 4s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 4s
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 4s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / checksums (push) Successful in 5s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m30s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2.4 KiB
2.4 KiB
Première version stable de syonad/two, orchestrateur réseau et VM mono-nœud.
Fonctionnalités
API et cycle de vie
- API HTTP
/vpcs,/subnets,/vms: création et suppression asynchrones (202 + état en base) - États unifiés pour les trois types de ressource :
creating→running→deleting→deleted, avecerroren cas d'échec d'exécution ; suppression autorisée depuisrunningeterror - Migration au démarrage de l'agent : toute ressource restée dans un état transitoire est
basculée en
error, la file de travail étant en mémoire
Réseau
- VPC isolés par network namespace, subnets en mode
vxlanoubridge - DHCP par subnet via instances
dnsmasq@dédiées, entrées ip→mac en base - Route par défaut et route du VPC distribuées par DHCP (
default_routepar subnet) - Isolation du DHCP par ebtables, redirection du service de metadata par iptables
Machines virtuelles
- Démarrage QEMU/KVM avec plusieurs disques et ordre de démarrage explicite
- Amorçage UEFI optionnel (OVMF), avec magasin de variables par VM
- Serveur de metadata cloud-init par VM (
metadata@), sans base de données dans le processus - Les VMs survivent à l'arrêt de l'agent : QEMU est lancé hors de son cgroup via
systemd-run
Exploitation
- Métriques Prometheus : nombre de VPC, subnets et VMs par état
deploy.shavec profils d'host (kvm), préparation système déléguée àbootstrap_kvm.sh- Units systemd et scripts publiés comme assets de release, avec manifeste
SHA256SUMSvérifié au déploiement
Périmètre et limites connues
- Un seul nœud : pas d'ordonnanceur ni de placement entre hyperviseurs
- Pas de rollback en cas d'échec partiel d'une création — les ressources réseau orphelines ne sont pas nettoyées automatiquement
- API destinée à un appelant logiciel : la validation de cohérence des entrées (CIDR, VXLAN ID, format des noms) est à la charge de l'appelant
- Les packages
internal/netns,netif,qemu,vm,iptablesetebtablesne fonctionnent que sous Linux
Installation
curl -O https://git.g3e.fr/syonad/two/raw/branch/main/scripts/deploy.sh
bash ./deploy.sh -t 0.1.0 -i # -i : préparation de l'host (paquets, kernel, bridges)
deploy.sh se vérifie lui-même contre la branche et télécharge les binaires, les units et
le manifeste depuis cette release.