Revert "Merge pull request 'chore(buildClan): move machineClass option into inventory.machines submodule' (#3259) from hsjobeki/clan-core:buildclan-cleanup into main"
This reverts commit325a794d12, reversing changes made toafbae04aa6.
This commit is contained in:
@@ -5,9 +5,6 @@
|
||||
"description": "A nice thing",
|
||||
"icon": "./path/to/icon.png",
|
||||
"tags": ["1", "2", "3"]
|
||||
},
|
||||
"test-darwin-machine": {
|
||||
"machineClass": "darwin"
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
|
||||
@@ -164,18 +164,16 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
allMachines = inventoryClass.machines;
|
||||
allMachines = inventory.machines or { } // machines;
|
||||
|
||||
machineClasses = lib.mapAttrs (
|
||||
name: _: inventory.machines.${name}.machineClass or "nixos"
|
||||
) allMachines;
|
||||
machineClass = lib.mapAttrs (name: _: inventory.machineClass.${name} or "nixos") allMachines;
|
||||
|
||||
configurations = lib.mapAttrs (
|
||||
name: _: moduleSystemConstructor.${machineClasses.${name}} { inherit name; }
|
||||
name: _: moduleSystemConstructor.${machineClass.${name}} { inherit name; }
|
||||
) allMachines;
|
||||
|
||||
nixosConfigurations = lib.filterAttrs (name: _: machineClasses.${name} == "nixos") configurations;
|
||||
darwinConfigurations = lib.filterAttrs (name: _: machineClasses.${name} == "darwin") configurations;
|
||||
nixosConfigurations = lib.filterAttrs (name: _: machineClass.${name} == "nixos") configurations;
|
||||
darwinConfigurations = lib.filterAttrs (name: _: machineClass.${name} == "darwin") configurations;
|
||||
|
||||
# This instantiates NixOS for each system that we support:
|
||||
# configPerSystem = <system>.<machine>.nixosConfiguration
|
||||
@@ -186,7 +184,7 @@ let
|
||||
lib.nameValuePair system (
|
||||
lib.mapAttrs (
|
||||
name: _:
|
||||
moduleSystemConstructor.${machineClasses.${name}} {
|
||||
moduleSystemConstructor.${machineClass.${name}} {
|
||||
inherit name system;
|
||||
pkgs = pkgsFor.${system};
|
||||
}
|
||||
@@ -201,7 +199,7 @@ let
|
||||
lib.nameValuePair system (
|
||||
lib.mapAttrs (
|
||||
name: _: args:
|
||||
moduleSystemConstructor.${machineClasses.${name}} (
|
||||
moduleSystemConstructor.${machineClass.${name}} (
|
||||
args
|
||||
// {
|
||||
inherit name system;
|
||||
|
||||
@@ -210,16 +210,14 @@ in
|
||||
meta.name = "test";
|
||||
|
||||
machines.machine1 = { };
|
||||
inventory.machines.machine2 = {
|
||||
machineClass = "darwin";
|
||||
};
|
||||
inventory.machines.machine3 = {
|
||||
machineClass = "nixos";
|
||||
};
|
||||
machines.machine2 = { };
|
||||
machines.machine3 = { };
|
||||
|
||||
inventory.machineClass.machine2 = "darwin";
|
||||
inventory.machineClass.machine3 = "nixos";
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit result;
|
||||
expr = {
|
||||
nixos = builtins.attrNames result.nixosConfigurations;
|
||||
darwin = builtins.attrNames result.darwinConfigurations;
|
||||
@@ -243,6 +241,7 @@ in
|
||||
meta.name = "test";
|
||||
|
||||
machines.machine1.non_existent_option = throw "eval error";
|
||||
inventory.machines.machine1.other_non_existent_option = throw "different eval error";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
@@ -243,19 +243,6 @@ in
|
||||
options = {
|
||||
inherit (metaOptionsWith name) name description icon;
|
||||
|
||||
machineClass = lib.mkOption {
|
||||
default = "nixos";
|
||||
type = types.enum [
|
||||
"nixos"
|
||||
"darwin"
|
||||
];
|
||||
description = ''
|
||||
The module system that should be used to construct the machine
|
||||
|
||||
Set this to `darwin` for macOS machines
|
||||
'';
|
||||
};
|
||||
|
||||
tags = lib.mkOption {
|
||||
description = ''
|
||||
List of tags for the machine.
|
||||
@@ -291,6 +278,21 @@ in
|
||||
);
|
||||
};
|
||||
|
||||
machineClass = lib.mkOption {
|
||||
default = { };
|
||||
type = types.attrsOf (
|
||||
types.enum [
|
||||
"nixos"
|
||||
"darwin"
|
||||
]
|
||||
);
|
||||
description = ''
|
||||
The module system that should be used to construct the machine
|
||||
|
||||
Set this to `darwin` for macOS machines
|
||||
'';
|
||||
};
|
||||
|
||||
instances = lib.mkOption {
|
||||
# Keep as internal until all de-/serialization issues are resolved
|
||||
visible = false;
|
||||
@@ -364,7 +366,6 @@ in
|
||||
else
|
||||
lib.warn "Inventory.instances and related features are still under development. Please use with care." v;
|
||||
};
|
||||
|
||||
services = lib.mkOption {
|
||||
description = ''
|
||||
Services of the inventory.
|
||||
|
||||
@@ -16,7 +16,6 @@ class Machine(TypedDict):
|
||||
deploy: NotRequired[MachineDeploy]
|
||||
description: NotRequired[str]
|
||||
icon: NotRequired[str]
|
||||
machineClass: NotRequired[Literal["nixos", "darwin"]]
|
||||
name: NotRequired[str]
|
||||
tags: NotRequired[list[str]]
|
||||
|
||||
@@ -30,6 +29,7 @@ Service = dict[str, Any]
|
||||
|
||||
|
||||
class Inventory(TypedDict):
|
||||
machineClass: NotRequired[dict[str, Any]]
|
||||
machines: NotRequired[dict[str, Machine]]
|
||||
meta: NotRequired[Meta]
|
||||
modules: NotRequired[dict[str, Any]]
|
||||
|
||||
Reference in New Issue
Block a user