46 lines
1.4 KiB
Nix
46 lines
1.4 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
# idk, dont need this
|
|
with lib;
|
|
let
|
|
cfg = config.custom.services.kubernetes;
|
|
in
|
|
{
|
|
options.custom.services.kubernetes = {
|
|
enable = mkEnableOption "Enables kubernetes";
|
|
};
|
|
config =
|
|
let
|
|
kubeMasterIP = "localhost";
|
|
kubeMasterHostname = "localhost";
|
|
in
|
|
lib.mkIf cfg.enable {
|
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
6443 # k3s: required so that pods can reach the API server (running on port 6443 by default)
|
|
# 2379 # k3s, etcd clients: required if using a "High Availability Embedded etcd" configuration
|
|
# 2380 # k3s, etcd peers: required if using a "High Availability Embedded etcd" configuration
|
|
];
|
|
networking.firewall.allowedUDPPorts = [
|
|
# 8472 # k3s, flannel: required if using multi-node for inter-node networking
|
|
];
|
|
services.k3s.enable = true;
|
|
services.k3s.role = "server";
|
|
services.k3s.extraFlags = toString [
|
|
# "--kubelet-arg=v=4" # Optionally add additional args to k3s
|
|
];
|
|
environment.systemPackages = with pkgs; [
|
|
k3s
|
|
];
|
|
#services.kubernetes = {
|
|
# roles = ["master" "node"];
|
|
# masterAddress = "localhost";
|
|
# apiserverAddress = "https://localhost:6443";
|
|
# apiserver = {
|
|
# advertiseAddress = "127.0.0.1";
|
|
# securePort = 6443;
|
|
# allowPrivileged = true;
|
|
# };
|
|
#};
|
|
};
|
|
}
|