Working k8s module!
This commit is contained in:
@@ -38,7 +38,7 @@ let
|
||||
|
||||
in {
|
||||
k8s = rec {
|
||||
master = host: self: {
|
||||
apiserver = host: self: {
|
||||
deployment.targetHost = host.address;
|
||||
|
||||
cluster = cfg // {
|
||||
@@ -63,12 +63,12 @@ in {
|
||||
imports = [ host.hw ./k8s.nix ];
|
||||
};
|
||||
|
||||
mkDeployment = masterNode: workerNodes:
|
||||
mkDeployment = master: nodes:
|
||||
let
|
||||
apiserver = { "${master.name}" = apiserver masterNode; };
|
||||
server = { "${master.name}" = apiserver master; };
|
||||
in
|
||||
builtins.foldl' (a: x:
|
||||
a // { "${x.name}" = mkWorker x; }) apiserver workerNodes;
|
||||
a // { "${x.name}" = node x; }) server nodes;
|
||||
};
|
||||
|
||||
fs = rec {
|
||||
|
||||
21
lib/k8s.nix
21
lib/k8s.nix
@@ -33,8 +33,7 @@ let
|
||||
let
|
||||
workerNodes = pkgs.writeText "kube-worker-nodes" (
|
||||
builtins.foldl' (a: x:
|
||||
a + " - ${x.address}\n"
|
||||
) "" cfg.k8s.nodes);
|
||||
a + " - ${x.address}\n") "" cfg.k8s.nodes);
|
||||
grafanaLdap = pkgs.writeText "grafana-ldap.toml"
|
||||
cfg.k8s.bootstrap.grafana_ldap_toml;
|
||||
in
|
||||
@@ -54,7 +53,7 @@ let
|
||||
export initca="${pki.initca}"
|
||||
export cluster="${cfg.clusterName}"
|
||||
export fileserver="${cfg.k8s.fileserver}"
|
||||
export acme_email="${cfg.k8s.bootrstrap.acme_email}"
|
||||
export acme_email="${cfg.k8s.bootstrap.acme_email}"
|
||||
export grafana_smtp_user="$(echo -n ${cfg.k8s.bootstrap.grafana_smtp_user} | base64 -w0)"
|
||||
export grafana_smtp_password="$(echo -n ${cfg.k8s.bootstrap.grafana_smtp_password} | base64 -w0)"
|
||||
export grafana_ldap_toml="$(cat ${grafanaLdap} | base64 -w0)"
|
||||
@@ -206,8 +205,8 @@ let
|
||||
in {
|
||||
options.cluster.k8s = {
|
||||
nodes = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
type = types.listOf types.attrs;
|
||||
default = [];
|
||||
};
|
||||
|
||||
fileserver = mkOption {
|
||||
@@ -232,6 +231,16 @@ in {
|
||||
type = types.str;
|
||||
default = "apiserver";
|
||||
};
|
||||
|
||||
extraSANs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
};
|
||||
|
||||
hw = mkOption {
|
||||
type = types.path;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
node = {
|
||||
@@ -254,7 +263,7 @@ in {
|
||||
default = "";
|
||||
};
|
||||
|
||||
grafana_ldap = mkOption {
|
||||
grafana_ldap_toml = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user