sops-nix ve Impermanence (tmpfs) Boot Race Condition Çözümü

NixOS’ta sops-nix ile impermanence (root on tmpfs) kullanırken, /persist mount edilmeden önce sops secret’larının çözülmeye çalışılması bir “boot race condition” (initrd boot loop) yaratır.

Bunu çözmek için klasik neededForBoot = true bind-mount yaklaşımı yerine, secret’ları doğrudan systemd servis bağımlılıklarıyla yönetmek daha güvenilir bir “Zero Bloat” çözümüdür:

  1. sops yapılandırmasında secret’ları neededForBoot yapmayın.
  2. Secret’a ihtiyaç duyan servise sops-nix servis bağımlılığı ekleyin.
systemd.services."NetworkManager" = {
  wants = [ "sops-nix.service" ];
  after = [ "sops-nix.service" ];
};

Böylece sistem, tmpfs ve persist mount işlemlerini boot aşamasında tamamlar. Ardından sops-nix güvenli (persist edilmiş) ortamda çalışarak secret’ları /run/secrets içine çıkarır ve hedef servisler sorunsuz başlatılır.

EOF.