From 0cc39bfbe0689ecdfb65f534e46ddcf402b0d68a Mon Sep 17 00:00:00 2001 From: Zuckerberg Date: Fri, 3 Mar 2023 00:16:23 -0700 Subject: [PATCH] deploy-rs initial PoC --- common/pc/default.nix | 1 + flake.nix | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/common/pc/default.nix b/common/pc/default.nix index bf720f0..ea4702e 100644 --- a/common/pc/default.nix +++ b/common/pc/default.nix @@ -50,6 +50,7 @@ in { arduino yt-dlp jellyfin-media-player + config.inputs.deploy-rs.packages.${config.currentSystem}.deploy-rs ]; # Networking diff --git a/flake.nix b/flake.nix index da2ef10..7951232 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,11 @@ archivebox.url = "git+https://git.neet.dev/zuckerberg/archivebox.git"; archivebox.inputs.nixpkgs.follows = "nixpkgs"; archivebox.inputs.flake-utils.follows = "flake-utils"; + + # nixos config deployment + deploy-rs.url = "github:serokell/deploy-rs"; + deploy-rs.inputs.nixpkgs.follows = "nixpkgs"; + deploy-rs.inputs.utils.follows = "simple-nixos-mailserver/utils"; }; outputs = { self, nixpkgs, nixpkgs-unstable, ... }@inputs: { @@ -93,5 +98,21 @@ "aarch64-linux"."kexec" = mkKexec "aarch64-linux"; "aarch64-linux"."iso" = mkIso "aarch64-linux"; }; + + deploy.nodes = + let + mkDeploy = configName: hostname: { + inherit hostname; + magicRollback = false; + sshUser = "root"; + profiles.system.path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${configName}; + }; + + in { + s0 = mkDeploy "s0" "s0"; + router = mkDeploy "router" "192.168.1.228"; + }; + + # checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib; }; }