Build the cilium manifest automatically in nix.
This commit is contained in:
parent
6551fee05b
commit
96112bd40a
@ -10,43 +10,11 @@
|
|||||||
{ domain = "@users"; item = "rtprio"; type = "-"; value = 1; }
|
{ domain = "@users"; item = "rtprio"; type = "-"; value = 1; }
|
||||||
];
|
];
|
||||||
#+end_src
|
#+end_src
|
||||||
* Bootstrap
|
* Healthcheck
|
||||||
** Install cilium
|
** Check cilium status
|
||||||
#+begin_src bash
|
#+begin_src bash
|
||||||
# nix shell nixpkgs#cilium-cli
|
kubectl -n kube-system exec ds/cilium -- cilium-dbg status --verbose
|
||||||
nix shell 'nixpkgs#kubernetes-helm'
|
|
||||||
|
|
||||||
helm repo add cilium https://helm.cilium.io/
|
|
||||||
helm template --dry-run=client cilium cilium/cilium --version 1.18.5 --namespace kube-system \
|
|
||||||
--set kubeProxyReplacement=true \
|
|
||||||
--set ipam.mode=kubernetes \
|
|
||||||
--set k8sServiceHost="2620:11f:7001:7:ffff:ffff:ad7:1dd" \
|
|
||||||
--set k8sServicePort=6443 \
|
|
||||||
--set ipv6.enabled=true \
|
|
||||||
--set ipv4.enabled=true \
|
|
||||||
--set enableIPv6Masquerade=false
|
|
||||||
# --set enableIPv4BIGTCP=true \
|
|
||||||
# --set enableIPv6BIGTCP=true
|
|
||||||
# --set routingMode=native \
|
|
||||||
# --set ipv4NativeRoutingCIDR=10.0.0.0/8 \
|
|
||||||
# --set ipv6NativeRoutingCIDR=fd00::/100
|
|
||||||
|
|
||||||
kubec
|
|
||||||
tl -n kube-system exec ds/cilium -- cilium-dbg status --verbose
|
|
||||||
kubectl -n kube-system exec ds/cilium -- cilium-dbg status | grep KubeProxyReplacement
|
kubectl -n kube-system exec ds/cilium -- cilium-dbg status | grep KubeProxyReplacement
|
||||||
|
|
||||||
# --set hostFirewall.enabled=true
|
|
||||||
# routingMode=native
|
|
||||||
|
|
||||||
# --set ipv4-native-routing-cidr=10.0.0.0/8 \
|
|
||||||
# --set ipv6-native-routing-cidr=fd00::/100
|
|
||||||
# --set 'ipam.operator.clusterPoolIPv4PodCIDRList=["10.0.0.0/8"]' \
|
|
||||||
# --set 'ipam.operator.clusterPoolIPv6PodCIDRList=["fd00::/100"]' \
|
|
||||||
|
|
||||||
|
|
||||||
# --set encryption.enabled=true \
|
|
||||||
# --set encryption.type=wireguard
|
|
||||||
# --set encryption.nodeEncryption=true
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Install flux
|
** Install flux
|
||||||
#+begin_src bash
|
#+begin_src bash
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
@ -51,9 +51,6 @@
|
|||||||
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
address = "2620:11f:7001:7:ffff:ffff:0ad7:0101";
|
||||||
inherit interface;
|
inherit interface;
|
||||||
};
|
};
|
||||||
nameservers = [
|
|
||||||
"10.215.1.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
dhcpcd.enable = lib.mkForce false;
|
dhcpcd.enable = lib.mkForce false;
|
||||||
useDHCP = lib.mkForce false;
|
useDHCP = lib.mkForce false;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -8,12 +8,10 @@
|
|||||||
# installCheckPhase
|
# installCheckPhase
|
||||||
# distPhase
|
# distPhase
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
writeShellScript,
|
writeShellScript,
|
||||||
k8s,
|
k8s,
|
||||||
openssh,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@ -30,7 +28,7 @@ let
|
|||||||
lib.concatMapStringsSep "," lib.escapeShellArg (
|
lib.concatMapStringsSep "," lib.escapeShellArg (
|
||||||
[
|
[
|
||||||
./files/manifests/initial_clusterrole.yaml
|
./files/manifests/initial_clusterrole.yaml
|
||||||
./files/manifests/cilium.yaml
|
"${k8s.cilium-manifest}/cilium.yaml"
|
||||||
./files/manifests/coredns.yaml
|
./files/manifests/coredns.yaml
|
||||||
./files/manifests/flux_namespace.yaml
|
./files/manifests/flux_namespace.yaml
|
||||||
./files/manifests/flux.yaml
|
./files/manifests/flux.yaml
|
||||||
|
|||||||
70
nix/kubernetes/keys/package/cilium-manifest/package.nix
Normal file
70
nix/kubernetes/keys/package/cilium-manifest/package.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# unpackPhase
|
||||||
|
# patchPhase
|
||||||
|
# configurePhase
|
||||||
|
# buildPhase
|
||||||
|
# checkPhase
|
||||||
|
# installPhase
|
||||||
|
# fixupPhase
|
||||||
|
# installCheckPhase
|
||||||
|
# distPhase
|
||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
openssl,
|
||||||
|
fetchFromGitHub,
|
||||||
|
kubernetes-helm,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation (
|
||||||
|
finalAttrs:
|
||||||
|
let
|
||||||
|
version = "1.18.5";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "cilium-manifest";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
openssl
|
||||||
|
kubernetes-helm
|
||||||
|
];
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cilium";
|
||||||
|
repo = "cilium";
|
||||||
|
tag = "v${version}";
|
||||||
|
hash = "sha256-348inOOQ/fgwTYnaSHrQ363xGYnx2UPts3D4ycDRsWE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
helm template --dry-run=client cilium $src/install/kubernetes/cilium --version 1.18.5 --namespace kube-system \
|
||||||
|
--set kubeProxyReplacement=true \
|
||||||
|
--set ipam.mode=kubernetes \
|
||||||
|
--set k8sServiceHost="2620:11f:7001:7:ffff:ffff:ad7:1dd" \
|
||||||
|
--set k8sServicePort=6443 \
|
||||||
|
--set ipv6.enabled=true \
|
||||||
|
--set ipv4.enabled=true \
|
||||||
|
--set enableIPv6Masquerade=false \
|
||||||
|
| tee $NIX_BUILD_TOP/cilium.yaml
|
||||||
|
'';
|
||||||
|
|
||||||
|
# --set enableIPv4BIGTCP=false \
|
||||||
|
# --set enableIPv6BIGTCP=false \
|
||||||
|
# --set routingMode=native \
|
||||||
|
# --set ipv4NativeRoutingCIDR=10.0.0.0/8 \
|
||||||
|
# --set ipv6NativeRoutingCIDR=2620:11f:7001:7:ffff::/96 \
|
||||||
|
|
||||||
|
# --set hostFirewall.enabled=true
|
||||||
|
# --set routingMode=native
|
||||||
|
|
||||||
|
# --set 'ipam.operator.clusterPoolIPv4PodCIDRList=["10.0.0.0/8"]' \
|
||||||
|
# --set 'ipam.operator.clusterPoolIPv6PodCIDRList=["fd00::/100"]' \
|
||||||
|
|
||||||
|
# --set encryption.enabled=true \
|
||||||
|
# --set encryption.type=wireguard
|
||||||
|
# --set encryption.nodeEncryption=true
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p "$out"
|
||||||
|
cp $NIX_BUILD_TOP/cilium.yaml $out/
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
||||||
@ -207,6 +207,7 @@ makeScope newScope (
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
encryption_config = (callPackage ./package/k8s-encryption-key/package.nix additional_vars);
|
encryption_config = (callPackage ./package/k8s-encryption-key/package.nix additional_vars);
|
||||||
|
cilium-manifest = (callPackage ./package/cilium-manifest/package.nix additional_vars);
|
||||||
all_keys = (callPackage ./package/k8s-keys/package.nix additional_vars);
|
all_keys = (callPackage ./package/k8s-keys/package.nix additional_vars);
|
||||||
deploy_script = (callPackage ./package/deploy-script/package.nix additional_vars);
|
deploy_script = (callPackage ./package/deploy-script/package.nix additional_vars);
|
||||||
bootstrap_script = (callPackage ./package/bootstrap-script/package.nix additional_vars);
|
bootstrap_script = (callPackage ./package/bootstrap-script/package.nix additional_vars);
|
||||||
|
|||||||
@ -30,16 +30,21 @@
|
|||||||
config = lib.mkIf config.me.network.enable {
|
config = lib.mkIf config.me.network.enable {
|
||||||
networking.dhcpcd.enable = lib.mkDefault false;
|
networking.dhcpcd.enable = lib.mkDefault false;
|
||||||
networking.useDHCP = lib.mkDefault false;
|
networking.useDHCP = lib.mkDefault false;
|
||||||
|
# Nameservers configured in host-specific files.
|
||||||
|
# networking.nameservers = [
|
||||||
|
# "194.242.2.2#doh.mullvad.net"
|
||||||
|
# "2a07:e340::2#doh.mullvad.net"
|
||||||
|
# ];
|
||||||
networking.nameservers = [
|
networking.nameservers = [
|
||||||
"194.242.2.2#doh.mullvad.net"
|
"10.215.1.1"
|
||||||
"2a07:e340::2#doh.mullvad.net"
|
"2620:11f:7001:7:ffff:ffff:0ad7:0101"
|
||||||
];
|
];
|
||||||
services.resolved = {
|
services.resolved = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# dnssec = "true";
|
# dnssec = "true";
|
||||||
domains = [ "~." ];
|
domains = [ "~." ];
|
||||||
fallbackDns = [ ];
|
fallbackDns = [ ];
|
||||||
dnsovertls = "true";
|
# dnsovertls = "true";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection hanging and timing out. This causes firefox startup to take an extra 10+ seconds.
|
# Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection hanging and timing out. This causes firefox startup to take an extra 10+ seconds.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user