diff --git a/flake.lock b/flake.lock index 3b430a8..540ca6b 100644 --- a/flake.lock +++ b/flake.lock @@ -800,6 +800,28 @@ "type": "github" } }, + "colmena": { + "inputs": { + "flake-compat": "flake-compat_12", + "flake-utils": "flake-utils_23", + "nixpkgs": "nixpkgs_29", + "stable": "stable" + }, + "locked": { + "lastModified": 1684127108, + "narHash": "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=", + "owner": "zhaofengli", + "repo": "colmena", + "rev": "5fdd743a11e7291bd8ac1e169d62ba6156c99be4", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "v0.4.0", + "repo": "colmena", + "type": "github" + } + }, "customConfig": { "locked": { "lastModified": 1630400035, @@ -1438,6 +1460,22 @@ } }, "flake-compat_13": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_14": { "flake": false, "locked": { "lastModified": 1696426674, @@ -1833,6 +1871,21 @@ } }, "flake-utils_23": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_24": { "locked": { "lastModified": 1653893745, "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", @@ -1847,7 +1900,7 @@ "type": "github" } }, - "flake-utils_24": { + "flake-utils_25": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -1862,7 +1915,7 @@ "type": "github" } }, - "flake-utils_25": { + "flake-utils_26": { "locked": { "lastModified": 1653893745, "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", @@ -2231,7 +2284,7 @@ }, "gomod2nix_7": { "inputs": { - "nixpkgs": "nixpkgs_29", + "nixpkgs": "nixpkgs_30", "utils": "utils_12" }, "locked": { @@ -2976,7 +3029,7 @@ }, "iohkNix_6": { "inputs": { - "nixpkgs": "nixpkgs_33" + "nixpkgs": "nixpkgs_34" }, "locked": { "lastModified": 1629993366, @@ -3396,7 +3449,7 @@ }, "n2c_7": { "inputs": { - "flake-utils": "flake-utils_25", + "flake-utils": "flake-utils_26", "nixpkgs": [ "daedalus", "tullia", @@ -3678,7 +3731,7 @@ }, "nix-nomad_7": { "inputs": { - "flake-compat": "flake-compat_12", + "flake-compat": "flake-compat_13", "flake-utils": [ "daedalus", "tullia", @@ -3894,8 +3947,8 @@ }, "nix2container_8": { "inputs": { - "flake-utils": "flake-utils_23", - "nixpkgs": "nixpkgs_30" + "flake-utils": "flake-utils_24", + "nixpkgs": "nixpkgs_31" }, "locked": { "lastModified": 1658567952, @@ -3971,11 +4024,11 @@ }, "nix_4": { "inputs": { - "flake-compat": "flake-compat_13", + "flake-compat": "flake-compat_14", "flake-parts": "flake-parts", "git-hooks-nix": "git-hooks-nix", "libgit2": "libgit2", - "nixpkgs": "nixpkgs_34", + "nixpkgs": "nixpkgs_35", "nixpkgs-23-11": "nixpkgs-23-11", "nixpkgs-regression": "nixpkgs-regression_4" }, @@ -5150,11 +5203,11 @@ }, "nixpkgs_29": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "lastModified": 1683408522, + "narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7", "type": "github" }, "original": { @@ -5181,6 +5234,22 @@ } }, "nixpkgs_30": { + "locked": { + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_31": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -5195,7 +5264,7 @@ "type": "github" } }, - "nixpkgs_31": { + "nixpkgs_32": { "locked": { "lastModified": 1653920503, "narHash": "sha256-BBeCZwZImtjP3oYy4WogkQYy5OxNyfNciVSc1AfZgLQ=", @@ -5211,7 +5280,7 @@ "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_33": { "locked": { "lastModified": 1665087388, "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", @@ -5227,7 +5296,7 @@ "type": "github" } }, - "nixpkgs_33": { + "nixpkgs_34": { "locked": { "lastModified": 1691003216, "narHash": "sha256-Qq/MPkhS12Bl0X060pPvX3v9ac3f2rRQfHjjozPh/Qs=", @@ -5241,7 +5310,7 @@ "type": "indirect" } }, - "nixpkgs_34": { + "nixpkgs_35": { "locked": { "lastModified": 1723688146, "narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=", @@ -5257,7 +5326,7 @@ "type": "github" } }, - "nixpkgs_35": { + "nixpkgs_36": { "locked": { "lastModified": 1724098845, "narHash": "sha256-D5HwjQw/02fuXbR4LCTo64koglP2j99hkDR79/3yLOE=", @@ -5735,14 +5804,31 @@ "root": { "inputs": { "cardano-node": "cardano-node", + "colmena": "colmena", "daedalus": "daedalus", "iohkNix": "iohkNix_6", "nix": "nix_4", - "nixpkgs": "nixpkgs_35", + "nixpkgs": "nixpkgs_36", "nixpkgsUnstable": "nixpkgsUnstable", "utils": "utils_13" } }, + "stable": { + "locked": { + "lastModified": 1669735802, + "narHash": "sha256-qtG/o/i5ZWZLmXw108N2aPiVsxOcidpHJYNkT45ry9Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "731cc710aeebecbf45a258e977e8b68350549522", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, "stackage": { "flake": false, "locked": { @@ -6122,7 +6208,7 @@ "blank": "blank_7", "devshell": "devshell_7", "dmerge": "dmerge_7", - "flake-utils": "flake-utils_24", + "flake-utils": "flake-utils_25", "makes": [ "daedalus", "tullia", @@ -6138,7 +6224,7 @@ ], "n2c": "n2c_7", "nixago": "nixago_7", - "nixpkgs": "nixpkgs_32", + "nixpkgs": "nixpkgs_33", "yants": "yants_7" }, "locked": { @@ -6320,7 +6406,7 @@ "inputs": { "nix-nomad": "nix-nomad_7", "nix2container": "nix2container_8", - "nixpkgs": "nixpkgs_31", + "nixpkgs": "nixpkgs_32", "std": "std_7" }, "locked": { diff --git a/flake.nix b/flake.nix index 39d9381..17faaf1 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,7 @@ inputs = { cardano-node.url = "github:input-output-hk/cardano-node/?ref=1.35.7"; + colmena.url = github:zhaofengli/colmena/?ref=v0.4.0; daedalus.url = "github:input-output-hk/daedalus/?ref=5.2.0"; iohkNix.url = "github:input-output-hk/iohk-nix/?ref=df1da282f996ec46b33379407df99613a1fbafdd"; nix.url = "github:NixOS/nix/?ref=2.24.3"; diff --git a/hosts/airgead.nix b/hosts/airgead/default.nix similarity index 100% rename from hosts/airgead.nix rename to hosts/airgead/default.nix diff --git a/hosts/brighde.nix b/hosts/brighde/default.nix similarity index 100% rename from hosts/brighde.nix rename to hosts/brighde/default.nix diff --git a/hosts/ceilidh.nix b/hosts/ceilidh/default.nix similarity index 100% rename from hosts/ceilidh.nix rename to hosts/ceilidh/default.nix diff --git a/hosts/ceitidh.nix b/hosts/ceitidh/default.nix similarity index 100% rename from hosts/ceitidh.nix rename to hosts/ceitidh/default.nix diff --git a/hosts/cuallaidh.nix b/hosts/cuallaidh/default.nix similarity index 100% rename from hosts/cuallaidh.nix rename to hosts/cuallaidh/default.nix diff --git a/hosts/dhu.nix b/hosts/dhu/default.nix similarity index 100% rename from hosts/dhu.nix rename to hosts/dhu/default.nix diff --git a/hosts/dionach.nix b/hosts/dionach/default.nix similarity index 100% rename from hosts/dionach.nix rename to hosts/dionach/default.nix diff --git a/hosts/doilidh.nix b/hosts/doilidh/default.nix similarity index 100% rename from hosts/doilidh.nix rename to hosts/doilidh/default.nix diff --git a/hosts/eamhair.nix b/hosts/eamhair/default.nix similarity index 100% rename from hosts/eamhair.nix rename to hosts/eamhair/default.nix diff --git a/hosts/iolear-beag.nix b/hosts/iolear-beag/default.nix similarity index 100% rename from hosts/iolear-beag.nix rename to hosts/iolear-beag/default.nix diff --git a/hosts/paidh-uachdar.nix b/hosts/paidh-uachdar/default.nix similarity index 100% rename from hosts/paidh-uachdar.nix rename to hosts/paidh-uachdar/default.nix diff --git a/hosts/sanganto.nix b/hosts/sanganto/default.nix similarity index 74% rename from hosts/sanganto.nix rename to hosts/sanganto/default.nix index 12f449e..04076de 100644 --- a/hosts/sanganto.nix +++ b/hosts/sanganto/default.nix @@ -5,23 +5,23 @@ ... }: { imports = [ - ../hardware/system76_thelioMira.nix # Include results of the hardware scan. - ../profiles/cron-craige.nix # Provide Craige's cron jobs - ../profiles/desktopCraige.nix # Craige's desktop tools and apps - ../profiles/haskell-dev.nix # Haskell dev environment - ../profiles/host_common.nix # Common host configuration options - ../profiles/iog.nix # IOHK environment - ../profiles/keyboard.nix - ../profiles/neomutt.nix # Neomutt email - ../profiles/nix-community.nix # Nix community aarch64 tooling - ../profiles/nixpkgs-dev.nix # Nix pkgs dev tools - ../profiles/openssh.nix # Enable and configure openssh - ../profiles/pantheon.nix # Enable and configure the pantheon desktop - ../profiles/pipewire.nix # Enable and pipewire audio system - ../profiles/xmonad.nix # Xmonad desktop environment - ../profiles/yubikey.nix # Yubikey tooling - ../secrets/craige.nix # Ssshhhhh! - ../secrets/root.nix # Ssshhhhh! + ../../hardware/system76_thelioMira.nix # Include results of the hardware scan. + ../../profiles/cron-craige.nix # Provide Craige's cron jobs + ../../profiles/desktopCraige.nix # Craige's desktop tools and apps + ../../profiles/haskell-dev.nix # Haskell dev environment + ../../profiles/host_common.nix # Common host configuration options + ../../profiles/iog.nix # IOHK environment + ../../profiles/keyboard.nix + ../../profiles/neomutt.nix # Neomutt email + ../../profiles/nix-community.nix # Nix community aarch64 tooling + ../../profiles/nixpkgs-dev.nix # Nix pkgs dev tools + ../../profiles/openssh.nix # Enable and configure openssh + ../../profiles/pantheon.nix # Enable and configure the pantheon desktop + ../../profiles/pipewire.nix # Enable and pipewire audio system + ../../profiles/xmonad.nix # Xmonad desktop environment + ../../profiles/yubikey.nix # Yubikey tooling + ../../secrets/craige.nix # Ssshhhhh! + ../../secrets/root.nix # Ssshhhhh! ]; deployment.targetHost = "10.42.0.11"; diff --git a/hosts/sercanto.nix b/hosts/sercanto/default.nix similarity index 100% rename from hosts/sercanto.nix rename to hosts/sercanto/default.nix diff --git a/hosts/sithlainnir.nix b/hosts/sithlainnir/default.nix similarity index 100% rename from hosts/sithlainnir.nix rename to hosts/sithlainnir/default.nix diff --git a/hosts/teintidh.nix b/hosts/teintidh/default.nix similarity index 100% rename from hosts/teintidh.nix rename to hosts/teintidh/default.nix diff --git a/outputs.nix b/outputs.nix index af7d38b..a5c0cb4 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,5 +1,6 @@ { self, + colmena, daedalus, nix, nixpkgs, @@ -15,34 +16,36 @@ in { devShell = pkgs.callPackage ./shell.nix { + inherit (colmena.packages."${pkgs.system}") colmena; inherit (nix.packages."${pkgs.system}") nix; inherit deploymentName; inherit nix_path; }; - nixopsConfigurations."${pkgs.system}".default = { - inherit (inputs) nixpkgs; - network = { - description = "mio-ops nodes"; - enableRollback = true; - storage.legacy = {databasefile = "~/.nixops/deployments.nixops";}; - }; - defaults = {}; - airgead = import hosts/airgead.nix; - brighde = import hosts/brighde.nix; - ceilidh = import hosts/ceilidh.nix; - cuallaidh = import hosts/cuallaidh.nix; - dhu = import hosts/dhu.nix; - dionach = import hosts/dionach.nix; - iolear-beag = import hosts/iolear-beag.nix; - doilidh = import hosts/doilidh.nix; - eamhair = import hosts/eamhair.nix; - ceitidh = import hosts/ceitidh.nix; - paidh-uachdar = import hosts/paidh-uachdar.nix; - sanganto = import hosts/sanganto.nix; - sercanto = import hosts/sercanto.nix; - sithlainnir = import hosts/sithlainnir.nix; - teintidh = import hosts/teintidh.nix; - }; })) // { + colmena = { + meta = { + description = "mio-ops deployment"; + name = "deploymentName"; + nixpkgs = import nixpkgs { + system = "x86_64-linux"; + overlays = []; + }; + }; + airgead = {imports = [hosts/airgead];}; + brighde = {imports = [hosts/brighde];}; + ceilidh = {imports = [hosts/ceilidh];}; + ceitidh = {imports = [hosts/ceitidh];}; + cuallaidh = {imports = [hosts/cuallaidh];}; + dhu = {imports = [hosts/dhu];}; + dionach = {imports = [hosts/dionach];}; + doilidh = {imports = [hosts/doilidh];}; + eamhair = {imports = [hosts/eamhair];}; + iolear-beag = {imports = [hosts/iolear-beag];}; + paidh-uachdar = {imports = [hosts/paidh-uachdar];}; + sanganto = {imports = [hosts/sanganto];}; + sercanto = {imports = [hosts/sercanto];}; + sithlainnir = {imports = [hosts/sithlainnir];}; + teintidh = {imports = [hosts/teintidh];}; + }; } diff --git a/shell.nix b/shell.nix index fe46bf7..79d6f31 100644 --- a/shell.nix +++ b/shell.nix @@ -1,5 +1,6 @@ { pkgs ? import {}, + colmena, deploymentName, mkShell, nix, @@ -9,6 +10,7 @@ with pkgs; mkShell { buildInputs = [ alejandra # The Uncompromising Nix Code Formatter + colmena # Simple, stateless NixOS deployment tool nix # Powerful package manager, makes packaging reliable & reproducible nixops_unstable_minimal # work around for issue #127423 tea # Gitea official CLI client