main: doc: add release notes
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>
This commit is contained in:
GnomeZworc 2026-08-17 21:15:46 +02:00
commit a4f8751638
Signed by: nicolas.boufideline
GPG key ID: 4406BBBF8845D632

52
release_notes/0.1.0.md Normal file
View file

@ -0,0 +1,52 @@
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.