mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-03-27 20:01:29 +01:00
feat: new k3s cluster
This commit is contained in:
@@ -80,6 +80,38 @@ in {
|
||||
idol_kana_modules
|
||||
{host_tags = idol_kana_tags;}
|
||||
]);
|
||||
|
||||
k3s_prod_1_master_1 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_master_1_modules
|
||||
{host_tags = k3s_prod_1_master_1_tags;}
|
||||
]);
|
||||
k3s_prod_1_master_2 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_master_2_modules
|
||||
{host_tags = k3s_prod_1_master_2_tags;}
|
||||
]);
|
||||
k3s_prod_1_master_3 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_master_3_modules
|
||||
{host_tags = k3s_prod_1_master_3_tags;}
|
||||
]);
|
||||
k3s_prod_1_worker_1 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_worker_1_modules
|
||||
{host_tags = k3s_prod_1_worker_1_tags;}
|
||||
]);
|
||||
k3s_prod_1_worker_2 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_worker_2_modules
|
||||
{host_tags = k3s_prod_1_worker_2_tags;}
|
||||
]);
|
||||
k3s_prod_1_worker_3 = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
k3s_prod_1_worker_3_modules
|
||||
{host_tags = k3s_prod_1_worker_3_tags;}
|
||||
]);
|
||||
|
||||
tailscale_gw = colmenaSystem (attrs.mergeAttrsList [
|
||||
x64_base_args
|
||||
homelab_tailscale_gw_modules
|
||||
|
||||
@@ -24,6 +24,13 @@ in {
|
||||
ruby = nixosSystem (idol_ruby_modules // base_args);
|
||||
kana = nixosSystem (idol_kana_modules // base_args);
|
||||
|
||||
k3s_prod_1_master_1 = nixosSystem (k3s_prod_1_master_1_modules // base_args);
|
||||
k3s_prod_1_master_2 = nixosSystem (k3s_prod_1_master_2_modules // base_args);
|
||||
k3s_prod_1_master_3 = nixosSystem (k3s_prod_1_master_3_modules // base_args);
|
||||
k3s_prod_1_worker_1 = nixosSystem (k3s_prod_1_worker_1_modules // base_args);
|
||||
k3s_prod_1_worker_2 = nixosSystem (k3s_prod_1_worker_2_modules // base_args);
|
||||
k3s_prod_1_worker_3 = nixosSystem (k3s_prod_1_worker_3_modules // base_args);
|
||||
|
||||
tailscale_gw = nixosSystem (homelab_tailscale_gw_modules // base_args);
|
||||
};
|
||||
|
||||
@@ -47,6 +54,13 @@ in {
|
||||
"ruby"
|
||||
"kana"
|
||||
|
||||
"k3s_prod_1_master_1"
|
||||
"k3s_prod_1_master_2"
|
||||
"k3s_prod_1_master_3"
|
||||
"k3s_prod_1_worker_1"
|
||||
"k3s_prod_1_worker_2"
|
||||
"k3s_prod_1_worker_3"
|
||||
|
||||
"tailscale_gw"
|
||||
]
|
||||
# generate proxmox image for virtual machines without desktop environment
|
||||
|
||||
@@ -15,7 +15,14 @@ let
|
||||
../modules/nixos/server/server.nix
|
||||
../modules/nixos/server/proxmox-hardware-configuration.nix
|
||||
];
|
||||
# home-module.imports = [];
|
||||
};
|
||||
kube_base_modules = {
|
||||
nixos-modules = [
|
||||
../secrets/nixos.nix
|
||||
../modules/nixos/server/server.nix
|
||||
../modules/nixos/server/proxmox-hardware-configuration.nix
|
||||
{modules.secrets.server.kubernetes.enable = true;}
|
||||
];
|
||||
};
|
||||
in {
|
||||
# --- Desktop Systems --- #
|
||||
@@ -106,7 +113,64 @@ in {
|
||||
++ pve_base_modules.nixos-modules;
|
||||
# home-module.imports = [];
|
||||
};
|
||||
homelab_tailscale_gw_tags = ["tailscale_gw" "network" "homelab"];
|
||||
homelab_tailscale_gw_tags = ["tailscale-gw" "network" "homelab"];
|
||||
|
||||
# --- Kubernetes Nodes --- #
|
||||
|
||||
k3s_prod_1_master_1_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_master_1
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
# home-module.imports = [];
|
||||
};
|
||||
k3s_prod_1_master_1_tags = ["k8s" "master" "prod"];
|
||||
|
||||
k3s_prod_1_master_2_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_master_2
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
};
|
||||
k3s_prod_1_master_2_tags = ["k8s" "master" "prod"];
|
||||
|
||||
k3s_prod_1_master_3_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_master_3
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
};
|
||||
k3s_prod_1_master_3_tags = ["k8s" "master" "prod"];
|
||||
|
||||
k3s_prod_1_worker_1_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_worker_1
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
};
|
||||
k3s_prod_1_worker_1_tags = ["k8s" "worker" "prod"];
|
||||
|
||||
k3s_prod_1_worker_2_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_worker_2
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
};
|
||||
k3s_prod_1_worker_2_tags = ["k8s" "worker" "prod"];
|
||||
|
||||
k3s_prod_1_worker_3_modules = {
|
||||
nixos-modules =
|
||||
[
|
||||
../hosts/k8s/k3s_prod_1_worker_3
|
||||
]
|
||||
++ kube_base_modules.nixos-modules;
|
||||
};
|
||||
k3s_prod_1_worker_3_tags = ["k8s" "worker" "prod"];
|
||||
|
||||
# --- RISC-V / AARCH64 Systems --- #
|
||||
|
||||
|
||||
@@ -1,49 +1,32 @@
|
||||
{lib, ...}: rec {
|
||||
defaultGateway = "192.168.5.101";
|
||||
mainGateway = "192.168.5.1"; # main router
|
||||
defaultGateway = "192.168.5.101"; # subrouter with a transparent proxy
|
||||
nameservers = [
|
||||
"119.29.29.29" # DNSPod
|
||||
"223.5.5.5" # AliDNS
|
||||
];
|
||||
prefixLength = 24;
|
||||
|
||||
hostAddress = {
|
||||
"ai" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.100";
|
||||
hostAddress =
|
||||
lib.attrsets.mapAttrs
|
||||
(name: address: {inherit prefixLength address;})
|
||||
{
|
||||
"ai" = "192.168.5.100";
|
||||
"aquamarine" = "192.168.5.101";
|
||||
"ruby" = "192.168.5.102";
|
||||
"kana" = "192.168.5.103";
|
||||
"nozomi" = "192.168.5.104";
|
||||
"yukina" = "192.168.5.105";
|
||||
"chiaya" = "192.168.5.106";
|
||||
"suzu" = "192.168.5.107";
|
||||
"k3s-prod-1-master-1" = "192.168.5.108";
|
||||
"k3s-prod-1-master-2" = "192.168.5.109";
|
||||
"k3s-prod-1-master-3" = "192.168.5.110";
|
||||
"k3s-prod-1-worker-1" = "192.168.5.111";
|
||||
"k3s-prod-1-worker-2" = "192.168.5.112";
|
||||
"k3s-prod-1-worker-3" = "192.168.5.113";
|
||||
"tailscale-gw" = "192.168.5.192";
|
||||
};
|
||||
"aquamarine" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.101";
|
||||
};
|
||||
"ruby" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.102";
|
||||
};
|
||||
"kana" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.103";
|
||||
};
|
||||
"nozomi" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.104";
|
||||
};
|
||||
"yukina" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.105";
|
||||
};
|
||||
"chiaya" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.106";
|
||||
};
|
||||
"suzu" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.107";
|
||||
};
|
||||
"tailscale_gw" = {
|
||||
inherit prefixLength;
|
||||
address = "192.168.5.192";
|
||||
};
|
||||
};
|
||||
|
||||
ssh = {
|
||||
# define the host alias for remote builders
|
||||
|
||||
Reference in New Issue
Block a user