{ config, lib, pkgs, ... }: let inherit (config.host) username; in { options.k8s.talos = { enable = lib.mkOption { default = false; type = lib.types.bool; }; platform = lib.mkOption { default = "qemu"; type = lib.types.enum [ "docker" "qemu" ]; }; }; config = lib.mkIf config.k8s.talos.enable ( lib.mkMerge [ (lib.mkIf (config.k8s.talos.platform == "docker") { docker.enable = true; assertions = [ { assertion = !config.docker.rootless; message = "talos in docker needs 'docker.rootless = false;'"; } ]; }) (lib.mkIf (config.k8s.talos.platform == "qemu") { users.users.${username}.extraGroups = [ "kvm" ]; environment.systemPackages = [ pkgs.qemu ]; }) ] ); }