fix containers

This commit is contained in:
soraefir
2026-05-04 23:43:29 +02:00
parent c779c1760b
commit d626c13572
3 changed files with 79 additions and 111 deletions

View File

@@ -1,27 +1,20 @@
{ config, pkgs, lib, ... }:
let
# enabledContainers = lib.filterAttrs (name: cfg: cfg.enable) config.syscfg.server.containers;
# containerImports = {
# cloud = import ./defs/cloud.nix;
# authentik = import ./defs/authentik.nix;
# };
containerDir = ./defs;
allFiles = builtins.readDir containerDir;
enabledNames = lib.filterAttrs (name: cfg: cfg.enable) config.syscfg.server.containers;
activeContainers = lib.mapAttrs (name: cfg:
let
fileName = "${name}.nix";
in
if builtins.hasAttr fileName allFiles
then import (containerDir + "/${fileName}")
else throw "Container config for '${name}' enabled, but ${containerDir}/${fileName} does not exist!"
) enabledNames;
cfg = config.syscfg.server.containers;
enabledConfigs = lib.filterAttrs (name: c: c.enable) cfg;
containerSetsList = lib.mapAttrsToList (name: containerCfg:
import (./defs + "/${name}.nix") {
inherit config pkgs lib ;
inherit (containerCfg) port special_param;
}
) enabledConfigs;
mergedContainers = lib.attrsets.mergeAttrsList containerSetsList;
in
{
config = lib.mkIf ( enabledNames != {} ) {
config = lib.mkIf ( enabledConfigs != {} ) {
virtualisation.oci-containers = {
backend = "podman";
containers = activeContainers;
containers = mergedContainers;
};
};
}