muscari: add disko config, hardcode mikl ssh key

This commit is contained in:
mikl 2026-06-26 00:40:19 +03:00
commit 99b887e97f
6 changed files with 85 additions and 45 deletions

View file

@ -4,7 +4,7 @@
{ config, pkgs, lib, ... }:
{
imports = [
./hardware-configuration.nix
./disk-config.nix
../../modules/users/mikl.nix
../../modules/services/k3s.nix
];
@ -20,6 +20,13 @@
];
};
# Bootloader — extlinux (совместимо с YC BIOS boot)
boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true;
# fileSystems — определяется через disko (см. disk-config.nix)
# Не задаём явно fileSystems."/" чтобы не конфликтовать с disko
# После nixos-anywhere первая установка может быть 26.05,
# потом не трогаем (NixOS convention)
system.stateVersion = "25.11";

View file

@ -0,0 +1,40 @@
# disk-config.nix для muscari — Yandex Cloud VM
# YC VM из образа Debian 12: один диск /dev/vda (virtio scsi), GPT
# Используем disko для переформатирования под NixOS одну EFI + root
#
# NB: extlinux (не grub) — YC использует MBR для legacy BIOS boot
# YC поддерживает и EFI, и BIOS — выбираем extlinux для совместимости с образом
{ lib, ... }:
{
disko.devices = {
disk.disk1 = {
device = lib.mkDefault "/dev/vda";
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
name = "ESP";
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
name = "root";
size = "100%FREE";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
}

View file

@ -1,26 +0,0 @@
# Hardware configuration для muscari (Yandex Cloud VM)
# PLACEHOLDER — будет заменён реальным после создания VM в YC
# (см. ../k3s/NIXOS-SETUP.md, шаг 4-5)
# Временный placeholder чтобы flake.nix компилировался
# После создания VM в YC с Debian 12:
# 1. SSH в VM как debian
# 2. Сгенерировать реальный hardware-config через nixos-generate-config
# 3. Заменить этот файл
# 4. Перезапустить nixos-anywhere
{ ... }:
{
# NixOS ругается без fileSystems и boot.loader, поэтому минимальный placeholder
# ПОМЕНЯТЬ после первого старта VM
fileSystems."/" = {
device = "/dev/vda1";
fsType = "ext4";
};
boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true;
# Для YC: virtio scsi
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" ];
}