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