From a1e8eb758a0116dcbad95e5709f87df912da13e5 Mon Sep 17 00:00:00 2001 From: Harivansh Rathi Date: Sat, 11 Apr 2026 14:57:14 +0000 Subject: [PATCH] fix: put mmds data after config-file boot for guest personalization --- internal/firecracker/runtime.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/firecracker/runtime.go b/internal/firecracker/runtime.go index 63548fd..d9698c9 100644 --- a/internal/firecracker/runtime.go +++ b/internal/firecracker/runtime.go @@ -137,6 +137,18 @@ func (r *Runtime) Boot(ctx context.Context, spec MachineSpec, usedNetworks []Net } socketPath := procSocketPath(firecrackerPID) + if spec.MMDS != nil && spec.MMDS.Data != nil { + client := newAPIClient(socketPath) + if err := waitForSocket(ctx, client, socketPath); err != nil { + cleanup(network, paths, command, firecrackerPID) + return nil, fmt.Errorf("wait for firecracker socket: %w", err) + } + if err := client.PutMMDS(ctx, spec.MMDS.Data); err != nil { + cleanup(network, paths, command, firecrackerPID) + return nil, fmt.Errorf("put mmds data: %w", err) + } + } + now := time.Now().UTC() state := MachineState{ ID: spec.ID,