50 lines
1.3 KiB
YAML
50 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 }}"
|
|
name: metallb
|
|
chart_ref: traefik/traefik
|
|
release_namespace: traefik
|
|
create_namespace: true
|
|
wait: true
|
|
# https://github.com/metallb/metallb/blob/main/charts/metallb/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: "{{ talos_workers_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] |