photoncloud-monorepo/docs/por/T035-vm-integration-test/vm-all-services.nix
centra 5c6eb04a46 T036: Add VM cluster deployment configs for nixos-anywhere
- 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>
2025-12-11 09:59:19 +09:00

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
];
}