+4
-1
@@ -42,8 +42,11 @@ inputs.colmena.lib.makeHive (
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
outputs = self;
|
||||
dotsPath = ../dots;
|
||||
myUtils = utils;
|
||||
paths = {
|
||||
dots = ../dots;
|
||||
hosts = ../hosts;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -75,7 +75,10 @@
|
||||
myUtils = import ./utils { inherit lib; };
|
||||
hostDirNames = myUtils.dirNames ./hosts;
|
||||
system = "x86_64-linux";
|
||||
dotsPath = ./dots;
|
||||
paths = {
|
||||
dots = ./dots;
|
||||
hosts = ./hosts;
|
||||
};
|
||||
gitHooks = import ./git-hooks.nix {
|
||||
inherit nixpkgs git-hooks system;
|
||||
src = ./.;
|
||||
@@ -97,7 +100,7 @@
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
paths
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
@@ -117,7 +120,7 @@
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
paths
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
@@ -135,7 +138,7 @@
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
paths
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
@@ -154,7 +157,7 @@
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
paths
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
|
||||
@@ -4,22 +4,22 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
myUtils,
|
||||
paths,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.deploy;
|
||||
|
||||
hostDir = ../../../hosts;
|
||||
hostNames = myUtils.dirNames hostDir;
|
||||
hostNames = myUtils.dirNames paths.hosts;
|
||||
hostsWithKeys = lib.filter (
|
||||
hostname: builtins.pathExists (hostDir + "/${hostname}/ssh_host.pub")
|
||||
hostname: builtins.pathExists (paths.hosts + "/${hostname}/ssh_host.pub")
|
||||
) hostNames;
|
||||
|
||||
colmena = inputs.colmena.packages.${pkgs.stdenv.hostPlatform.system}.colmena;
|
||||
deployRs = inputs.deploy-rs.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
|
||||
hostTags = hostname: (myUtils.hostMeta (hostDir + "/${hostname}")).tags;
|
||||
hostTags = hostname: (myUtils.hostMeta (paths.hosts + "/${hostname}")).tags;
|
||||
nodeTagsDecl = ''
|
||||
declare -A _colmena_node_tags=(
|
||||
${lib.concatMapStringsSep "\n" (
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
dotsPath,
|
||||
paths,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -66,6 +66,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
home.sessionPath = lib.optional cfg.addBinToPath "${dotsPath}/.bin";
|
||||
home.sessionPath = lib.optional cfg.addBinToPath "${paths.dots}/.bin";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
lib,
|
||||
pkgs,
|
||||
myUtils,
|
||||
paths,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.ssh;
|
||||
|
||||
hostDir = ../../../hosts;
|
||||
hostsWithKeys = lib.filter (hostname: builtins.pathExists (hostDir + "/${hostname}/ssh_host.pub")) (
|
||||
myUtils.dirNames hostDir
|
||||
);
|
||||
hostNames = myUtils.dirNames paths.hosts;
|
||||
hostsWithKeys = lib.filter (
|
||||
hostname: builtins.pathExists (paths.hosts + "/${hostname}/ssh_host.pub")
|
||||
) hostNames;
|
||||
in
|
||||
{
|
||||
options.ssh.enable = lib.mkEnableOption "ssh";
|
||||
@@ -37,7 +37,7 @@ in
|
||||
lib.genAttrs hostsWithKeys (
|
||||
hostname:
|
||||
let
|
||||
meta = myUtils.hostMeta (hostDir + "/${hostname}");
|
||||
meta = myUtils.hostMeta (paths.hosts + "/${hostname}");
|
||||
in
|
||||
{
|
||||
User = meta.host.username;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
dotsPath,
|
||||
paths,
|
||||
myUtils,
|
||||
config,
|
||||
lib,
|
||||
@@ -21,7 +21,7 @@ in
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
paths
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
paths,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (config.host) username;
|
||||
adminHosts = (import ../../utils { inherit lib; }).adminHosts ../../hosts;
|
||||
adminHosts = (import ../../utils { inherit lib; }).adminHosts paths.hosts;
|
||||
in
|
||||
{
|
||||
options.ssh = {
|
||||
@@ -22,7 +23,7 @@ in
|
||||
map (
|
||||
hostname:
|
||||
let
|
||||
keyFile = ../../hosts/${hostname}/ssh_user.pub;
|
||||
keyFile = paths.hosts + "/${hostname}/ssh_user.pub";
|
||||
in
|
||||
lib.optionals (builtins.pathExists keyFile) (lib.splitString "\n" (builtins.readFile keyFile))
|
||||
) ((builtins.filter (h: h != config.host.name) adminHosts) ++ config.ssh.authorizedHosts)
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
lib,
|
||||
config,
|
||||
outputs,
|
||||
paths,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
hosts = lib.attrNames outputs.nixosConfigurations;
|
||||
hostsWithKeys = lib.filter (
|
||||
hostname: builtins.pathExists ../../hosts/${hostname}/ssh_host.pub
|
||||
) hosts;
|
||||
keyPath = hostname: paths.hosts + "/${hostname}/ssh_host.pub";
|
||||
hostsWithKeys = lib.filter (hostname: builtins.pathExists (keyPath hostname)) hosts;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf config.ssh.enable {
|
||||
programs.ssh.knownHosts = lib.genAttrs hostsWithKeys (hostname: {
|
||||
publicKeyFile = ../../hosts/${hostname}/ssh_host.pub;
|
||||
publicKeyFile = keyPath hostname;
|
||||
extraHostNames = lib.optional (hostname == config.networking.hostName) "localhost";
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user