two/release_notes/0.1.0.md
GnomeZworc a4f8751638
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
main: doc: add release notes
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 21:15:46 +02:00

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, avec error en cas d'échec d'exécution ; suppression autorisée depuis running et error
  • 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 vxlan ou bridge
  • 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_route par 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.sh avec 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 SHA256SUMS vé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, iptables et ebtables ne 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.