more setting up
This commit is contained in:
parent
23e1bbe88a
commit
dfd604f73c
7 changed files with 141 additions and 73 deletions
|
|
@ -1,14 +1,14 @@
|
|||
{ ... }:
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (builtins) readFile head;
|
||||
inherit (builtins) readFile;
|
||||
in
|
||||
{
|
||||
_class = "clan.service";
|
||||
|
||||
manifest = {
|
||||
name = "amarth/k3s";
|
||||
description = "amarth/k3s";
|
||||
categories = [ "System" "Network" ];
|
||||
description = "K3s service in order to set up a cluster";
|
||||
categories = [ "System" "Network" "Containers" "Virtualisation" ];
|
||||
readme = readFile ./README.md;
|
||||
};
|
||||
|
||||
|
|
@ -27,8 +27,8 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
perInstance = { settings, ... }: {
|
||||
nixosModule = ./server.nix;
|
||||
perInstance = instanceArgs: {
|
||||
nixosModule = lib.modules.importApply ./roles/server.nix instanceArgs;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -36,10 +36,12 @@ in
|
|||
# Agent configuration
|
||||
#==============================================================================================================
|
||||
roles.agent = {
|
||||
interface = { lib, ... }: { };
|
||||
interface = { lib, ... }: {
|
||||
options = {};
|
||||
};
|
||||
|
||||
perInstance = { settings, instanceName, roles, ... }: {
|
||||
nixosModule = ./agent.nix;
|
||||
perInstance = instanceArgs: {
|
||||
nixosModule = lib.modules.importApply ./roles/agent.nix instanceArgs;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
{ config, lib, pkgs, roles, ... }:
|
||||
{ config, lib, pkgs, roles, ... }:
|
||||
let
|
||||
inherit (builtins) head pathExists readFile;
|
||||
|
||||
controller = head (lib.attrNames roles.controller.machines or {});
|
||||
|
||||
# Read the controller's ip address
|
||||
ipAddressPath = "${config.clan.core.settings.directory}/vars/per-machine/${controller}/k3s-ip/ip_v4";
|
||||
ipAddressPath = "${config.clan.core.settings.directory}/vars/per-machine/${controller}/k3s/ip_v4";
|
||||
ipAddress = if pathExists ipAddressPath then readFile ipAddressPath else null;
|
||||
|
||||
# Read the controller's token
|
||||
tokenPath = "${config.clan.core.settings.directory}/vars/per-machine/${controller}/k3s-token/token";
|
||||
token = if pathExists ipAddressPath then readFile ipAddressPath else null;
|
||||
tokenPath = "${config.clan.core.settings.directory}/vars/per-machine/${controller}/k3s/token";
|
||||
token = if pathExists tokenPath then readFile tokenPath else null;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
|
|
@ -35,4 +35,4 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -2,30 +2,26 @@
|
|||
{
|
||||
config = {
|
||||
clan.core.vars.generators = {
|
||||
k3s-ip = {
|
||||
k3s = {
|
||||
share = false;
|
||||
files.ip_v6 = {
|
||||
deploy = false;
|
||||
secret = false;
|
||||
};
|
||||
files.ip_v4 = {
|
||||
deploy = false;
|
||||
secret = false;
|
||||
};
|
||||
script = ''
|
||||
echo "::1" > "$out/ip_v6"
|
||||
echo "127.0.0.1" > "$out/ip_v4"
|
||||
'';
|
||||
};
|
||||
|
||||
k3s-token = {
|
||||
share = false;
|
||||
files.token = {
|
||||
deploy = false;
|
||||
secret = true;
|
||||
files = {
|
||||
ip_v6 = {
|
||||
deploy = false;
|
||||
secret = false;
|
||||
};
|
||||
ip_v4 = {
|
||||
deploy = false;
|
||||
secret = false;
|
||||
};
|
||||
token = {
|
||||
deploy = false;
|
||||
secret = true;
|
||||
};
|
||||
};
|
||||
runtimeInputs = with pkgs; [ pwgen ];
|
||||
script = ''
|
||||
echo "::1" > "$out/ip_v6"
|
||||
echo "127.0.0.1" > "$out/ip_v4"
|
||||
pwgen 50 1 > "$out/token"
|
||||
'';
|
||||
};
|
||||
|
|
@ -47,9 +43,9 @@
|
|||
k3s = {
|
||||
enable = true;
|
||||
role = "server";
|
||||
token = config.clan.core.vars.generators.k3s-token.token.value;
|
||||
token = config.clan.core.vars.generators.k3s.token.value;
|
||||
clusterInit = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue