e44f3aca96
f-46: dhcpd: add the decision engine and the persisted state #46
...
Store porte la configuration du subnet et les réservations par MAC, et les
persiste dans un .state écrit de façon atomique (temp + chmod 0600 + rename).
Chaque écriture remplace le fichier, donc un chmod externe est effacé.
Les snapshots sont à la fois la forme sérialisée et la forme d'entrée des
ordres : validation au moment où l'agent pousse, pas quand un guest demande une
adresse. Les hôtes sont triés par MAC, base du digest de L3.
Handle rend (nil, nil) — le silence est un retour normal — pour un type de
message non traité, un subnet non configuré ou une MAC inconnue. La MAC est
normalisée à l'écriture comme au chargement.
58 tests, -race propre, dix mutations toutes détectées.
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-09-05 23:17:58 +02:00
8658acfe08
f-46: dhcpd: build dhcp replies over insomniacslk/dhcp #46
...
internal/dhcpd décide quelles options partent vers quelle MAC, sans I/O ni
état. L'encodage RFC 3442 de l'option 121 est délégué à la bibliothèque, qui le
teste elle-même.
L'option 3 est omise plutôt qu'envoyée vide : la dhcp-option=3 nue n'existait
que pour empêcher dnsmasq d'annoncer sa propre adresse. La route par défaut est
conditionnée au subnet (DefaultGateway) et à l'interface (Host.DefaultRoute),
ce qui remplace le mécanisme de tags.
24 tests plus un fuzz sur BuildReply. Les assertions d'encodage sont validées
par mutation.
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-09-05 23:17:58 +02:00
26d5805747
f-33: vm: start vms with multiple nic
...
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / set-release-target (push) Successful in 2s
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 / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m36s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 23:12:55 +02:00
0237acba81
f-33: net: add multi net in dispatch et vms #33
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 22:48:13 +02:00
1ec1d44c1a
f-33: mise en place d'un nouveau system de reservation #33
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 22:37:07 +02:00
46596f8142
f-34: route: add default gateway full gestion
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 20:18:09 +02:00
d15454d35b
f-34: route: add test for route metadata #34
...
Release Pipeline / set-release-target (push) Successful in 1s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 3s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 3s
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 3s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 3s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m29s
Release Pipeline / checksums (push) Successful in 4s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:57:30 +02:00
a2170fff08
f-34: route: fix missing route for metadata #34
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:57:03 +02:00
e2fbb5fb7a
f-34: metadata: update api #34
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:27:36 +02:00
ae81158b2d
f-34: metadata: add metadata in dispatcher #34
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:20:13 +02:00
883d628bf6
f-34: metadata: update metadata gen files #34
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:14:15 +02:00
ea9559c784
f-43: test: fix default route create for nothing #43
...
Release Pipeline / set-release-target (push) Successful in 1s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 3s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 3s
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 3s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 3s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m29s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 21:19:50 +02:00
52d214404d
f-43: dhcp: fix default route create for nothing #43
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 21:19:39 +02:00
cdbb5012b1
f-29: stop: add a proper stop
...
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 4s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / set-release-target (push) Successful in 2s
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 / 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>
2026-08-18 00:41:01 +02:00
d8ece59d1c
f-29: watchdog: change error messages #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-18 00:05:04 +02:00
2ce7ebafe7
f-29: watchdog: add specific config #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:52:48 +02:00
a1df88a1f2
f-29: watchdog: create runner #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:48:45 +02:00
cb812c97ab
f-29: watchdog: add checkvms #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:39:31 +02:00
0fa84b8320
f-29: watchdog: add checksubnet #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:39:25 +02:00
ea60c0db54
f-29: watchdog: add checkvpc #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:39:07 +02:00
f05c4e1fce
f-29: watchdog: add notify #29
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-17 23:38:41 +02:00
8d04472ec1
f-37: prometheus: add vms
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m35s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 8s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-14 01:00:00 +02:00
c89e3f64de
f-37: add systemd-run
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-14 00:27:25 +02:00
2150530ef2
f-37: periph: add final touch #37
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m35s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 7s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:55:53 +02:00
fef04b10fc
f-37: migration: add state change at boot #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:43:16 +02:00
aa6611249b
f-37: test: add test for state validation
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:39:00 +02:00
576166f3f1
f-37: code: use state and check state #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:39:00 +02:00
4b5793806b
f-37: code: add state lib in vm, subnet and vpc #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:32:00 +02:00
78363194bf
f-37: add test for error state #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:13:25 +02:00
fa72b6cd47
f-37: code: add state error in return nil #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:12:32 +02:00
3edc319969
f-37: add new lib for state handle #37
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:02:36 +02:00
5d157ec64d
f-36: qemu: fix pci.0 addr
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 2m4s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m30s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 9s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-10 22:14:33 +02:00
fbe6496e1e
f-36: disk: check disk with vdX is only one
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-10 22:13:48 +02:00
4ab880a32d
f-32: vm: fix incomplete stop vm
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m36s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 2m19s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 11s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 19:02:31 +02:00
c3f26836cd
f-32: fix: update boot order
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m34s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 16:47:49 +02:00
9111045417
f-32: test: add test for vms
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 3m33s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 16:18:53 +02:00
a0637d827a
f-32: syntax: fix duplicated code
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 16:13:11 +02:00
89899005d9
f-32: disk: add disk in qemu start
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 15:56:45 +02:00
85c8c4e590
f-32: disk: add boot multidisk handle
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 15:44:48 +02:00
2a5473eb22
f-28: qemu: execute with uefi vars
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-23 22:30:32 +02:00
ec613996a0
f-28: vms: Add uefi param
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-23 22:28:19 +02:00
325f1acff5
f-28: api: add uefi params
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-23 22:26:21 +02:00
c602725de9
f-28: vm: add param in config file
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-23 22:22:40 +02:00
732a293857
f-28: fix: debug somme minor errors
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-21 00:15:45 +02:00
b41b4f2518
f-28: generate metadata_port automatically at vm creation
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:28:18 +02:00
1b56a42627
f-28: refactor dhcp config to use VPCRoute and DefaultGateway
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:52 +02:00
c0caf1a24c
f-28: add GetDefaultGateway to netif
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:45 +02:00
bb5698fdda
f-28: add subnet default_route field
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:41 +02:00
76a840b80a
f-28: add vpc cidr field
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:36 +02:00
2504b435a3
f-28: fix: dhcp do not emit local default route
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:29 +02:00