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

View file

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

View file

@ -13,18 +13,17 @@ let
in
{
options = {
procolixVm.name = mkOption { };
procolixVm = {
name = mkOption { };
host = mkOption { };
};
};
config =
let
vmConfig = import (./. + "/${config.procolixVm.name}");
in
{
config = {
type = providers.local.exec;
ssh = {
host = vmConfig.procolix.vm.ip4;
host = config.procolixVm.host;
opts = "";
hostPublicKey = self.keys.systems.${config.procolixVm.name};
};
@ -33,11 +32,6 @@ in
nixos.module = {
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
self.nixosModules.ageSecrets

View file

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

View file

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

View file

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

View file

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