- netboot-base.nix with SSH key auth - Launch scripts for node01/02/03 - Node configuration.nix and disko.nix - Nix modules for first-boot automation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
70 lines
2 KiB
Nix
70 lines
2 KiB
Nix
# NixOS VM Configuration - All PlasmaCloud Services
|
|
# T035: QEMU VM Integration Test
|
|
#
|
|
# This configuration creates a QEMU VM with all 12 PlasmaCloud services
|
|
# for integration testing and MVP-Alpha validation.
|
|
|
|
{ config, pkgs, modulesPath, lib, ... }:
|
|
|
|
{
|
|
imports = [
|
|
# CRITICAL: Import qemu-vm module for virtualisation options
|
|
(modulesPath + "/virtualisation/qemu-vm.nix")
|
|
|
|
# PlasmaCloud service modules
|
|
../../../nix/modules/chainfire.nix
|
|
../../../nix/modules/flaredb.nix
|
|
../../../nix/modules/iam.nix
|
|
../../../nix/modules/plasmavmc.nix
|
|
../../../nix/modules/novanet.nix
|
|
../../../nix/modules/flashdns.nix
|
|
../../../nix/modules/fiberlb.nix
|
|
../../../nix/modules/lightningstor.nix
|
|
../../../nix/modules/k8shost.nix
|
|
../../../nix/modules/metricstor.nix
|
|
];
|
|
|
|
# VM configuration (these options now exist due to qemu-vm.nix import)
|
|
virtualisation = {
|
|
memorySize = 4096; # 4GB RAM
|
|
diskSize = 10240; # 10GB disk
|
|
forwardPorts = [
|
|
{ from = "host"; host.port = 2222; guest.port = 22; }
|
|
{ from = "host"; host.port = 8080; guest.port = 8080; }
|
|
];
|
|
};
|
|
|
|
# Enable all PlasmaCloud services
|
|
services.chainfire.enable = true;
|
|
services.flaredb.enable = true;
|
|
services.iam.enable = true;
|
|
services.plasmavmc.enable = true;
|
|
services.novanet.enable = true;
|
|
services.flashdns.enable = true;
|
|
services.fiberlb.enable = true;
|
|
services.lightningstor.enable = true;
|
|
services.k8shost.enable = true;
|
|
services.metricstor.enable = true;
|
|
|
|
# Basic system config
|
|
networking.hostName = "plasma-test-vm";
|
|
networking.firewall.enable = false;
|
|
services.openssh.enable = true;
|
|
users.users.root.initialPassword = "test";
|
|
|
|
# Boot config for VM
|
|
boot.loader.grub.device = "nodev";
|
|
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
|
|
|
# System state version
|
|
system.stateVersion = "24.05";
|
|
|
|
# Essential packages
|
|
environment.systemPackages = with pkgs; [
|
|
curl
|
|
jq
|
|
grpcurl
|
|
htop
|
|
vim
|
|
];
|
|
}
|