infra/clan.nix
Chris Kruining b8c016324a
All checks were successful
Test action / Print hello world (push) Successful in 1m54s
.
2025-09-23 22:13:46 +02:00

125 lines
3.2 KiB
Nix

{
# Ensure this is unique among all clans you want to use.
meta = {
name = "amarth-infra";
description = "Amarth cloud";
};
inventory.machines = {
m1 = {
name = "management-1";
description = "Management node 1";
machineClass = "nixos";
tags = [ "cloud:amarth" "region:oss" "nodeType:management" "criticallity:critical" "" ];
# deploy.targetHost = "root@192.168.1.223";
};
c1 = {
name = "compute-1";
description = "Compute node 1";
machineClass = "nixos";
tags = [ "cloud:amarth" "region:oss" "nodeType:compute" "criticallity:medium" "" ];
# deploy.targetHost = "root@192.168.1.224";
};
c2 = {
name = "compute-2";
description = "Compute node 2";
machineClass = "nixos";
tags = [ "cloud:amarth" "region:oss" "nodeType:compute" "criticallity:medium" "" ];
# deploy.targetHost = "root@192.168.1.225";
};
c3 = {
name = "compute-3";
description = "Compute node 3";
machineClass = "nixos";
tags = [ "cloud:amarth" "region:oss" "nodeType:compute" "criticallity:medium" "" ];
# deploy.targetHost = "root@192.168.1.226";
};
};
# Docs: See https://docs.clan.lol/reference/clanServices
inventory.instances = {
admin = {
roles.default.tags.all = { };
roles.default.settings.allowedKeys = {
"chris" = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICE+TFkjJ8p8fMOddvg/waKAjKJ6DRvvouj1MdXc1Taj";
};
};
internet = {
roles.default.machines = {
m1.settings.host = "192.168.1.223";
c1.settings.host = "192.168.1.224";
c2.settings.host = "192.168.1.225";
c3.settings.host = "192.168.1.226";
};
};
zerotier = {
roles.controller.machines."m1" = { };
roles.peer.tags.all = { };
};
zitadel = {
module = {
name = "zitadel";
input = "amarth-services";
};
roles.controller = {
machines."m1" = {};
settings = {
hostName = "auth.amarth.cloud";
displayName = "Amarth";
};
};
};
k3s = {
module = {
name = "k3s";
input = "amarth-services";
};
roles.server.machines."c1" = {};
roles.agent.machines."c2" = {};
roles.agent.machines."c3" = {};
};
customer-portal = {
module = {
name = "customer-portal";
input = "amarth-services";
};
roles.server.machines."m1" = {};
};
};
# Additional NixOS configuration can be added here.
# machines/jon/configuration.nix will be automatically imported.
# See: https://docs.clan.lol/guides/more-machines/#automatic-registration
machines = {
# m1 = { config, pkgs, ... }: {
# environment.systemPackages = [ pkgs.asciinema ];
# nixpkgs.hostPlatform = "x86_64-linux";
# };
m1 = {
nixpkgs.hostPlatform = "x86_64-linux";
networking.domain = "amarth.local";
};
c1 = {
nixpkgs.hostPlatform = "x86_64-linux";
networking.domain = "amarth.local";
};
c2 = {
nixpkgs.hostPlatform = "x86_64-linux";
networking.domain = "amarth.local";
};
c3 = {
nixpkgs.hostPlatform = "x86_64-linux";
networking.domain = "amarth.local";
};
};
}