Bootstrap cluster manually
This commit is contained in:
70
lib/k8s.nix
70
lib/k8s.nix
@@ -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:
|
||||
|
||||
Submodule lib/kube-system-bootstrap updated: 0c5abbce46...addf50bbc0
Reference in New Issue
Block a user