forked from Fediversity/Fediversity
Factorise infra resource definitions (#82)
This commit is contained in:
commit
004131dec6
7 changed files with 52 additions and 139 deletions
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common
|
|
||||||
./forgejo-actions-runner.nix
|
./forgejo-actions-runner.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,135 +1,63 @@
|
||||||
{ self, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
nixops4Deployments.git =
|
self,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (builtins) mapAttrs;
|
||||||
|
inherit (lib.attrsets) genAttrs;
|
||||||
|
|
||||||
|
makeResource =
|
||||||
|
vmid:
|
||||||
{ providers, ... }:
|
{ providers, ... }:
|
||||||
|
let
|
||||||
|
vmmodule = import (./. + "/${vmid}");
|
||||||
|
in
|
||||||
{
|
{
|
||||||
providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local;
|
type = providers.local.exec;
|
||||||
|
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
||||||
resources = {
|
ssh = {
|
||||||
vm02116 = {
|
# FIXME: The following assumes that `vmmodule` does not use arguments
|
||||||
type = providers.local.exec;
|
# and does not get `proxolix.vm.ip4` from an import, etc. I have tried
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
# an approach with `lib.evalModules` but I cannot get it to work.
|
||||||
ssh = {
|
host = vmmodule.procolix.vm.ip4;
|
||||||
host = "185.206.232.34";
|
opts = "";
|
||||||
opts = "";
|
hostPublicKey = self.keys.systems.${vmid};
|
||||||
hostPublicKey = self.keys.systems.vm02116;
|
};
|
||||||
};
|
nixpkgs = inputs.nixpkgs;
|
||||||
nixpkgs = inputs.nixpkgs;
|
nixos.module = {
|
||||||
nixos.module = {
|
imports = [
|
||||||
imports = [
|
vmmodule
|
||||||
./vm02116
|
./common
|
||||||
self.nixosModules.ageSecrets
|
self.nixosModules.ageSecrets
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.vm02116; }
|
{ fediversity.hostPublicKey = self.keys.systems.${vmid}; }
|
||||||
];
|
];
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fedi300 = {
|
|
||||||
type = providers.local.exec;
|
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
|
||||||
ssh = {
|
|
||||||
host = "95.215.187.30";
|
|
||||||
opts = "";
|
|
||||||
hostPublicKey = self.keys.systems.fedi300;
|
|
||||||
};
|
|
||||||
nixpkgs = inputs.nixpkgs;
|
|
||||||
nixos.module = {
|
|
||||||
imports = [
|
|
||||||
./fedi300
|
|
||||||
self.nixosModules.ageSecrets
|
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.fedi300; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixops4Deployments.web =
|
makeDeployments = mapAttrs (
|
||||||
|
_: vmids:
|
||||||
{ providers, ... }:
|
{ providers, ... }:
|
||||||
{
|
{
|
||||||
providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local;
|
providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local;
|
||||||
|
resources = genAttrs vmids (vmid: makeResource vmid { inherit providers; });
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
resources = {
|
in
|
||||||
vm02187 = {
|
{
|
||||||
type = providers.local.exec;
|
nixops4Deployments = makeDeployments {
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
git = [
|
||||||
ssh = {
|
"vm02116"
|
||||||
host = "185.206.232.187";
|
"fedi300"
|
||||||
opts = "";
|
];
|
||||||
hostPublicKey = self.keys.systems.vm02187;
|
web = [ "vm02187" ];
|
||||||
};
|
other = [
|
||||||
nixpkgs = inputs.nixpkgs;
|
"vm02117"
|
||||||
nixos.module = {
|
"vm02179"
|
||||||
imports = [
|
"vm02186"
|
||||||
./vm02187
|
];
|
||||||
self.nixosModules.ageSecrets
|
};
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.vm02187; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixops4Deployments.other =
|
|
||||||
{ providers, ... }:
|
|
||||||
{
|
|
||||||
providers.local = inputs.nixops4-nixos.modules.nixops4Provider.local;
|
|
||||||
|
|
||||||
resources = {
|
|
||||||
vm02117 = {
|
|
||||||
type = providers.local.exec;
|
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
|
||||||
ssh = {
|
|
||||||
host = "185.206.232.106";
|
|
||||||
opts = "";
|
|
||||||
hostPublicKey = self.keys.systems.vm02117;
|
|
||||||
};
|
|
||||||
nixpkgs = inputs.nixpkgs;
|
|
||||||
nixos.module = {
|
|
||||||
imports = [
|
|
||||||
./vm02117
|
|
||||||
self.nixosModules.ageSecrets
|
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.vm02117; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
vm02179 = {
|
|
||||||
type = providers.local.exec;
|
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
|
||||||
ssh = {
|
|
||||||
host = "185.206.232.179";
|
|
||||||
opts = "";
|
|
||||||
hostPublicKey = self.keys.systems.vm02179;
|
|
||||||
};
|
|
||||||
nixpkgs = inputs.nixpkgs;
|
|
||||||
nixos.module = {
|
|
||||||
imports = [
|
|
||||||
./vm02179
|
|
||||||
self.nixosModules.ageSecrets
|
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.vm02179; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
vm02186 = {
|
|
||||||
type = providers.local.exec;
|
|
||||||
imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ];
|
|
||||||
ssh = {
|
|
||||||
host = "185.206.232.186";
|
|
||||||
opts = "";
|
|
||||||
hostPublicKey = self.keys.systems.vm02186;
|
|
||||||
};
|
|
||||||
nixpkgs = inputs.nixpkgs;
|
|
||||||
nixos.module = {
|
|
||||||
imports = [
|
|
||||||
./vm02186
|
|
||||||
self.nixosModules.ageSecrets
|
|
||||||
{ fediversity.hostPublicKey = self.keys.systems.vm02186; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common
|
|
||||||
./forgejo.nix
|
./forgejo.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../common
|
|
||||||
];
|
|
||||||
|
|
||||||
procolix.vm = {
|
procolix.vm = {
|
||||||
name = "vm02117";
|
name = "vm02117";
|
||||||
ip4 = "185.206.232.106";
|
ip4 = "185.206.232.106";
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../common
|
|
||||||
];
|
|
||||||
|
|
||||||
procolix.vm = {
|
procolix.vm = {
|
||||||
name = "vm02179";
|
name = "vm02179";
|
||||||
ip4 = "185.206.232.179";
|
ip4 = "185.206.232.179";
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../common
|
|
||||||
];
|
|
||||||
|
|
||||||
procolix.vm = {
|
procolix.vm = {
|
||||||
name = "vm02186";
|
name = "vm02186";
|
||||||
ip4 = "185.206.232.186";
|
ip4 = "185.206.232.186";
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common
|
|
||||||
./wiki.nix
|
./wiki.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue