photoncloud-monorepo/baremetal/vm-cluster
centra d2149b6249 fix(lightningstor): Fix SigV4 canonicalization for AWS S3 auth
- Replace form_urlencoded with RFC 3986 compliant URI encoding
- Implement aws_uri_encode() matching AWS SigV4 spec exactly
- Unreserved chars (A-Z,a-z,0-9,-,_,.,~) not encoded
- All other chars percent-encoded with uppercase hex
- Preserve slashes in paths, encode in query params
- Normalize empty paths to '/' per AWS spec
- Fix test expectations (body hash, HMAC values)
- Add comprehensive SigV4 signature determinism test

This fixes the canonicalization mismatch that caused signature
validation failures in T047. Auth can now be enabled for production.

Refs: T058.S1
2025-12-12 06:23:46 +09:00
..
pxe-server T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
alpine-answers.txt T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
alpine-ssh-setup.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
deploy-all.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node01-dual.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node01-iso.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node01-netboot.sh fix(lightningstor): Fix SigV4 canonicalization for AWS S3 auth 2025-12-12 06:23:46 +09:00
launch-node01.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node02-alpine.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node02-iso.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node02-netboot.sh fix(lightningstor): Fix SigV4 canonicalization for AWS S3 auth 2025-12-12 06:23:46 +09:00
launch-node02.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node03-iso.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-node03-netboot.sh fix(lightningstor): Fix SigV4 canonicalization for AWS S3 auth 2025-12-12 06:23:46 +09:00
launch-node03.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-pxe-server-install.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-pxe-server-iso.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
launch-pxe-server.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
netboot-initrd T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
netboot-kernel T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
pxe-server-setup.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
README.md T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00
validate-cluster.sh T036: Add VM cluster deployment configs for nixos-anywhere 2025-12-11 09:59:19 +09:00

QEMU Socket Networking VM Cluster

Architecture

Topology: 4 QEMU VMs connected via multicast socket networking (230.0.0.1:1234)

VMs:

  1. pxe-server (192.168.100.1) - Provides DHCP/TFTP/HTTP services
  2. node01 (192.168.100.11) - Cluster node
  3. node02 (192.168.100.12) - Cluster node
  4. node03 (192.168.100.13) - Cluster node

Network: All VMs share L2 segment via QEMU multicast socket (no root privileges required)

Files

  • node01.qcow2, node02.qcow2, node03.qcow2 - 100GB cluster node disks
  • pxe-server.qcow2 - 20GB PXE server disk
  • launch-pxe-server.sh - PXE server startup script
  • launch-node01.sh, launch-node02.sh, launch-node03.sh - Node startup scripts
  • pxe-server/ - PXE server configuration files

MACs

  • pxe-server: 52:54:00:00:00:01
  • node01: 52:54:00:00:01:01
  • node02: 52:54:00:00:01:02
  • node03: 52:54:00:00:01:03

Provisioning Flow

  1. Start PXE server VM (Alpine Linux with dnsmasq)
  2. Configure DHCP/TFTP/HTTP services
  3. Deploy NixOS netboot artifacts
  4. Start node VMs with PXE boot enabled
  5. Nodes PXE boot and provision via nixos-anywhere