dump
This commit is contained in:
parent
6b6dc1eb2a
commit
330aded669
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [./desktop.nix];
|
||||
|
||||
systemd.network.networks.eth = {
|
||||
matchConfig.Name = "en*";
|
||||
DHCP = "ipv4";
|
||||
networkConfig = {
|
||||
IPv6AcceptRA = true;
|
||||
IPv6PrivacyExtensions = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.cage = {
|
||||
enable = true;
|
||||
extraArguments = [
|
||||
"-d"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
# k8s api
|
||||
6443
|
||||
# metrics-server
|
||||
10250
|
||||
];
|
||||
|
||||
services.k3s = {
|
||||
enable = true;
|
||||
role = "server";
|
||||
extraFlags = toString [
|
||||
"--disable traefik" # manuelle ... with ipv6 enable
|
||||
];
|
||||
};
|
||||
systemd.services.k3s = {
|
||||
wants = [ "containerd.service" ];
|
||||
after = [ "containerd.service" ];
|
||||
serviceConfig.MemoryMax = "2G";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
k3s
|
||||
k9s
|
||||
kubectl
|
||||
];
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
imports = [
|
||||
./default.nix
|
||||
];
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
443
|
||||
];
|
||||
|
||||
# for quic3 - max size to 2.5MB
|
||||
boot.kernelParams = [
|
||||
"net.core.rmem_max=2500000"
|
||||
"net.core.wmem_max=2500000"
|
||||
];
|
||||
|
||||
services.traefik = {
|
||||
enable = true;
|
||||
staticConfigOptions = {
|
||||
experimental.http3 = true;
|
||||
entryPoints = {
|
||||
web = {
|
||||
address = ":80";
|
||||
};
|
||||
websecure = {
|
||||
address = ":443";
|
||||
http3 = {};
|
||||
};
|
||||
};
|
||||
providers = {
|
||||
kubernetesIngress = {
|
||||
allowEmptyServices = true;
|
||||
allowExternalNameServices = true;
|
||||
};
|
||||
kubernetesCRD = {
|
||||
allowCrossNamespace = true;
|
||||
allowEmptyServices = true;
|
||||
allowExternalNameServices = true;
|
||||
};
|
||||
};
|
||||
api.dashboard = true;
|
||||
metrics.prometheus.entryPoint = "websecure";
|
||||
certificatesResolvers.letsencrypt.acme = {
|
||||
storage = "/var/lib/traefik/acme/acme.json";
|
||||
caServer = "https://acme-v02.api.letsencrypt.org/directory";
|
||||
tlsChallenge = {};
|
||||
};
|
||||
};
|
||||
dynamicConfigOptions = {
|
||||
http.middlewares = {
|
||||
"redirect-https".redirectScheme = {
|
||||
scheme = "https";
|
||||
permanent = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.services.traefik.environment = {
|
||||
KUBECONFIG = "/var/lib/traefik/k3s-kubeconfig.yaml";
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue