File tree Expand file tree Collapse file tree 13 files changed +117
-42
lines changed
Expand file tree Collapse file tree 13 files changed +117
-42
lines changed Original file line number Diff line number Diff line change 3737 {
3838 nixpkgs ,
3939 self ,
40+ disko ,
4041 sops-nix ,
4142 ...
4243 } @inputs :
6566 args :
6667 nixpkgs . lib . nixosSystem {
6768 modules = [
69+ disko . nixosModules . disko
6870 sops-nix . nixosModules . sops
6971 ( import ./modules )
7072 ( import ./users )
71- ] ++ args . modules ;
73+ ]
74+ ++ args . modules ;
7275 specialArgs = {
7376 inherit self inputs outputs ;
74- } // ( args . specialArgs or { } ) ;
77+ }
78+ // ( args . specialArgs or { } ) ;
7579 } ;
7680 in
7781 {
Original file line number Diff line number Diff line change 11{
22 inputs ,
3+ modulesPath ,
34 pkgs ,
45 self ,
56 ...
1011in
1112{
1213 imports = [
13- inputs . disko . nixosModules . disko
14+ ( modulesPath + "/installer/scan/not-detected.nix" )
1415 ./disko.nix
1516 ./hardware-configuration.nix
1617 ../shared
5556 avahi . enable = true ;
5657 bluetooth . enable = true ;
5758 catt . enable = true ;
58- docker . enable = true ;
59+ docker = {
60+ enable = true ;
61+ rootless . enable = false ;
62+ } ;
5963 graphics . enable = true ;
6064 hyprland . enable = true ;
6165 intel . enable = true ;
66+ k3s . enable = true ;
6267 nvidia . enable = true ;
6368 power-management . enable = true ;
6469 sound . enable = true ;
Original file line number Diff line number Diff line change 1010} :
1111
1212{
13- imports = [
14- ( modulesPath + "/installer/scan/not-detected.nix" )
15- ] ;
16-
1713 boot . initrd . availableKernelModules = [
1814 "xhci_pci"
1915 "nvme"
Original file line number Diff line number Diff line change 1- { ... } :
1+ { lib , ... } :
22
3+ with lib ;
34{
45 imports = [
56 ./home-manager.nix
1011
1112 services = {
1213 automatic-timezoned . enable = true ;
13- geoclue2 . geoProviderUrl = "https://beacondb.net/v1/geolocate" ;
14- # keyd - low level key remapping daemon
14+ geoclue2 = {
15+ enableDemoAgent = mkForce true ; # FIXME: see https://github.com/NixOS/nixpkgs/issues/68489#issuecomment-1484030107
16+ geoProviderUrl = "https://beacondb.net/v1/geolocate" ;
17+ } ;
1518 keyd = {
1619 enable = true ;
1720 keyboards . default . settings = {
Original file line number Diff line number Diff line change 1111 settings = {
1212 accept-flake-config = true ;
1313 auto-optimise-store = true ;
14+ download-buffer-size = 524288000 ; # 500MB
1415 experimental-features = [
1516 "nix-command"
1617 "flakes"
Original file line number Diff line number Diff line change 1515in
1616with lib ;
1717{
18- options = {
19- host . docker . enable = mkEnableOption "docker" ;
18+ options . host . docker = with types ; {
19+ enable = mkEnableOption "docker" ;
20+ rootless . enable = mkEnableOption "rootless mode" ;
2021 } ;
2122
2223 config = mkIf cfg . enable {
23- environment = {
24- # TODO: docker should fallback to gnome-keyring by default
25- # systemPackages = with pkgs; [
26- # docker-credential-helpers
27- # ];
28- } ;
29-
30- hardware . nvidia-container-toolkit . enable = true ;
24+ hardware . nvidia-container-toolkit . enable = mkIf config . host . nvidia . enable true ;
3125
3226 virtualisation . docker = {
3327 enable = true ;
3428 autoPrune . enable = true ;
35- rootless = {
29+ daemon . settings = mkIf ( ! config . host . docker . rootless . enable ) {
30+ dns = dnsServers ;
31+ log-driver = "json-file" ; # fix kubernetes logging
32+ } ;
33+ rootless = mkIf config . host . docker . rootless . enable {
3634 enable = true ;
3735 setSocketVariable = true ;
38- daemon . settings . dns = dnsServers ;
36+ daemon . settings = {
37+ dns = dnsServers ;
38+ log-driver = "json-file" ; # fix kubernetes logging
39+ } ;
3940 } ;
4041 storageDriver = mkIf config . host . btrfs . enable "btrfs" ;
4142 } ;
4243
43- security . wrappers = {
44+ networking = {
45+ firewall . allowedTCPPorts = [
46+ 9003 # required so PHP XDebug can reach host machine
47+ ] ;
48+ } ;
49+
50+ security . wrappers = mkIf config . host . docker . rootless . enable {
4451 docker-rootlesskit = {
4552 owner = "root" ;
4653 group = "root" ;
Original file line number Diff line number Diff line change @@ -25,7 +25,6 @@ with lib;
2525 graphics = {
2626 extraPackages = with pkgs ; [
2727 intel-compute-runtime # OpenCL for gen8 and beyond
28- intel-media-sdk # Quick Sync Video for older processors
2928 intel-media-driver # Accelerated Video Playback for Broadwell or newer processors. LIBVA_DRIVER_NAME=iHD
3029 # intel-vaapi-driver # Accelerated Video Playback for older processors. LIBVA_DRIVER_NAME=i965
3130 ] ;
Original file line number Diff line number Diff line change 1+ {
2+ config ,
3+ lib ,
4+ pkgs ,
5+ ...
6+ } :
7+
8+ let
9+ cfg = config . host . k3s ;
10+ in
11+ with lib ;
12+ {
13+ options = {
14+ host . k3s . enable = mkEnableOption "k3s - lightweight Kubernetes distribution" ;
15+ } ;
16+
17+ config = mkIf cfg . enable {
18+ environment . systemPackages = with pkgs ; [
19+ kubernetes-helm
20+ ] ;
21+
22+ environment . etc . "kube/config" = {
23+ source = "/var/lib/rancher/k3s/server/cred/admin.kubeconfig" ;
24+ target = "/home/shorty/.kube/config" ;
25+ mode = "0600" ;
26+ user = "shorty" ;
27+ group = "users" ;
28+ } ;
29+
30+ services . k3s = {
31+ enable = true ;
32+ extraFlags = [
33+ "--disable=traefik"
34+ "--disable=servicelb"
35+ "--docker"
36+ "--write-kubeconfig-mode=0644"
37+ ] ;
38+ role = "server" ;
39+ # autoDeployCharts = {
40+ # traefik = {
41+ # name = "traefik";
42+ # repo = "https://traefik.github.io/charts";
43+ # version = "36.1.0";
44+ # hash = "sha256-APQuQjKEpNwIaNi0RujZS1RcVLuPKC2PEXNLeM8/1F0=";
45+ # values = {
46+ # providers = {
47+ # kubernetesIngress.enabled = false;
48+ # kubernetesGateway.enabled = true;
49+ # };
50+ # gateway.namespacePolicy = "All";
51+ # };
52+ # };
53+ # };
54+ } ;
55+
56+ networking = {
57+ firewall . allowedTCPPorts = [
58+ 6443 # required so pods can reach API server
59+ ] ;
60+ } ;
61+ } ;
62+ }
Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ with lib;
3131 } ;
3232
3333 nvidia = {
34- modesetting . enable = true ;
34+ modesetting . enable = true ; # default since 535
3535 nvidiaSettings = true ;
3636 open = false ;
3737 package = config . boot . kernelPackages . nvidiaPackages . beta ;
You can’t perform that action at this time.
0 commit comments