snel.kubernetes-cluster/roles/traefik/tasks/main.yml

51 lines
1.3 KiB
YAML

---
- name: Helm add Traefik repo
delegate_to: "{{ kubectl_host }}"
run_once: true
kubernetes.core.helm_repository:
name: traefik
repo_url: "https://traefik.github.io/charts"
- name: Helm deploy Traefik
delegate_to: "{{ kubectl_host }}"
kubernetes.core.helm:
kubeconfig: "{{ kubeconfig }}"
chart_ref: traefik/traefik
release_name: traefik
release_namespace: traefik
create_namespace: true
wait: true
# https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml
values:
deployment:
kind: DaemonSet
logs:
general:
level: INFO
service:
spec:
externalTrafficPolicy: Local
loadBalancerIP: "{{ ingress_ips[0] }}"
annotations:
external-dns.alpha.kubernetes.io/hostname: "{{ ingress_lb_hostname }}"
ports:
web:
proxyProtocol:
trustedIPs: "{{ ingress_ips[0] }}"
forwardedHeaders:
trustedIPs: "{{ ingress_ips[0] }}"
providers:
kubernetesIngress:
publishedService:
enabled: true
tolerations:
- effect: NoSchedule
operator: Exists
- name: Verify Traefik IP is working
delegate_to: "{{ kubectl_host }}"
ansible.builtin.uri:
url: "http://{{ ingress_ips[0] }}/"
status_code: [200, 404]