Migrate packages module to clanServices
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description = "Define package sets from nixpkgs and install them on one or more machines"
|
description = "Define package sets from nixpkgs and install them on one or more machines"
|
||||||
categories = ["System"]
|
categories = ["System"]
|
||||||
features = [ "inventory" ]
|
features = [ "inventory" "deprecated" ]
|
||||||
---
|
---
|
||||||
|
|||||||
41
clanServices/packages/default.nix
Normal file
41
clanServices/packages/default.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
_class = "clan.service";
|
||||||
|
manifest.name = "clan-core/packages";
|
||||||
|
manifest.description = "Define package sets from nixpkgs and install them on one or more machines";
|
||||||
|
manifest.categories = [
|
||||||
|
"System"
|
||||||
|
];
|
||||||
|
|
||||||
|
roles.default = {
|
||||||
|
interface =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
options.packages = lib.mkOption {
|
||||||
|
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [ ];
|
||||||
|
example = [ "cowsay" ];
|
||||||
|
description = "The packages to install on the machine";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
perInstance =
|
||||||
|
{ settings, ... }:
|
||||||
|
{
|
||||||
|
nixosModule =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
|
||||||
|
environment.systemPackages = map (
|
||||||
|
pName: lib.getAttrFromPath (lib.splitString "." pName) pkgs
|
||||||
|
) settings.packages;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
19
clanServices/packages/flake-module.nix
Normal file
19
clanServices/packages/flake-module.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ lib, self, ... }:
|
||||||
|
{
|
||||||
|
clan.modules = {
|
||||||
|
packages = lib.modules.importApply ./default.nix { };
|
||||||
|
};
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
checks = lib.optionalAttrs (pkgs.stdenv.isLinux) {
|
||||||
|
packages = import ./tests/vm/default.nix {
|
||||||
|
inherit pkgs;
|
||||||
|
clan-core = self;
|
||||||
|
nixosLib = import (self.inputs.nixpkgs + "/nixos/lib") { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
41
clanServices/packages/tests/vm/default.nix
Normal file
41
clanServices/packages/tests/vm/default.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
nixosLib,
|
||||||
|
clan-core,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
nixosLib.runTest (
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
clan-core.modules.nixosVmTest.clanTest
|
||||||
|
];
|
||||||
|
|
||||||
|
hostPkgs = pkgs;
|
||||||
|
|
||||||
|
name = "packages";
|
||||||
|
|
||||||
|
clan = {
|
||||||
|
directory = ./.;
|
||||||
|
modules."@clan/packages" = ../../default.nix;
|
||||||
|
inventory = {
|
||||||
|
machines.server = { };
|
||||||
|
|
||||||
|
instances.default = {
|
||||||
|
module.name = "@clan/packages";
|
||||||
|
roles.default.machines."server".settings = {
|
||||||
|
packages = [ "cbonsai" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.server = { };
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
server.succeed("cbonsai")
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
||||||
4
clanServices/packages/tests/vm/sops/users/admin/key.json
Normal file
4
clanServices/packages/tests/vm/sops/users/admin/key.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
|
||||||
|
"type": "age"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user