From 2d3ed6cd4e6e9261aa4658d1af6d837c7a245113 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Mon, 15 Sep 2025 16:51:34 +0200 Subject: [PATCH] feat: added talos-linux basics --- docs/talos-linux/basics.md | 84 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs/talos-linux/basics.md diff --git a/docs/talos-linux/basics.md b/docs/talos-linux/basics.md new file mode 100644 index 0000000..d9a6be7 --- /dev/null +++ b/docs/talos-linux/basics.md @@ -0,0 +1,84 @@ +# Install a Loadbalancer (MetalLB) and Ingress Controller (Nginx or Traefik) on a default Talos Linux cluster + +## MetalLB + +### Install + +```shell +# add repo and install +helm repo add metallb https://metallb.github.io/metallb +helm repo update +helm install metallb metallb/metallb -n metallb-system --create-namespace --wait + +# fix pod security for speaker pods +kubectl label namespace metallb-system pod-security.kubernetes.io/enforce=privileged +kubectl label namespace metallb-system pod-security.kubernetes.io/audit=privileged +kubectl label namespace metallb-system pod-security.kubernetes.io/warn=privileged + +# restart speaker daemonset +kubectl rollout restart daemonset/metallb-speaker -n metallb-system +``` + +### Configure + +```shell +cat < traefik-values.yaml +service: + type: LoadBalancer +nodeSelector: + node-role.kubernetes.io/worker: "" +additionalArguments: + - "--certificatesresolvers.letsencrypt.acme.email=your-email@domain.com" + - "--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json" + - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" +EOF + +helm install traefik traefik/traefik -n traefik-system --create-namespace -f traefik-values.yaml +```