Skip to content

Ingress Controller

Lets install an ingress controller (NGINX or Traefik) on a basic Talos Linux cluster.

NGINX (option 1)

# add worker labels (if needed)
kubectl label node w-01 node-role.kubernetes.io/worker=""
kubectl label node w-02 node-role.kubernetes.io/worker=""
kubectl label node w-03 node-role.kubernetes.io/worker=""

# add repo and install
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx \
  -n ingress-nginx --create-namespace \
  --set controller.service.type=LoadBalancer \
  --set controller.nodeSelector."node-role\.kubernetes\.io/worker"=""

Uninstall NGINX

helm uninstall ingress-nginx -n ingress-nginx

Traefik (option 2)

# add repo
helm repo add traefik https://traefik.github.io/charts
helm repo update

# create traefik config
cat <<EOF > 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

# install
helm install traefik traefik/traefik -n traefik-system --create-namespace -f traefik-values.yaml

Uninstall Traefik

helm uninstall traefik -n traefik-system