mirror of
https://github.com/kmein/niveum
synced 2026-03-17 18:41:09 +01:00
feat: streamline krops experience
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"url": "https://cgit.krebsco.de/krops",
|
"url": "https://cgit.krebsco.de/krops",
|
||||||
"rev": "cccebf3ff7a53336b3f106cb96dddd5892d427ed",
|
"rev": "13ae434b140035e7e2664bd5a8ef4c475413b2e0",
|
||||||
"date": "2021-03-23T22:47:37+01:00",
|
"date": "2021-11-20T15:46:09+01:00",
|
||||||
"path": "/nix/store/mz13xxnil35lwsf90hwnrm2agir7hb51-krops",
|
"path": "/nix/store/ig76yx6z8wmc9papmxg5xnjhl9l22dvb-krops",
|
||||||
"sha256": "07mg3iaqjf1w49vmwfchi7b1w55bh7rvsbgicp2m47gnj9alwdb6",
|
"sha256": "0mzn213dh3pklvdzfpwi4nin4lncdap447zvl11j81r809jll76j",
|
||||||
"fetchLFS": false,
|
"fetchLFS": false,
|
||||||
"fetchSubmodules": false,
|
"fetchSubmodules": false,
|
||||||
"deepClone": false,
|
"deepClone": false,
|
||||||
|
|||||||
89
deploy.nix
89
deploy.nix
@@ -1,68 +1,45 @@
|
|||||||
let
|
let
|
||||||
inherit (import ./lib/default.nix) sshPort;
|
krops = builtins.fetchGit (gitFromJson .versions/krops.json);
|
||||||
|
lib = import "${krops}/lib";
|
||||||
|
pkgs = import "${krops}/pkgs" {};
|
||||||
|
|
||||||
|
importJson = (import <nixpkgs> {}).lib.importJSON;
|
||||||
gitFromJson = path:
|
gitFromJson = path:
|
||||||
let object = importJson path;
|
let
|
||||||
|
object = importJson path;
|
||||||
in {
|
in {
|
||||||
inherit (object) url;
|
inherit (object) url;
|
||||||
ref = object.rev;
|
ref = object.rev;
|
||||||
};
|
};
|
||||||
krops = builtins.fetchGit (gitFromJson .versions/krops.json);
|
|
||||||
lib = import "${krops}/lib";
|
|
||||||
pkgs = import "${krops}/pkgs" { };
|
|
||||||
importJson = (import <nixpkgs> { }).lib.importJSON;
|
|
||||||
|
|
||||||
regularSystem = { path, name, address }: {
|
source = name: {
|
||||||
source = lib.evalSource [{
|
niveum.file = toString ./.;
|
||||||
niveum.file = toString ./.;
|
nixos-config.symlink = "niveum/systems/${name}/configuration.nix";
|
||||||
system.file = toString path;
|
|
||||||
nixos-config.symlink = "system/configuration.nix";
|
|
||||||
|
|
||||||
nixpkgs.git = gitFromJson .versions/nixpkgs.json // { shallow = true; };
|
nixpkgs.git = gitFromJson .versions/nixpkgs.json // { shallow = true; };
|
||||||
nixpkgs-unstable.git = gitFromJson .versions/nixpkgs-unstable.json // { shallow = true; };
|
nixpkgs-unstable.git = gitFromJson .versions/nixpkgs-unstable.json // { shallow = true; };
|
||||||
home-manager.git = gitFromJson .versions/home-manager.json;
|
home-manager.git = gitFromJson .versions/home-manager.json;
|
||||||
stockholm.git = gitFromJson .versions/stockholm.json;
|
stockholm.git = gitFromJson .versions/stockholm.json;
|
||||||
nix-writers.git = gitFromJson .versions/nix-writers.json;
|
nix-writers.git = gitFromJson .versions/nix-writers.json;
|
||||||
retiolum.git = gitFromJson .versions/retiolum.json;
|
retiolum.git = gitFromJson .versions/retiolum.json;
|
||||||
nixpkgs-mozilla.git = gitFromJson .versions/nixpkgs-mozilla.json;
|
nixpkgs-mozilla.git = gitFromJson .versions/nixpkgs-mozilla.json;
|
||||||
system-secrets.pass = {
|
system-secrets.pass = {
|
||||||
dir = toString ~/.password-store;
|
dir = toString ~/.password-store;
|
||||||
name = "systems/${name}";
|
name = "systems/${name}";
|
||||||
};
|
};
|
||||||
secrets.pass = {
|
secrets.pass = {
|
||||||
dir = toString ~/.password-store;
|
dir = toString ~/.password-store;
|
||||||
name = "shared";
|
name = "shared";
|
||||||
};
|
};
|
||||||
}];
|
};
|
||||||
target = "root@${address}:${toString sshPort}";
|
|
||||||
|
system = {name, host}: let inherit (import ./lib/default.nix) sshPort; in pkgs.krops.writeDeploy "deploy-${name}" {
|
||||||
|
source = lib.evalSource [ (source name) ];
|
||||||
|
target = "root@${host}:${toString sshPort}";
|
||||||
};
|
};
|
||||||
inherit (pkgs.krops) writeDeploy;
|
|
||||||
in {
|
in {
|
||||||
zaatar = writeDeploy "deploy-zaatar" (regularSystem {
|
zaatar = system { name = "zaatar"; host = "zaatar.r"; };
|
||||||
path = systems/zaatar;
|
kabsa = system { name = "kabsa"; host = "kabsa.r"; };
|
||||||
name = "zaatar";
|
makanek = system { name = "makanek"; host = "makanek.r"; };
|
||||||
address = "zaatar.r";
|
manakish = system { name = "manakish"; host = "manakish.r"; };
|
||||||
});
|
|
||||||
kabsa = writeDeploy "deploy-kabsa" (regularSystem {
|
|
||||||
path = systems/kabsa;
|
|
||||||
name = "kabsa";
|
|
||||||
address = "kabsa.r";
|
|
||||||
});
|
|
||||||
toum = writeDeploy "deploy-toum" (regularSystem {
|
|
||||||
path = systems/toum;
|
|
||||||
name = "toum";
|
|
||||||
address = "toum.r";
|
|
||||||
}) // {
|
|
||||||
buildTarget = "${builtins.getEnv "USER"}@localhost/${builtins.getEnv "HOME"}/.cache/krops";
|
|
||||||
};
|
|
||||||
makanek = writeDeploy "deploy-makanek" (regularSystem {
|
|
||||||
path = systems/makanek;
|
|
||||||
name = "makanek";
|
|
||||||
address = "makanek.r";
|
|
||||||
});
|
|
||||||
manakish = writeDeploy "deploy-manakish" (regularSystem {
|
|
||||||
path = systems/manakish;
|
|
||||||
name = "manakish";
|
|
||||||
address = "manakish.r";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ let
|
|||||||
path = toString .versions/home-manager.json;
|
path = toString .versions/home-manager.json;
|
||||||
};
|
};
|
||||||
krops = {
|
krops = {
|
||||||
ref = "refs/tags/v1.25.0";
|
ref = "refs/tags/1.26.2";
|
||||||
url = "https://cgit.krebsco.de/krops";
|
url = "https://cgit.krebsco.de/krops";
|
||||||
path = toString .versions/krops.json;
|
path = toString .versions/krops.json;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user