Make vm*/default.nix resources

This commit is contained in:
Nicolas Jeannerod 2025-01-31 15:11:56 +01:00
parent 4f761bfc1f
commit dedd70dc0e
Signed by untrusted user: Niols
GPG key ID: 35DB9EC8886E1CB8
7 changed files with 151 additions and 134 deletions

View file

@ -1,6 +1,13 @@
{ lib, ... }: { lib, ... }:
let
inherit (lib) mkForce;
in
{ {
procolixVm.host = "95.215.187.30";
nixos.module = {
imports = [ imports = [
./forgejo-actions-runner.nix ./forgejo-actions-runner.nix
]; ];
@ -13,9 +20,9 @@
## FIXME: We should just have an option under `procolix.vm` to distinguish ## FIXME: We should just have an option under `procolix.vm` to distinguish
## between Procolix VMs and Fediversity ones. ## between Procolix VMs and Fediversity ones.
networking.domain = lib.mkForce "fediversity.eu"; networking.domain = mkForce "fediversity.eu";
networking.defaultGateway.address = lib.mkForce "95.215.187.1"; networking.defaultGateway.address = mkForce "95.215.187.1";
networking.defaultGateway6.address = lib.mkForce "2a00:51c0:13:1305::1"; networking.defaultGateway6.address = mkForce "2a00:51c0:13:1305::1";
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/cbcfaf6b-39bd-4328-9f53-dea8a9d32ecc"; device = "/dev/disk/by-uuid/cbcfaf6b-39bd-4328-9f53-dea8a9d32ecc";
@ -30,4 +37,5 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
};
} }

View file

@ -14,12 +14,11 @@ let
{ providers, ... }: { providers, ... }:
{ {
_module.args = { inherit self inputs providers; }; _module.args = { inherit self inputs providers; };
imports = [ imports = [
inputs.nixops4-nixos.modules.nixops4Resource.nixos inputs.nixops4-nixos.modules.nixops4Resource.nixos
./procolixResource.nix ./procolixResource.nix
(./. + "/${vmName}")
]; ];
procolixVm.name = vmName; procolixVm.name = vmName;
}; };

View file

@ -13,18 +13,17 @@ let
in in
{ {
options = { options = {
procolixVm.name = mkOption { }; procolixVm = {
name = mkOption { };
host = mkOption { };
};
}; };
config = config = {
let
vmConfig = import (./. + "/${config.procolixVm.name}");
in
{
type = providers.local.exec; type = providers.local.exec;
ssh = { ssh = {
host = vmConfig.procolix.vm.ip4; host = config.procolixVm.host;
opts = ""; opts = "";
hostPublicKey = self.keys.systems.${config.procolixVm.name}; hostPublicKey = self.keys.systems.${config.procolixVm.name};
}; };
@ -33,11 +32,6 @@ in
nixos.module = { nixos.module = {
imports = [ imports = [
## NOTE: We import an attrset as a NixOS module, for convenience, so
## as to be able to use it in NixOps4 and to grab information from it
## (eg. the IP) without evaluating the whole configuration first.
vmConfig
./common ./common
self.nixosModules.ageSecrets self.nixosModules.ageSecrets

View file

@ -1,4 +1,7 @@
{ {
procolixVm.host = "185.206.232.34";
nixos.module = {
imports = [ imports = [
./forgejo.nix ./forgejo.nix
]; ];
@ -24,4 +27,5 @@
device = "/dev/disk/by-uuid/2CE2-1173"; device = "/dev/disk/by-uuid/2CE2-1173";
fsType = "vfat"; fsType = "vfat";
}; };
};
} }

View file

@ -1,4 +1,7 @@
{ {
procolixVm.host = "185.206.232.179";
nixos.module = {
procolix.vm = { procolix.vm = {
name = "vm02179"; name = "vm02179";
ip4 = "185.206.232.179"; ip4 = "185.206.232.179";
@ -18,4 +21,5 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
};
} }

View file

@ -1,4 +1,7 @@
{ {
procolixVm.host = "185.206.232.186";
nixos.module = {
procolix.vm = { procolix.vm = {
name = "vm02186"; name = "vm02186";
ip4 = "185.206.232.186"; ip4 = "185.206.232.186";
@ -18,4 +21,5 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
};
} }

View file

@ -1,4 +1,7 @@
{ {
procolixVm.host = "185.206.232.187";
nixos.module = {
imports = [ imports = [
./wiki.nix ./wiki.nix
]; ];
@ -22,4 +25,5 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
};
} }