From 7cec1eede3c70dd372693f8b9d0cb1b5c2e4e270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Mon, 27 Jan 2025 15:57:36 +0100 Subject: [PATCH] added podman and distrobox --- flake.lock | 24 ++++++------- homeManagerModules/packages/development.nix | 1 + hosts/lenar/default.nix | 1 + .../dev/{docker.nix => containers.nix} | 35 +++++++++++-------- nixosModules/dev/default.nix | 2 +- 5 files changed, 36 insertions(+), 27 deletions(-) rename nixosModules/dev/{docker.nix => containers.nix} (54%) diff --git a/flake.lock b/flake.lock index 4c37ead..1e1b53c 100644 --- a/flake.lock +++ b/flake.lock @@ -52,11 +52,11 @@ ] }, "locked": { - "lastModified": 1737480538, - "narHash": "sha256-rk/cmrvq3In0TegW9qaAxw+5YpJhRWt2p74/6JStrw0=", + "lastModified": 1737762889, + "narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=", "owner": "nix-community", "repo": "home-manager", - "rev": "4481a16d1ac5bff4a77c608cefe08c9b9efe840d", + "rev": "daf04c5950b676f47a794300657f1d3d14c1a120", "type": "github" }, "original": { @@ -67,11 +67,11 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1736952876, - "narHash": "sha256-dJXuLP2CBkIG333L+Rb3e1D0oXHYbl0MgmKPGuvFuAI=", + "lastModified": 1737806078, + "narHash": "sha256-FjgNPBLMCpmwtJT5LiQYkM2lDY+yAmW1ZN1Idx7QeDg=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "b6966d5fa96b0fae99a4da0b5bdfbb0a75f5c058", + "rev": "83cc6a28afc4155fd3fe28274f6b5287f51ed2b6", "type": "github" }, "original": { @@ -82,11 +82,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1737359802, - "narHash": "sha256-utplyRM6pqnN940gfaLFBb9oUCSzkan86IvmkhsVlN8=", + "lastModified": 1737751639, + "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "61c79181e77ef774ab0468b28a24bc2647d498d6", + "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", "type": "github" }, "original": { @@ -98,11 +98,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1737469691, - "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", + "lastModified": 1737885589, + "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", + "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", "type": "github" }, "original": { diff --git a/homeManagerModules/packages/development.nix b/homeManagerModules/packages/development.nix index db65797..1e76200 100644 --- a/homeManagerModules/packages/development.nix +++ b/homeManagerModules/packages/development.nix @@ -25,6 +25,7 @@ in cargo clippy clang + distrobox ]; programs.go = { enable = true; diff --git a/hosts/lenar/default.nix b/hosts/lenar/default.nix index 859108c..71c7731 100644 --- a/hosts/lenar/default.nix +++ b/hosts/lenar/default.nix @@ -47,6 +47,7 @@ enable = true; changeDefaultNetwork = true; }; + podman.enable = true; de.gnome = { enable = true; }; diff --git a/nixosModules/dev/docker.nix b/nixosModules/dev/containers.nix similarity index 54% rename from nixosModules/dev/docker.nix rename to nixosModules/dev/containers.nix index 3393dd1..5237c01 100644 --- a/nixosModules/dev/docker.nix +++ b/nixosModules/dev/containers.nix @@ -4,16 +4,9 @@ ... }: let - cfg = config.krop.docker; -in -{ - options.krop.docker = { - enable = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = "Whether to enable Docker service."; - }; + cfg = config.krop; + docker-cfg = { + enable = lib.mkEnableOption "Whether to enable Docker."; addUserToGroup = lib.mkOption { type = lib.types.bool; default = true; @@ -27,11 +20,20 @@ in description = "Whether to change docker daemon to use different networks."; }; }; + podman-cfg = { + enable = lib.mkEnableOption "Whether to enable Podman."; + }; +in +{ + options.krop = { + docker = docker-cfg; + podman = podman-cfg; + }; - config = lib.mkIf cfg.enable { - virtualisation.docker = { + config = { + virtualisation.docker = lib.mkIf cfg.docker.enable { enable = true; - daemon.settings = lib.mkIf cfg.changeDefaultNetwork { + daemon.settings = lib.mkIf cfg.docker.changeDefaultNetwork { default-address-pools = [ { base = "10.250.0.0/16"; @@ -40,7 +42,12 @@ in ]; }; }; - users.users.krop = lib.mkIf cfg.addUserToGroup { + + virtualisation.podman = lib.mkIf cfg.podman.enable { + enable = true; + }; + + users.users.krop = lib.mkIf (cfg.docker.addUserToGroup && cfg.docker.enable) { extraGroups = [ "docker" ]; }; }; diff --git a/nixosModules/dev/default.nix b/nixosModules/dev/default.nix index 18b9fad..a32e95e 100644 --- a/nixosModules/dev/default.nix +++ b/nixosModules/dev/default.nix @@ -6,6 +6,6 @@ ./python.nix ./ide.nix ./cli.nix - ./docker.nix + ./containers.nix ]; }