- Nix 100%
| docs | ||
| hosts | ||
| lib | ||
| modules | ||
| pkgs | ||
| secrets | ||
| tests | ||
| .envrc | ||
| .gitignore | ||
| .nixos-test-history | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| shell.nix | ||
k8s_nixos
Configuration d'un cluster Kubernetes NixOS géré avec flakes, agenix et comin.
Prérequis
Entrer dans le devShell pour avoir accès aux outils :
nix develop
Certificats
Générer les certificats
Génère les certificats dans secrets/tmp/. Les certificats existants sont conservés sauf si --force est spécifié.
nix run .#gen-certs
nix run .#gen-certs -- --force # régénère tout
Chiffrer les certificats
Chiffre les .pem de secrets/tmp/ vers secrets/ en utilisant les clefs définies dans secrets/secrets.nix. Les fichiers déjà chiffrés sont conservés sauf si --force est spécifié.
nix run .#agenix-certs -- encrypt
nix run .#agenix-certs -- encrypt --force # rechiffre tout
Déchiffrer les certificats
Déchiffre les .age de secrets/ vers secrets/tmp/.
nix run .#agenix-certs -- decrypt -i ~/.ssh/id_rsa
Lister les secrets déclarés
nix run .#agenix-certs -- list
Image Proxmox
Build l'image VMA pour un host donné :
nix build .#nixosConfigurations.controlplane1.config.system.build.VMA
L'image générée est disponible dans ./result. L'uploader et la restaurer sur Proxmox via :
scp ./result/vzdump-qemu-controlplane1.vma.zst <proxmox-host>:/var/tmp/
qmrestore /var/tmp/<fichier>.vma <vmid> --storage local-lvm --unique
qm resize <vmid> virtio0 40G
Longhorn — Stockage distribué
Longhorn est déployé automatiquement sur le cluster. Chaque nœud doit disposer d'un second disque virtuel (/dev/vdb) dédié aux données.
Ajouter le disque dédié dans Proxmox
Après l'import de chaque VM, ajouter un disque de données dédié à Longhorn :
qm set <vmid> --virtio1 <storage>:50,cache=writethrough,discard=on,iothread=1
Exemple avec local-lvm :
qm set 101 --virtio1 local-lvm:50,cache=writethrough,discard=on,iothread=1
qm set 102 --virtio1 local-lvm:50,cache=writethrough,discard=on,iothread=1
qm set 103 --virtio1 local-lvm:50,cache=writethrough,discard=on,iothread=1
Le disque sera automatiquement formaté en ext4 et monté sur /var/lib/longhorn au premier boot.