Compare commits

..

1 commit

Author SHA1 Message Date
37fd4d6642 fix resource mapping for the shell application 2025-07-25 14:18:02 +02:00
2 changed files with 16 additions and 30 deletions

View file

@ -14,7 +14,6 @@ let
]; ];
}).config; }).config;
nixops4Deployment = inputs.nixops4.modules.nixops4Deployment.default; nixops4Deployment = inputs.nixops4.modules.nixops4Deployment.default;
inherit (inputs.nixops4.lib) mkDeployment;
in in
{ {
test-eval = { test-eval = {
@ -164,37 +163,28 @@ in
}; };
} }
); );
resources = fediversity.applications.hello.resources fediversity.example-configuration.applications.hello;
hello-shell = (resources).resources.hello.login-shell;
environment = fediversity.environments.single-nixos-vm.resources.operator-environment.login-shell;
result = mkDeployment {
modules = [
(fediversity.environments.single-nixos-vm.deployment fediversity.example-configuration)
];
};
in in
rec { rec {
number-of-resources = with lib; length (attrNames fediversity.resources); number-of-resources = with lib; length (attrNames fediversity.resources);
inherit (fediversity) example-configuration; inherit (fediversity) example-configuration;
hello-package-exists = hello-shell.packages ? hello; hello-package-exists =
wheel-required = hello-shell.wheel; (fediversity.applications.hello.resources example-configuration.applications.hello)
wheel-allowed = environment.wheel; .resources.hello.login-shell.packages ? hello;
wheel-required =
(fediversity.applications.hello.resources example-configuration.applications.hello)
.resources.hello.login-shell.wheel;
wheel-allowed =
fediversity.environments.single-nixos-vm.resources.operator-environment.login-shell.wheel;
operator-shell = operator-shell =
let let
operator = (environment.apply resources).operator; resources = fediversity.applications.hello.resources example-configuration.applications.hello;
users = fediversity.environments.single-nixos-vm.resources.operator-environment.login-shell.apply resources;
in in
{ {
inherit (operator) isNormalUser; inherit (users.operator) isNormalUser;
packages = with lib; map (p: "${p.pname}") operator.packages; packages = with lib; map (p: "${p.pname}") users.operator.packages;
extraGroups = operator.extraGroups; extraGroups = users.operator.extraGroups;
}; };
deployment = {
inherit (result) _type;
deploymentFunction = lib.isFunction result.deploymentFunction;
# XXX(@fricklerhandwerk): evaluating the derivation takes a bit, we may want to stop at `isFunction` here
getProviders = lib.isDerivation (result.getProviders { system = builtins.currentSystem; });
};
}; };
expected = { expected = {
number-of-resources = 2; number-of-resources = 2;
@ -210,11 +200,6 @@ in
packages = [ "hello" ]; packages = [ "hello" ];
extraGroups = [ ]; extraGroups = [ ];
}; };
deployment = {
_type = "nixops4Deployment";
deploymentFunction = true;
getProviders = true;
};
}; };
}; };
} }

View file

@ -10,6 +10,7 @@ let
attrsOf attrsOf
attrTag attrTag
deferredModuleWith deferredModuleWith
submoduleWith
submodule submodule
optionType optionType
functionTo functionTo
@ -153,12 +154,12 @@ in
readOnly = true; readOnly = true;
default = { default = {
input-type = application-resources; input-type = application-resources;
output-type = nixops4Deployment; output-type = types.raw;
}; };
}; };
deployment = mkOption { deployment = mkOption {
description = "Generate a deployment from a configuration"; description = "Generate a deployment from a configuration";
type = functionTo (environment.config.resource-mapping.output-type); type = functionTo (submodule environment.config.resource-mapping.output-type);
readOnly = true; readOnly = true;
default = default =
cfg: cfg: