From d7bcb45789f48abdfe39bca1aa59fa9b3925a688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Thu, 13 Feb 2025 11:38:18 +0100 Subject: [PATCH 1/7] Clean up code in `deployment/` --- deployment/flake-part.nix | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/deployment/flake-part.nix b/deployment/flake-part.nix index 5a2ea7f6..d6628a27 100644 --- a/deployment/flake-part.nix +++ b/deployment/flake-part.nix @@ -62,7 +62,7 @@ in vmconfig { procolix.vmid = vmid; } ./procolixVm.nix - inputs.snf.nixosModules.fediversity + self.nixosModules.fediversity inputs.disko.nixosModules.default ]; }; @@ -70,11 +70,9 @@ in in { - providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local; + providers.local = inputs.nixops4.modules.nixops4Provider.local; resources = { - fedi100 = makeProcolixVmResource 100 { }; - fedi101 = makeProcolixVmResource 101 { fediversity = { enable = true; @@ -107,14 +105,6 @@ in }; } ); - - fedi120 = makeProcolixVmResource 120 { - fediversity = { - enable = true; - domain = "fedi120.abundos.eu"; - pixelfed.enable = true; - }; - }; }; }; } From dc3a4dc4e80f0ed01d5f2bafeb0fb405a859b7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Wed, 19 Feb 2025 17:24:51 +0100 Subject: [PATCH 2/7] Merge `machine` argument into the attrset argument --- deployment/flake-part.nix | 3 ++- deployment/makeInstaller.nix | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/deployment/flake-part.nix b/deployment/flake-part.nix index d6628a27..6baf7624 100644 --- a/deployment/flake-part.nix +++ b/deployment/flake-part.nix @@ -31,9 +31,10 @@ in inherit (builtins) mapAttrs; in mapAttrs ( - vmname: + vmname: nixosConfiguration: makeInstaller { inherit (inputs) nixpkgs; + inherit nixosConfiguration; hostKeys = { ed25519 = { private = ./hostKeys/${vmname}/ssh_host_ed25519_key; diff --git a/deployment/makeInstaller.nix b/deployment/makeInstaller.nix index a5f787ef..a6155ce3 100644 --- a/deployment/makeInstaller.nix +++ b/deployment/makeInstaller.nix @@ -7,8 +7,8 @@ { nixpkgs, hostKeys ? { }, + nixosConfiguration, }: -machine: let inherit (builtins) concatStringsSep attrValues mapAttrs; @@ -25,8 +25,8 @@ let name = "bootstrap"; runtimeInputs = with pkgs; [ nixos-install-tools ]; text = '' - ${machine.config.system.build.diskoScript} - nixos-install --no-root-password --no-channel-copy --system ${machine.config.system.build.toplevel} + ${nixosConfiguration.config.system.build.diskoScript} + nixos-install --no-root-password --no-channel-copy --system ${nixosConfiguration.config.system.build.toplevel} ${concatStringsSep "\n" ( attrValues ( mapAttrs (kind: keys: '' From 5cc86bff949076d498962e9b3af7a6d4fecbcf62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Wed, 19 Feb 2025 17:25:28 +0100 Subject: [PATCH 3/7] Move `makeInstaller` to `infra/` --- deployment/flake-part.nix | 2 +- {deployment => infra}/makeInstaller.nix | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {deployment => infra}/makeInstaller.nix (100%) diff --git a/deployment/flake-part.nix b/deployment/flake-part.nix index 6baf7624..e58fc5fa 100644 --- a/deployment/flake-part.nix +++ b/deployment/flake-part.nix @@ -2,7 +2,7 @@ let allVmIds = builtins.genList (x: 100 + x) 156; # 100 -- 255 - makeInstaller = import ./makeInstaller.nix; + makeInstaller = import ../infra/makeInstaller.nix; in { diff --git a/deployment/makeInstaller.nix b/infra/makeInstaller.nix similarity index 100% rename from deployment/makeInstaller.nix rename to infra/makeInstaller.nix From a7c6ceb1114c14bed8cda7bf44d9d26a83531379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Wed, 19 Feb 2025 17:52:06 +0100 Subject: [PATCH 4/7] Export `makeInstaller` in the flake --- infra/flake-part.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/infra/flake-part.nix b/infra/flake-part.nix index 0896479a..b6208ee3 100644 --- a/infra/flake-part.nix +++ b/infra/flake-part.nix @@ -31,6 +31,8 @@ let in { + flake.lib.makeInstaller = import ./makeInstaller.nix; + nixops4Deployments = makeDeployments (addDefaultDeployment { git = [ "vm02116" From 9611e4ff9acc4a7bac3ef1c3f5239b9f260f6904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Thu, 20 Feb 2025 09:30:11 +0100 Subject: [PATCH 5/7] Support more configuration in the `.proxmox` file --- deployment/proxmox/provision.sh | 41 +++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/deployment/proxmox/provision.sh b/deployment/proxmox/provision.sh index dba60b37..74b92717 100755 --- a/deployment/proxmox/provision.sh +++ b/deployment/proxmox/provision.sh @@ -28,24 +28,27 @@ debug=false help () { cat <&2 '\033[37m'; printf >&2 "$@"; printf >&2 '\033[0m\n'; fi } +if [ -f .proxmox ]; then + . "$PWD"/.proxmox +fi + while [ $# -gt 0 ]; do argument=$1 shift @@ -78,12 +85,12 @@ while [ $# -gt 0 ]; do esac done +if [ -z "$vm_ids" ]; then + die_with_help "Required: at least one VM id.\n" +fi + if [ -z "$username" ] || [ -z "$password" ]; then - if [ -f .proxmox ]; then - { read -r username; read -r password; } < .proxmox - else - die_with_help "Required: '--username' and '--password'.\n" - fi + die_with_help "Required: '--username' and '--password'.\n" fi readonly sockets From df182d5a674555ef0ee58f0c1bb0c68aa0a1c858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= Date: Thu, 20 Feb 2025 11:19:30 +0100 Subject: [PATCH 6/7] Follow changes in removal script --- deployment/proxmox/remove.sh | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/deployment/proxmox/remove.sh b/deployment/proxmox/remove.sh index b84323cf..9555380b 100755 --- a/deployment/proxmox/remove.sh +++ b/deployment/proxmox/remove.sh @@ -11,7 +11,7 @@ readonly api_url=https://192.168.51.81:8006/api2/json ## now, let us just use `node051` everywhere. readonly node=node051 -readonly tmpdir=/tmp/proxmox-provision-$RANDOM +readonly tmpdir=/tmp/proxmox-remove-$RANDOM mkdir $tmpdir ################################################################################ @@ -23,18 +23,22 @@ vm_ids= help () { cat < Date: Thu, 20 Feb 2025 13:21:34 +0100 Subject: [PATCH 7/7] More clean up of the deployment flake Co-authored-by: Kiara Grouwstra --- deployment/flake-part.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deployment/flake-part.nix b/deployment/flake-part.nix index e58fc5fa..79052860 100644 --- a/deployment/flake-part.nix +++ b/deployment/flake-part.nix @@ -53,9 +53,11 @@ in makeProcolixVmResource = vmid: vmconfig: { type = providers.local.exec; imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ]; - ssh.opts = ""; - ssh.host = "95.215.187.${toString vmid}"; - ssh.hostPublicKey = readFile ./hostKeys/fedi${toString vmid}/ssh_host_ed25519_key.pub; + + ssh = { + host = "95.215.187.${toString vmid}"; + hostPublicKey = readFile ./hostKeys/fedi${toString vmid}/ssh_host_ed25519_key.pub; + }; nixpkgs = inputs.nixpkgs; nixos.module = { @@ -71,7 +73,7 @@ in in { - providers.local = inputs.nixops4.modules.nixops4Provider.local; + providers = { inherit (inputs.nixops4.modules.nixops4Provider) local; }; resources = { fedi101 = makeProcolixVmResource 101 {