Bootstrap cluster manually

This commit is contained in:
Jonas Juselius
2019-10-17 20:56:32 +02:00
parent 81717fe223
commit d347727c4f
2 changed files with 44 additions and 28 deletions

View File

@@ -15,12 +15,24 @@ let
kube-system-bootstrap = pkgs.stdenv.mkDerivation {
name = "kube-system-bootstrap";
src = ./kube-system-bootstrap;
buildCommand = ''
mkdir -p $out
cp -r $src/* $out
'';
};
bootstrap-kube-system-sh = pkgs.writeScriptBin "bootstrap-kube-system.sh" ''
#!${pkgs.bash}/bin/bash
cd ${kube-system-bootstrap}
${pkgs.bash}/bin/bash ./kube-system-bootstrap ${cluster-ca} ${settings.clusterName}
'';
kube-scripts = pkgs.stdenv.mkDerivation {
name = "kube-scripts";
buildCommand = ''
mkdir -p $out/bin
mkdir -p $out/share/kube-system-bootstrap
cp -r $src/* $out/share/kube-system-bootstrap/
cd $out/bin
ln -s $out/share/kube-system-bootstrap/bin/* .
ln -s ${kube-system-bootstrap}/bin/* .
'';
};
@@ -84,7 +96,8 @@ rec {
environment.systemPackages = [
pkgs.kubernetes-helm
pkgs.kubectl
kube-system-bootstrap
kube-scripts
bootstrap-kube-system-sh
];
systemd.services.kube-certmgr-apitoken-bootstrap = {
@@ -98,29 +111,29 @@ rec {
};
};
systemd.services.kube-system-bootstrap = {
description = "Kubernetes certmgr bootstrapper";
wantedBy = [ "multi-user.target" ];
after = [ "kubernetes.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = false;
Environment = ''
PATH=$PATH:/run/current-system/sw/bin
'';
ExecStart = pkgs.writeScript "kube-system-bootstrap" ''
#!${pkgs.bash}/bin/bash
set -e
if [ ! -f /var/lib/kubernetes/.kube-system-bootstrap.done ]; then
${pkgs.bash}/bin/bash
d=${kube-system-bootstrap}/share/kube-system-bootstrap
cd $d
$d/kube-system-bootstrap ${cluster-ca} ${settings.clusterName}
touch /var/lib/kubernetes/.kube-system-bootstrap.done
fi
'';
};
};
# systemd.services.kube-system-bootstrap = {
# description = "Kubernetes certmgr bootstrapper";
# wantedBy = [ "multi-user.target" ];
# after = [ "kubernetes.target" ];
# serviceConfig = {
# Type = "oneshot";
# RemainAfterExit = false;
# Environment = ''
# PATH=$PATH:/run/current-system/sw/bin
# '';
# ExecStart = pkgs.writeScript "kube-system-bootstrap" ''
# #!${pkgs.bash}/bin/bash
# set -e
# if [ ! -f /var/lib/kubernetes/.kube-system-bootstrap.done ]; then
# sh=${pkgs.bash}/bin/bash
# d=${kube-system-bootstrap}/share/kube-system-bootstrap
# cd $d
# $sh $d/kube-system-bootstrap ${cluster-ca} ${settings.clusterName}
# touch /var/lib/kubernetes/.kube-system-bootstrap.done
# fi
# '';
# };
# };
};
kubeWorker = {
@@ -184,6 +197,9 @@ rec {
firewall.allowedTCPPorts = [ 80 443 111 ];
firewall.allowedUDPPorts = [ 111 24007 24008 ];
};
environment.systemPackages = with pkgs; [
nfs-utils
];
};
apiserver = ip: name: self: