WIP: Create script to deploy in CI
All checks were successful
CI / build (push) Successful in 5m3s

This commit is contained in:
Fabian Hauser 2025-04-12 20:39:55 +03:00
parent e3cacda356
commit cb25445e23
10 changed files with 136 additions and 49 deletions

View file

@ -4,14 +4,21 @@ Note that you have to be connected to the `vpn.qo.is`
(or execute the deployment from a host that is in the `backplane.net.qo.is` overlay network)
and that you need to have SSH root access to the target machines.
## Deploy system categories
This is also used in CI.
```bash
auto-deploy vm
auto-deploy physical
```
## Deploy to selected target hosts
```bash
nix run .#deploy-qois .#<hostname>.system .#<hostname2>.system
```
nix develop
## Deploy with extended timeouts (sometimes required for slow APU devices)
```bash
nix run .#deploy-qois .#calanda.system -- --confirm-timeout 600 --activation-timeout 600
deploy --skip-checks .#cyprianspitz.system-physical
deploy --skip-checks .#lindberg-build.system-vm
```

View file

@ -0,0 +1,27 @@
{
deployPkgs,
pkgs,
self,
...
}:
let
inherit (pkgs.lib) pipe filterAttrs mapAttrs;
in
{
nodes = pipe self.nixosConfigurations [
(filterAttrs (_n: v: v.config.services.qemuGuest.enable == false))
(mapAttrs (
host: config: {
hostname = "${host}.backplane.net.qo.is";
profiles.system-physical = {
sshUser = "root";
user = "root";
activationTimeout = 600;
confirmTimeout = 120;
remoteBuild = true;
path = deployPkgs.deploy-rs.lib.activate.nixos config;
};
}
))
];
}

View file

@ -0,0 +1,27 @@
{
deployPkgs,
pkgs,
self,
...
}:
let
inherit (pkgs.lib) pipe filterAttrs mapAttrs;
in
{
nodes = pipe self.nixosConfigurations [
(filterAttrs (_n: v: v.config.services.qemuGuest.enable))
(mapAttrs (
host: config: {
hostname = "${host}.backplane.net.qo.is";
profiles.system-vm = {
sshUser = "root";
user = "root";
activationTimeout = 300;
confirmTimeout = 60;
remoteBuild = true;
path = deployPkgs.deploy-rs.lib.activate.nixos config;
};
}
))
];
}

View file

@ -1,20 +0,0 @@
{
deployPkgs,
pkgs,
self,
system,
...
}:
{
nodes = pkgs.lib.mapAttrs (host: config: {
hostname = "${host}.backplane.net.qo.is";
profiles.system = {
sshUser = "root";
user = "root";
activationTimeout = 420;
confirmTimeout = 120;
path = deployPkgs.deploy-rs.lib.activate.nixos config;
};
}) self.nixosConfigurations;
}