NixOS doesn't seem too eager to load the kernel module for vsock support unless you do tell it via boot.kernelModules = [ "vhost_vsock" ]; (or modprobe it).
This is what happens on workflow runs with the spindle module feshly configured :
Failed to setup VM:
listen for agent on vsock port 10240: listen vsock host(2):10240: bind: cannot assign requested address
NixOS module config, for reference
{
services.tangled.spindle = {
enable = true;
server = {
hostname = "cicd.daroche.me";
owner = "did:web:daroche.me";
listenAddr = "0.0.0.0:6555";
maxJobCount = 2;
queueSize = 50;
tap = {
embed = true;
relayUrl = "wss://pds.daroche.me/xrpc/com.atproto.sync.subscribeRepos";
dbPath = "/var/lib/spindle/tap.db";
bind = "127.0.0.1:6009";
url = "http://127.0.0.1:6009";
};
};
artifactStores.disk.dir = "/var/log/spindle";
pipelines = {
workflowTimeout = "60m";
microvm = {
enableKVM = true;
cgroup = {
enable = true;
pidsMax = 2048;
supervisorMinMiB = 512;
};
limits.workflow = {
memoryMiB = 1024 * 10;
vcpus = 8;
diskMiB = 1024 * 30;
};
debugSsh.enable = true;
};
nixCache = {
readUrls = [ "https://cache.nixos.org" ];
};
};
};
}