65 lines
1.6 KiB
Nix
65 lines
1.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
environment.etc."rancher/k3s/registries.yaml".text = ''
|
|
mirrors:
|
|
"100.125.181.75:5000":
|
|
endpoint:
|
|
- http://100.125.181.75:5000/v2
|
|
configs:
|
|
"100.125.181.75:5000":
|
|
tls:
|
|
insecure_skip_verify: true
|
|
'';
|
|
|
|
swapDevices = lib.mkForce [];
|
|
|
|
boot = {
|
|
kernel.sysctl = {
|
|
# Enable IP forwarding (required for pod networking)
|
|
"net.ipv4.ip_forward" = 1;
|
|
"net.ipv6.conf.all.forwarding" = 1;
|
|
|
|
# Enable bridge netfilter (required for iptables rules on bridge traffic)
|
|
"net.bridge.bridge-nf-call-iptables" = 1;
|
|
"net.bridge.bridge-nf-call-ip6tables" = 1;
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
kubernetes-helm
|
|
];
|
|
|
|
boot.kernelModules = ["rbd" "nbd" "ceph"];
|
|
|
|
networking.firewall.enable = false;
|
|
# networking.firewall.allowedTCPPorts = [
|
|
# 6443 # k3s: required so that pods can reach the API server
|
|
|
|
# ];
|
|
|
|
# networking.firewall.allowedUDPPorts = [
|
|
|
|
# ];
|
|
|
|
services.k3s = {
|
|
enable = true;
|
|
role = "server";
|
|
# token = "jakeginesin12345678910";
|
|
tokenFile = config.age.secrets.kube.path;
|
|
clusterInit = true;
|
|
|
|
extraFlags = toString [
|
|
# "--bind-address=0.0.0.0" # API server listens on all interfaces
|
|
# "--advertise-address=100.125.181.75" # Advertise this IP to cluster members
|
|
# "--node-ip=100.125.181.75" # Primary IP for this node
|
|
# "--node-external-ip=100.125.181.75" # External IP for services
|
|
# "--tls-san=100.125.181.75" # Add IP to TLS certificate
|
|
"--kubelet-arg=root-dir=/var/lib/kubelet"
|
|
];
|
|
};
|
|
}
|