From 45487af16803efb455bac9cd79f53874471a2144 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Fri, 30 Oct 2020 16:14:56 +0100 Subject: [PATCH] Working k8s module! --- lib/default.nix | 8 ++++---- lib/k8s.nix | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/default.nix b/lib/default.nix index 895b93e..87bc68b 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -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 { diff --git a/lib/k8s.nix b/lib/k8s.nix index 3badd52..94e2ff2 100644 --- a/lib/k8s.nix +++ b/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 = ""; };