Chore:_migrate 'machineName' to 'settings.machine.name'
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
clan.core.settings.directory = ./.;
|
||||
clan.core.state.testState.folders = [ "/etc/state" ];
|
||||
environment.etc.state.text = "hello world";
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
self.clanModules.deltachat
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
clan.core.settings.directory = ./.;
|
||||
}
|
||||
];
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
self.clanModules.matrix-synapse
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
clan.core.settings.directory = ./.;
|
||||
|
||||
services.nginx.virtualHosts."matrix.clan.test" = {
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
imports = [
|
||||
common
|
||||
{
|
||||
clan.core.machineName = "peer1";
|
||||
clan.core.settings.machine.name = "peer1";
|
||||
environment.etc = {
|
||||
"mumble-key".source = ./peer_1/peer_1_test_key;
|
||||
"mumble-cert".source = ./peer_1/peer_1_test_cert;
|
||||
@@ -64,7 +64,7 @@
|
||||
imports = [
|
||||
common
|
||||
{
|
||||
clan.core.machineName = "peer2";
|
||||
clan.core.settings.machine.name = "peer2";
|
||||
environment.etc = {
|
||||
"mumble-key".source = ./peer_2/peer_2_test_key;
|
||||
"mumble-cert".source = ./peer_2/peer_2_test_cert;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
sops.age.keyFile = "/etc/privkey.age";
|
||||
|
||||
clan.core.settings.directory = "${./.}";
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
|
||||
networking.hostName = "machine";
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
self.clanModules.syncthing
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "introducer";
|
||||
clan.core.settings.machine.name = "introducer";
|
||||
clan.core.settings.directory = ./.;
|
||||
environment.etc = {
|
||||
"syncthing.pam".source = ./introducer/introducer_test_cert;
|
||||
@@ -53,7 +53,7 @@
|
||||
self.clanModules.syncthing
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "peer1";
|
||||
clan.core.settings.machine.name = "peer1";
|
||||
clan.core.settings.directory = ./.;
|
||||
clan.syncthing.introducer = lib.strings.removeSuffix "\n" (
|
||||
builtins.readFile ./introducer/introducer_device_id
|
||||
@@ -75,7 +75,7 @@
|
||||
self.clanModules.syncthing
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "peer2";
|
||||
clan.core.settings.machine.name = "peer2";
|
||||
clan.core.settings.directory = ./.;
|
||||
clan.syncthing.introducer = lib.strings.removeSuffix "\n" (
|
||||
builtins.readFile ./introducer/introducer_device_id
|
||||
|
||||
@@ -14,7 +14,7 @@ import ../lib/test-base.nix (
|
||||
imports = [
|
||||
self.nixosModules.clanCore
|
||||
{
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
clan.core.settings.directory = ./.;
|
||||
}
|
||||
];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
self.nixosModules.clanCore
|
||||
self.clanModules.zt-tcp-relay
|
||||
{
|
||||
clan.core.machineName = "machine";
|
||||
clan.core.settings.machine.name = "machine";
|
||||
clan.core.settings.directory = ./.;
|
||||
}
|
||||
];
|
||||
|
||||
@@ -9,7 +9,7 @@ in
|
||||
options.clan.borgbackup-static = {
|
||||
excludeMachines = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
example = [ config.clan.core.machineName ];
|
||||
example = [ config.clan.core.settings.machine.name ];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Machines that should not be backuped.
|
||||
@@ -20,7 +20,7 @@ in
|
||||
};
|
||||
includeMachines = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
example = [ config.clan.core.machineName ];
|
||||
example = [ config.clan.core.settings.machine.name ];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Machines that should be backuped.
|
||||
@@ -63,7 +63,7 @@ in
|
||||
in
|
||||
lib.mkIf
|
||||
(builtins.any (
|
||||
target: target == config.clan.core.machineName
|
||||
target: target == config.clan.core.settings.machine.name
|
||||
) config.clan.borgbackup-static.targets)
|
||||
(if (builtins.listToAttrs hosts) != null then builtins.listToAttrs hosts else { });
|
||||
|
||||
@@ -72,12 +72,12 @@ in
|
||||
destinations = builtins.map (d: {
|
||||
name = d;
|
||||
value = {
|
||||
repo = "borg@${d}:/var/lib/borgbackup/${config.clan.core.machineName}";
|
||||
repo = "borg@${d}:/var/lib/borgbackup/${config.clan.core.settings.machine.name}";
|
||||
};
|
||||
}) config.clan.borgbackup-static.targets;
|
||||
in
|
||||
lib.mkIf (builtins.any (
|
||||
target: target == config.clan.core.machineName
|
||||
target: target == config.clan.core.settings.machine.name
|
||||
) config.clan.borgbackup-static.includeMachines) (builtins.listToAttrs destinations);
|
||||
|
||||
config.assertions = [
|
||||
|
||||
@@ -19,7 +19,7 @@ let
|
||||
)
|
||||
) [ ] instances;
|
||||
|
||||
inherit (config.clan.core) machineName;
|
||||
machineName = config.clan.core.settings.machine.name;
|
||||
|
||||
cfg = config.clan.borgbackup;
|
||||
preBackupScript = ''
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
let
|
||||
dir = config.clan.core.settings.directory;
|
||||
machineDir = dir + "/machines/";
|
||||
inherit (config.clan.core) machineName;
|
||||
machineName = config.clan.core.settings.machine.name;
|
||||
|
||||
# Instances might be empty, if the module is not used via the inventory
|
||||
#
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
services.maddy =
|
||||
let
|
||||
domain = "${config.clan.core.machineName}.local";
|
||||
domain = "${config.clan.core.settings.machine.name}.local";
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
|
||||
@@ -39,7 +39,7 @@ in
|
||||
services.murmur = {
|
||||
enable = true;
|
||||
logDays = -1;
|
||||
registerName = config.clan.core.machineName;
|
||||
registerName = config.clan.core.settings.machine.name;
|
||||
openFirewall = true;
|
||||
bonjour = true;
|
||||
sslKey = "/var/lib/murmur/sslKey";
|
||||
@@ -97,8 +97,8 @@ in
|
||||
XDG_DATA_DIR=${mumbleCfgDir}
|
||||
${populate-channels} --ensure-config '${mumbleCfgPath}' --db-location ${mumbleDatabasePath}
|
||||
echo ${machineCertJson}
|
||||
${populate-channels} --machines '${machineJson}' --username ${config.clan.core.machineName} --db-location ${mumbleDatabasePath}
|
||||
${populate-channels} --servers '${machineCertJson}' --username ${config.clan.core.machineName} --db-location ${mumbleDatabasePath} --cert True
|
||||
${populate-channels} --machines '${machineJson}' --username ${config.clan.core.settings.machine.name} --db-location ${mumbleDatabasePath}
|
||||
${populate-channels} --servers '${machineCertJson}' --username ${config.clan.core.settings.machine.name} --db-location ${mumbleDatabasePath} --cert True
|
||||
${pkgs.mumble}/bin/mumble --config ${mumbleCfgPath} "$@"
|
||||
popd
|
||||
'';
|
||||
|
||||
@@ -9,7 +9,7 @@ pkgs.nixosTest {
|
||||
self.inputs.clan-core.nixosModules.clanCore
|
||||
{
|
||||
config = {
|
||||
clan.core.machineName = "peer1";
|
||||
clan.core.settings.machine.name = "peer1";
|
||||
clan.core.settings.directory = ./.;
|
||||
|
||||
documentation.enable = false;
|
||||
@@ -26,7 +26,7 @@ pkgs.nixosTest {
|
||||
{
|
||||
config = {
|
||||
|
||||
clan.core.machineName = "peer2";
|
||||
clan.core.settings.machine.name = "peer2";
|
||||
clan.core.settings.directory = ./.;
|
||||
|
||||
documentation.enable = false;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
config.clan.core.facts.services.root-password.secret.password-hash.path;
|
||||
|
||||
sops.secrets = lib.mkIf (config.clan.core.facts.secretStore == "sops") {
|
||||
"${config.clan.core.machineName}-password-hash".neededForUsers = true;
|
||||
"${config.clan.core.settings.machine.name}-password-hash".neededForUsers = true;
|
||||
};
|
||||
|
||||
clan.core.facts.services.root-password = {
|
||||
|
||||
@@ -69,7 +69,7 @@ in
|
||||
"openssh-ca"
|
||||
];
|
||||
validation = {
|
||||
name = config.clan.core.machineName;
|
||||
name = config.clan.core.settings.machine.name;
|
||||
domains = lib.genAttrs config.clan.sshd.certificate.searchDomains lib.id;
|
||||
};
|
||||
runtimeInputs = [
|
||||
@@ -79,9 +79,9 @@ in
|
||||
script = ''
|
||||
ssh-keygen \
|
||||
-s $in/openssh-ca/id_ed25519 \
|
||||
-I ${config.clan.core.machineName} \
|
||||
-I ${config.clan.core.settings.machine.name} \
|
||||
-h \
|
||||
-n ${lib.concatMapStringsSep "," (d: "${config.clan.core.machineName}.${d}") domains} \
|
||||
-n ${lib.concatMapStringsSep "," (d: "${config.clan.core.settings.machine.name}.${d}") domains} \
|
||||
$in/openssh/ssh.id_ed25519.pub
|
||||
mv $in/openssh/ssh.id_ed25519-cert.pub $out/ssh.id_ed25519-cert.pub
|
||||
'';
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
excludeHosts = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default =
|
||||
if config.clan.static-hosts.topLevelDomain != "" then [ ] else [ config.clan.core.machineName ];
|
||||
if config.clan.static-hosts.topLevelDomain != "" then
|
||||
[ ]
|
||||
else
|
||||
[ config.clan.core.settings.machine.name ];
|
||||
description = "Hosts that should be excluded";
|
||||
};
|
||||
topLevelDomain = lib.mkOption {
|
||||
|
||||
@@ -47,7 +47,7 @@ in
|
||||
options.clan.syncthing-static-peers = {
|
||||
excludeMachines = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
example = [ config.clan.core.machineName ];
|
||||
example = [ config.clan.core.settings.machine.name ];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Machines that should not be added.
|
||||
|
||||
@@ -30,7 +30,7 @@ in
|
||||
};
|
||||
|
||||
sops.secrets = lib.mkIf (config.clan.core.facts.secretStore == "sops") {
|
||||
"${config.clan.core.machineName}-user-password-hash".neededForUsers = true;
|
||||
"${config.clan.core.settings.machine.name}-user-password-hash".neededForUsers = true;
|
||||
};
|
||||
|
||||
clan.core.facts.services.user-password = {
|
||||
|
||||
@@ -27,7 +27,7 @@ in
|
||||
options.clan.zerotier-static-peers = {
|
||||
excludeHosts = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ config.clan.core.machineName ];
|
||||
default = [ config.clan.core.settings.machine.name ];
|
||||
description = "Hosts that should be excluded";
|
||||
};
|
||||
networkIps = lib.mkOption {
|
||||
|
||||
@@ -34,7 +34,7 @@ in
|
||||
{
|
||||
excludeHosts = lib.mkOption {
|
||||
type = listOf str;
|
||||
default = [ config.clan.core.machineName ];
|
||||
default = [ config.clan.core.settings.machine.name ];
|
||||
description = "Hosts that should be excluded";
|
||||
};
|
||||
networkIps = lib.mkOption {
|
||||
@@ -54,7 +54,7 @@ in
|
||||
# TODO: This should also be checked via frontmatter constraints
|
||||
{
|
||||
assertion = builtins.length instanceNames == 1;
|
||||
message = "The zerotier module currently only supports one instance per machine, but found ${builtins.toString instanceNames} on machine ${config.clan.core.machineName}";
|
||||
message = "The zerotier module currently only supports one instance per machine, but found ${builtins.toString instanceNames} on machine ${config.clan.core.settings.machine.name}";
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -82,6 +82,10 @@ let
|
||||
# Settings
|
||||
clan.core.settings = {
|
||||
inherit directory;
|
||||
|
||||
machine = {
|
||||
inherit name;
|
||||
};
|
||||
};
|
||||
# clan.core.settings.directory = directory;
|
||||
# Inherited from clan wide settings
|
||||
@@ -90,7 +94,8 @@ let
|
||||
clan.core.icon = config.inventory.meta.icon;
|
||||
|
||||
# Machine specific settings
|
||||
clan.core.machineName = name;
|
||||
# clan.core.settings.machine.name = name;
|
||||
|
||||
networking.hostName = lib.mkDefault name;
|
||||
|
||||
# speeds up nix commands by using the nixpkgs from the host system (especially useful in VMs)
|
||||
|
||||
@@ -141,8 +141,8 @@
|
||||
'';
|
||||
default =
|
||||
config.clan.core.settings.directory
|
||||
+ "/machines/${config.clan.core.machineName}/facts/${fact.config._module.args.name}";
|
||||
defaultText = lib.literalExpression "\${config.clan.core.settings.directory}/machines/\${config.clan.core.machineName}/facts/\${fact.config._module.args.name}";
|
||||
+ "/machines/${config.clan.core.settings.machine.name}/facts/${fact.config._module.args.name}";
|
||||
defaultText = lib.literalExpression "\${config.clan.core.settings.directory}/machines/\${config.clan.core.settings.machine.name}/facts/\${fact.config._module.args.name}";
|
||||
};
|
||||
value = lib.mkOption {
|
||||
defaultText = lib.literalExpression "\${config.clan.core.settings.directory}/\${fact.config.path}";
|
||||
|
||||
@@ -219,10 +219,10 @@
|
||||
description = ''
|
||||
path to a fact which is generated by the generator
|
||||
'';
|
||||
defaultText = lib.literalExpression "\${config.clan.core.settings.directory}/machines/\${config.clan.core.machineName}/facts/\${fact.config.name}";
|
||||
defaultText = lib.literalExpression "\${config.clan.core.settings.directory}/machines/\${config.clan.core.settings.machine.name}/facts/\${fact.config.name}";
|
||||
default =
|
||||
config.clan.core.settings.directory
|
||||
+ "/machines/${config.clan.core.machineName}/facts/${fact.config.name}";
|
||||
+ "/machines/${config.clan.core.settings.machine.name}/facts/${fact.config.name}";
|
||||
};
|
||||
value = lib.mkOption {
|
||||
description = ''
|
||||
|
||||
@@ -16,7 +16,8 @@ let
|
||||
|
||||
containsMachine =
|
||||
parent: name: type:
|
||||
type == "directory" && containsSymlink "${parent}/${name}/machines/${config.clan.core.machineName}";
|
||||
type == "directory"
|
||||
&& containsSymlink "${parent}/${name}/machines/${config.clan.core.settings.machine.name}";
|
||||
|
||||
containsMachineOrGroups =
|
||||
name: type:
|
||||
@@ -37,7 +38,7 @@ in
|
||||
# Before we generate a secret we cannot know the path yet, so we need to set it to an empty string
|
||||
clan.core.facts.secretPathFunction =
|
||||
secret:
|
||||
config.sops.secrets.${"${config.clan.core.machineName}-${secret.config.name}"}.path
|
||||
config.sops.secrets.${"${config.clan.core.settings.machine.name}-${secret.config.name}"}.path
|
||||
or "/no-such-path";
|
||||
clan.core.facts.secretModule = "clan_cli.facts.secret_modules.sops";
|
||||
clan.core.facts.secretUploadDirectory = lib.mkDefault "/var/lib/sops-nix";
|
||||
@@ -51,7 +52,8 @@ in
|
||||
);
|
||||
|
||||
sops.age.keyFile = lib.mkIf (builtins.pathExists (
|
||||
config.clan.core.settings.directory + "/sops/secrets/${config.clan.core.machineName}-age.key/secret"
|
||||
config.clan.core.settings.directory
|
||||
+ "/sops/secrets/${config.clan.core.settings.machine.name}-age.key/secret"
|
||||
)) (lib.mkDefault "/var/lib/sops-nix/key.txt");
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ in
|
||||
"clanIcon"
|
||||
] "clanIcon has been removed. Use clan.core.icon instead.")
|
||||
|
||||
# The following options have been moved into clan.core.settings
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "clan" "core" "clanDir" ]
|
||||
[
|
||||
@@ -24,6 +25,17 @@ in
|
||||
"directory"
|
||||
]
|
||||
)
|
||||
# The following options have been moved into clan.core.settings.machine
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "clan" "core" "machineName" ]
|
||||
[
|
||||
"clan"
|
||||
"core"
|
||||
"settings"
|
||||
"machine"
|
||||
"name"
|
||||
]
|
||||
)
|
||||
];
|
||||
options.clan.core = {
|
||||
settings = mkOption {
|
||||
@@ -34,17 +46,26 @@ in
|
||||
'';
|
||||
type = types.submodule {
|
||||
options = {
|
||||
directory = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
# documentation.nixos.extraModules = [
|
||||
# ...
|
||||
# clan-core.nixosModules.clanCore
|
||||
# { clan.core.settings.directory = ./path/to/flake; }
|
||||
# ];
|
||||
directory = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
the location of the flake repo, used to calculate the location of facts and secrets
|
||||
'';
|
||||
};
|
||||
machine = mkOption {
|
||||
default = {};
|
||||
type = types.submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "nixos";
|
||||
description = ''
|
||||
the name of the machine
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -79,13 +100,6 @@ in
|
||||
the description of the machine
|
||||
'';
|
||||
};
|
||||
machineName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "nixos";
|
||||
description = ''
|
||||
the name of the machine
|
||||
'';
|
||||
};
|
||||
clanPkgs = lib.mkOption {
|
||||
defaultText = "self.packages.${pkgs.system}";
|
||||
internal = true;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
directory = config.clan.core.settings.directory;
|
||||
inherit (config.clan.core) machineName;
|
||||
machineName = config.clan.core.settings.machine.name;
|
||||
facterJson = "${directory}/machines/${machineName}/facter.json";
|
||||
hwConfig = "${directory}/machines/${machineName}/hardware-configuration.nix";
|
||||
in
|
||||
|
||||
@@ -20,7 +20,7 @@ in
|
||||
else
|
||||
(
|
||||
config.clan.core.settings.directory
|
||||
+ "/vars/per-machine/${config.clan.core.machineName}/${file.config.generatorName}/${file.config.name}/value"
|
||||
+ "/vars/per-machine/${config.clan.core.settings.machine.name}/${file.config.generatorName}/${file.config.name}/value"
|
||||
)
|
||||
);
|
||||
value = mkIf (file.config.secret == false) (
|
||||
|
||||
@@ -10,7 +10,7 @@ let
|
||||
|
||||
inherit (import ./funcs.nix { inherit lib; }) collectFiles;
|
||||
|
||||
inherit (config.clan.core) machineName;
|
||||
machineName = config.clan.core.settings.machine.name;
|
||||
|
||||
secretPath =
|
||||
secret:
|
||||
|
||||
@@ -252,7 +252,7 @@ in
|
||||
clan.core.vm.inspect = {
|
||||
clan_name = config.clan.core.name;
|
||||
machine_icon = config.clan.core.machineIcon or config.clan.core.icon;
|
||||
machine_name = config.clan.core.machineName;
|
||||
machine_name = config.clan.core.settings.machine.name;
|
||||
machine_description = config.clan.core.machineDescription;
|
||||
memory_size = config.clan.virtualisation.memorySize;
|
||||
inherit (config.clan.virtualisation) cores graphics waypipe;
|
||||
|
||||
Reference in New Issue
Block a user