Documentation
¶
Overview ¶
Command fcstack boots an end-to-end hpcc Phase 4 stack in a single process so the kernel-build benchmark has a target to dispatch against. It is the supervised peer of bench/kernel-bench-fc.sh.
What it does on startup:
- generates self-signed TLS material for both gRPC servers
- generates an RSA keypair and starts a fake IdP (JWKS + /token OAuth2 password grant) on a loopback HTTP listener
- builds the in-VM hpcc-agent for linux/amd64
- pulls the configured OCI toolchain image and runs the rootfs pipeline (rootfs.Store.PullImage) to materialize a prepared squashfs in --rootfs-dir, with /.hpcc/agent injected
- constructs an in-process scheduler.Scheduler and starts its gRPC server
- constructs an in-process worker.Worker (handler=firecracker, pointing at the firecracker/jailer binaries and the test kernel from --firecracker-bin / --jailer-bin / --kernel), starts its gRPC server, and begins its scheduler-register liaison loop
- writes a client TOML at --client-config pointing at the scheduler with remote.enabled = true, then prints the path of that file on stdout (terminated by a newline) so the orchestrating shell script knows what to set HPCC_CONFIG to
Then it parks on SIGINT/SIGTERM, gracefully shuts the gRPC servers, and exits.
Requires root (jailer's CAP_SYS_ADMIN setup + chroot). The shell wrapper handles that by invoking under `sudo -E`.
Click to show internal directories.
Click to hide internal directories.