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