feat: Add deploy-rs integration with basic configuration
- Add deploy-rs as flake input - Configure deploy.nodes for all 4 machines (sleeper-service, grey-area, reverse-proxy, congenital-optimist) - Include safety features: autoRollback, magicRollback, activation timeouts - Add deploy-rs checks for validation - Successfully tested dry-run deployment This completes Tasks 1-3 from the deploy-rs integration roadmap.
This commit is contained in:
parent
a9f490882a
commit
bc9869cb67
7 changed files with 183 additions and 19 deletions
64
flake.nix
64
flake.nix
|
@ -4,12 +4,14 @@
|
|||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
deploy-rs.url = "github:serokell/deploy-rs";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
deploy-rs,
|
||||
...
|
||||
} @ inputs: let
|
||||
system = "x86_64-linux";
|
||||
|
@ -146,6 +148,68 @@
|
|||
};
|
||||
};
|
||||
|
||||
# Deploy-rs configuration for automated deployments
|
||||
deploy.nodes = {
|
||||
sleeper-service = {
|
||||
hostname = "sleeper-service.tail807ea.ts.net";
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.sleeper-service;
|
||||
sshUser = "sma";
|
||||
sudo = "sudo -u";
|
||||
autoRollback = true;
|
||||
magicRollback = true;
|
||||
activationTimeout = 180;
|
||||
confirmTimeout = 30;
|
||||
};
|
||||
};
|
||||
|
||||
grey-area = {
|
||||
hostname = "grey-area.tail807ea.ts.net";
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.grey-area;
|
||||
sshUser = "sma";
|
||||
sudo = "sudo -u";
|
||||
autoRollback = true;
|
||||
magicRollback = true;
|
||||
activationTimeout = 180;
|
||||
confirmTimeout = 30;
|
||||
};
|
||||
};
|
||||
|
||||
reverse-proxy = {
|
||||
hostname = "reverse-proxy.tail807ea.ts.net";
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.reverse-proxy;
|
||||
sshUser = "sma";
|
||||
sudo = "sudo -u";
|
||||
autoRollback = true;
|
||||
magicRollback = true;
|
||||
activationTimeout = 240; # VPS might be slower
|
||||
confirmTimeout = 30;
|
||||
};
|
||||
};
|
||||
|
||||
congenital-optimist = {
|
||||
hostname = "congenital-optimist.tail807ea.ts.net";
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.congenital-optimist;
|
||||
sshUser = "sma";
|
||||
sudo = "sudo -u";
|
||||
autoRollback = true;
|
||||
magicRollback = true;
|
||||
activationTimeout = 180;
|
||||
confirmTimeout = 30;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Deploy-rs checks (recommended by deploy-rs)
|
||||
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
||||
|
||||
# Formatter for Nix files
|
||||
formatter.${system} = nixpkgs.legacyPackages.${system}.alejandra;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue