Fediversity/deployment/flake-part.nix

135 lines
3.8 KiB
Nix
Raw Normal View History

2024-11-13 22:59:51 +01:00
{ inputs, self, ... }:
let
2025-01-27 11:56:19 +01:00
allVmIds = builtins.genList (x: 100 + x) 156; # 100 -- 255
2025-02-19 17:25:28 +01:00
makeInstaller = import ../infra/makeInstaller.nix;
2024-11-13 22:59:51 +01:00
in
{
flake.nixosConfigurations.provisioning =
let
inherit (builtins) map listToAttrs;
makeProvisioningConfiguration =
vmid:
inputs.nixpkgs.lib.nixosSystem {
modules = [
{ procolix.vmid = vmid; }
./procolixVm.nix
inputs.disko.nixosModules.default
];
};
in
listToAttrs (
map (vmid: {
name = "fedi${toString vmid}";
2024-11-13 22:59:51 +01:00
value = makeProvisioningConfiguration vmid;
}) allVmIds
);
flake.isoInstallers.provisioning =
let
inherit (builtins) mapAttrs;
in
mapAttrs (
vmname: nixosConfiguration:
2024-11-13 22:59:51 +01:00
makeInstaller {
inherit (inputs) nixpkgs;
inherit nixosConfiguration;
2024-11-13 22:59:51 +01:00
hostKeys = {
ed25519 = {
private = ./hostKeys/${vmname}/ssh_host_ed25519_key;
public = ./hostKeys/${vmname}/ssh_host_ed25519_key.pub;
};
};
}
) self.nixosConfigurations.provisioning;
nixops4Deployments.feditest =
2024-11-13 22:59:51 +01:00
{ providers, ... }:
let
inherit (builtins) readFile;
makeProcolixVmResource = vmid: vmconfig: {
type = providers.local.exec;
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
ssh = {
host = "95.215.187.${toString vmid}";
hostPublicKey = readFile ./hostKeys/fedi${toString vmid}/ssh_host_ed25519_key.pub;
};
2024-11-13 22:59:51 +01:00
nixpkgs = inputs.nixpkgs;
nixos.module = {
imports = [
vmconfig
{ procolix.vmid = vmid; }
./procolixVm.nix
2025-02-13 11:38:18 +01:00
self.nixosModules.fediversity
2024-11-13 22:59:51 +01:00
inputs.disko.nixosModules.default
];
};
};
in
{
providers = { inherit (inputs.nixops4.modules.nixops4Provider) local; };
2024-11-13 22:59:51 +01:00
resources = {
fedi101 = makeProcolixVmResource 101 (
{ pkgs, ... }:
{
fediversity = {
2025-02-14 19:01:54 +01:00
enable = true;
domain = "fedi101.abundos.eu";
pixelfed = {
enable = true;
2025-02-14 19:01:54 +01:00
## NOTE: Only ever used for testing anyway.
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GKb5615457d44214411e673b7b";
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "5be6799a88ca9b9d813d1a806b64f15efa49482dbe15339ddfaf7f19cf434987";
};
2025-02-14 19:01:54 +01:00
};
}
);
2024-11-13 22:59:51 +01:00
fedi102 = makeProcolixVmResource 102 (
{ pkgs, ... }:
{
fediversity = {
2025-02-14 19:01:54 +01:00
enable = true;
domain = "fedi102.abundos.eu";
mastodon = {
enable = true;
2025-02-14 19:01:54 +01:00
## NOTE: Only ever used for testing anyway.
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK3515373e4c851ebaad366558";
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34";
};
2024-11-13 22:59:51 +01:00
temp.cores = 1; # FIXME: should come from NixOps4 eventually
};
}
);
2024-11-13 22:59:51 +01:00
fedi103 = makeProcolixVmResource 103 (
{ pkgs, ... }:
{
fediversity = {
enable = true;
domain = "fedi103.abundos.eu";
2025-02-14 18:44:35 +01:00
peertube = {
enable = true;
2025-02-14 19:01:54 +01:00
## NOTE: Only ever used for testing anyway.
secretsFile = pkgs.writeText "secret" "574e093907d1157ac0f8e760a6deb1035402003af5763135bae9cbd6abe32b24";
s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK1f9feea9960f6f95ff404c9b";
s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7295c4201966a02c2c3d25b5cea4a5ff782966a2415e3a196f91924631191395";
2025-02-14 18:44:35 +01:00
};
2024-11-13 22:59:51 +01:00
};
}
);
};
};
}