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:
sopsyapılandırmasında secret’larıneededForBootyapmayın.- Secret’a ihtiyaç duyan servise
sops-nixservis 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.