From b2c3dba781f718af7f6de947480f29f06da13792 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 21 Sep 2024 16:59:39 +0200 Subject: [PATCH] video8 --- hosts/common/default.nix | 1 + hosts/common/extraServices/default.nix | 5 +++ hosts/common/extraServices/podman.nix | 32 +++++++++++++++++++ hosts/m3-kratos/default.nix | 8 ++++- .../m3-kratos/services/containers/default.nix | 5 +++ hosts/m3-kratos/services/containers/echo.nix | 12 +++++++ hosts/m3-kratos/services/default.nix | 5 +++ 7 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 hosts/common/extraServices/default.nix create mode 100644 hosts/common/extraServices/podman.nix create mode 100644 hosts/m3-kratos/services/containers/default.nix create mode 100644 hosts/m3-kratos/services/containers/echo.nix create mode 100644 hosts/m3-kratos/services/default.nix diff --git a/hosts/common/default.nix b/hosts/common/default.nix index ff8a063..80c4811 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -7,6 +7,7 @@ ... }: { imports = [ + ./extraServices ./users inputs.home-manager.nixosModules.home-manager ]; diff --git a/hosts/common/extraServices/default.nix b/hosts/common/extraServices/default.nix new file mode 100644 index 0000000..db6f8b1 --- /dev/null +++ b/hosts/common/extraServices/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./podman.nix + ]; +} diff --git a/hosts/common/extraServices/podman.nix b/hosts/common/extraServices/podman.nix new file mode 100644 index 0000000..d3fc4f0 --- /dev/null +++ b/hosts/common/extraServices/podman.nix @@ -0,0 +1,32 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.extraServices.podman; +in { + options.extraServices.podman.enable = mkEnableOption "enable podman"; + + config = mkIf cfg.enable { + virtualisation = { + podman = { + enable = true; + dockerCompat = true; + autoPrune = { + enable = true; + dates = "weekly"; + flags = [ + "--filter=until=24h" + "--filter=label!=important" + ]; + }; + defaultNetwork.settings.dns_enabled = true; + }; + }; + environment.systemPackages = with pkgs; [ + podman-compose + ]; + }; +} diff --git a/hosts/m3-kratos/default.nix b/hosts/m3-kratos/default.nix index d9a3a6c..3747fec 100644 --- a/hosts/m3-kratos/default.nix +++ b/hosts/m3-kratos/default.nix @@ -33,5 +33,11 @@ #:w # networking.hostName = "nixos"; # Define your hostname. { - imports = [../common ./configuration.nix]; + imports = [ + ../common + ./configuration.nix + ./services + ]; + + extraServices.podman.enable = true; } diff --git a/hosts/m3-kratos/services/containers/default.nix b/hosts/m3-kratos/services/containers/default.nix new file mode 100644 index 0000000..a4b9d99 --- /dev/null +++ b/hosts/m3-kratos/services/containers/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./echo.nix + ]; +} diff --git a/hosts/m3-kratos/services/containers/echo.nix b/hosts/m3-kratos/services/containers/echo.nix new file mode 100644 index 0000000..1c010f5 --- /dev/null +++ b/hosts/m3-kratos/services/containers/echo.nix @@ -0,0 +1,12 @@ +{lib, ...}: { + virtualisation.oci-containers.containers."echo-http-service" = { + image = "hashicorp/http-echo"; + extraOptions = ["-text='Hello, World!'" "--network=web"]; + ports = ["5678:5678"]; + }; + system.activationScripts.createPodmanNetworkWeb = lib.mkAfter '' + if ! /run/current-system/sw/bin/podman network exists web; then + /run/current-system/sw/bin/podman network create web + fi + ''; +} diff --git a/hosts/m3-kratos/services/default.nix b/hosts/m3-kratos/services/default.nix new file mode 100644 index 0000000..c935f53 --- /dev/null +++ b/hosts/m3-kratos/services/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./containers + ]; +}