blob: c3519cc1283b07781b21280d63eb2f253c7a4ac4 [file] [log] [blame]
machineName:
let
machines = (import ./defs-machines.nix);
in rec {
domain = ".hswaw.net";
k8sapi = "k0.hswaw.net";
acmeEmail = "q3k@hackerspace.pl";
fqdn = machineName + domain;
machine = (builtins.head (builtins.filter (n: n.fqdn == fqdn) machines));
otherMachines = (builtins.filter (n: n.fqdn != fqdn) machines);
inherit machines;
pki = rec {
make = (radix: name: rec {
ca = ./../certs + "/ca-${radix}.crt";
cert = ./../certs + "/${radix}-${name}.cert";
key = ./../secrets/plain + "/${radix}-${name}.key";
json = (builtins.toJSON {
ca = (builtins.toString ca);
cert = (builtins.toString cert);
key = (builtins.toString key);
});
});
etcdPeer = (make "etcdpeer" fqdn);
etcd = {
server = (make "etcd" fqdn);
kube = (make "etcd" "kube");
};
makeKube = (name: (make "kube" name) // {
config = {
server = "https://${k8sapi}:${toString ports.k8sAPIServerSecure}";
certFile = (make "kube" name).cert;
keyFile = (make "kube" name).key;
};
});
kube = rec {
ca = apiserver.ca;
# Used to identify apiserver.
apiserver = (makeKube "apiserver");
# Used to identify controller-manager.
controllermanager = (makeKube "controllermanager");
# Used to identify scheduler.
scheduler = (makeKube "scheduler");
# Used to identify kube-proxy.
proxy = (makeKube "proxy");
# Used to identify kubelet.
kubelet = (makeKube "kubelet-${fqdn}");
# Used to encrypt service accounts.
serviceaccounts = (makeKube "serviceaccounts");
};
kubeFront = {
apiserver = (make "kubefront" "apiserver");
};
};
ports = {
k8sAPIServerPlain = 4000;
k8sAPIServerSecure = 4001;
k8sControllerManagerPlain = 0; # would be 4002; do not serve plain http
k8sControllerManagerSecure = 4003;
k8sSchedulerPlain = 0; # would be 4004; do not serve plain http
k8sSchedulerSecure = 4005;
};
}